3 ms·
PG calls it a Paradox because no one (not even the Lisper) can know whether their language is Blub. You are right, though, that the Lisp community read the ess
by neutronicus 6y ago
PG calls it a Paradox because no one (not even the Lisper) can know whether their language is Blub.
You are right, though, that the Lisp community read the essay and internalized that all other languages are Blub. In my opinion this led them to collectively dismiss, for far too long, Dictionary Literals in every dynamic language which has eaten Lisp's lunch in the marketplace in the last two decades. Objections were raised ("you need homoiconicity for macros!") and everyone assumed they were valid and stuck with Common Lisp's woeful hash table interface and the loop macro keywords, insisting all the while "oh, that's a DSL, you could implement that with Macros"[0].
And then Clojure implemented Map literals and - what do you know - Clojure still has Lisp Macros!
[0] Efforts in this direction thankfully forthcoming: https://github.com/inaimathi/clj https://github.com/inaimathi/clj
- metroholografix 6y agoThis is all surface, little substance. Map literals are 20 lines of Common Lisp [1], via the programmable in CL reader (that Clojure doesn't have). Richard Gabriel's "Worse is Better" is a lot more relevant about "Lisp in the marketplace" than anything you've mentioned here. [1] https://gist.github.com/rmoritz/1044553/b2d2d8e4b933cb0f6c3fb5ff3f9bcfae6be7ce47 https://gist.github.com/rmoritz/1044553/b2d2d8e4b933cb0f6c3f...
- kazinator 6y agoUnfortunately: - that code doesn't provide printing for hash tables. Oops! - breaks tooling: - doesn't provide editing or syntax highlighting support. - confuses any tool that reads all of the files of a project using the Lisp reader. - it gratuitously introduces a vector syntax that is unnecessary since #(1 2 3) is perfectly fine and standard across more than one Lisp dialect. - hard-codes the #'equal equality - doesn't play with the newer ways of registering Lisp read syntaxes, like https://github.com/melisgl/named-readtables https://github.com/melisgl/named-readtables
- flavio81 6y ago> and stuck with Common Lisp's woeful hash table interface and the loop macro keywords You are not stuck with anything in Common Lisp. Instead of loop you have lots of options, from the built-in constructs (do, dolist, map...) to very powerful libraries like SERIES and ITERATE. You are not stuck with the default hash table interface either. Many libraries for data structure are available, you just pick the one that suits you best. >And then Clojure implemented Map literals and - what do you know - Clojure still has Lisp Macros! Most of those Clojure features are already available in CL through the use of libraries. Even the ability to easily call Java libraries, by using the Armed Bear Common Lisp implementation.