4 ms·
>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 deca
by 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.