Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

>dont' stick to one platform or language. You always branch out.

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. Personally, I feel caged whenever I am not programming in Lisp or a language with similar metaprogramming capabilities (Mathematica, for example.)



"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).


>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.


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.)

[citation needed]


Read a history of Fortran. It was originally meant for a human to compile into machine code.


APL/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 .

Edit: and for the other side: http://en.wikipedia.org/wiki/Criticism_of_the_APL_programmin...


A 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.


I 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.


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

A rather apt analogy, as it was those filthy, stinking barbarians (and their descendants) who were mostly responsible for the renaissance, the enlightenment, and modern western society. If biology has taught us nothing else, it's that a monoculture is always at risk.


>stinking barbarians... were mostly responsible for the renaissance, the enlightenment, and modern western society

They were first responsible for the Dark Age. And that's analogous to where we are now:

http://www.loper-os.org/?p=21




Consider applying for YC's Winter 2027 batch! Applications are open till November 2.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: