3 ms·
"The problem is that, to many Lispers, branching out from the Lisp world often feels like branching out on a random path from Rome in its glory days might have
by plinkplonk 18y ago
"The problem is that, to many Lispers, branching out from the Lisp world often feels like branching out on a random path from Rome in its glory days might have felt like - filthy, stinking barbarians abound in all directions."
There are plenty of languages as "elegant" as Lisp, but are significantly different in "feel" and usage - smalltalk, Forth, Prolog, Haskell, Io ...
Lisp has no monopoly on elegance or "metaprogramming", certainly not to the point where the "classical rome vs stinking barbarians" analogy is valid. (This ignores the historical fact that many greeks thought the romans were loutish parvenus, but that is a story fro another day).
- banned_man 18y agoI feel like Lisp's big win over C, Java, etc. is its support for aesthetically pleasing functional programming. Much more of the difference between Lisp and Blub comes from functional programming than from user-defined macros. Macros are cool, but I don't write my own macros very often, especially when working in Clojure, which has great built-in ones. Most of the general-purpose macros implemented in, say, On Lisp have decent analogues built into Clojure or Clojure.Contrib. Python, Ruby, et al haven't necessarily gotten as good as Lisp, academically speaking, but for a lot of purposes, they're good enough. I think that anyone who wants to consider himself a serious hacker needs to learn Ocaml or Haskell, though, in order to gain exposure to what a good static-typing system has to offer.
- asciilifeform 18y ago>Lisp has no monopoly on elegance or "metaprogramming" Lisp (or rather, the Lisp family - the word has not referred to a specific programming language for decades) does have a monopoly on programming by way of raw syntax tree entry. The latter appears to be required for a proper macro system (though David Moon and others have attempted to change this.) The fact is, I feel caged when I am programming in a language where I cannot monkey with the syntax at will, and I am not alone in this feeling. When I am barred from creating new syntactic constructs, I feel like a "human compiler" (in fact, exactly that which the job title "programmer" actually meant in practice before the invention of actual compilers.) I wish to branch out to languages which feel less limiting and more general than the Lisps, not otherwise. And I have yet to encounter any. All of the good ideas of Haskell (laziness, etc.) are easily bolted on top of even a stock Common Lisp. Likewise for the other languages named. Forth, however, remains interesting due to its AK47-like simplicity and embeddability.
- dmoney 18y agoI feel like a "human compiler" (in fact, exactly that which the job title "programmer" actually meant in practice before the invention of actual compilers.) [citation needed]
- asciilifeform 18y agoRead a history of Fortran. It was originally meant for a human to compile into machine code.
- frig 18y agoAPL/J/K/Q fit the bill. The Larrabee instruction set is like a pipedream for old APL(and similar)-ers. Edit: for the unfamiliar, http://ed-thelen.org/comp-hist/APL-hist.html http://ed-thelen.org/comp-hist/APL-hist.html . Edit: and for the other side: http://en.wikipedia.org/wiki/Criticism_of_the_APL_programming_language http://en.wikipedia.org/wiki/Criticism_of_the_APL_programmin...
- MaysonL 18y agoA money quote, from your first link: Here's what I did. For a set of problems, of increasing difficulty, I would write a solution procedure, using the notation of A Programming Language I would then ask the graduate student assigned to me to: program the procedure in any programming language he chose, execute the procedure for a representative set of data values give me his program and answers so that I could compare them with the specifications I had written and the answers I had previously calculated. The result, which I still find surprising and impressive, was: In every case, what was programmed was exactly what I specified.