Paul Graham's Infatuation with the Concept of Hacker
Paul Graham's ideal language is a lang that's hackable. Actually, the ideal should be unhackable. Every time you hack, you get a shock.
It's been brewing in my mind for a while to write a criticism on [ Paul Graham ] [ https://en.wikipedia.org/wiki/Paul_Graham_(computer_programmer) ]'s [ Arc Lisp ] [ https://en.wikipedia.org/wiki/Arc_(programming_language) ] and his essay about ideal language.
Of the various essays of his i read in the past years about Arc or designing of a lang, his essential idea lies on the concept of “hacker”. He keeps saying, lang needs to be this or that because “hacker” is this or that way.
That elusive word, “hacker”. Whence, one can't really get a precise idea what he consider as ideal in a computer language. What is a hacker? and what is the characteristics of a “hacker's language”?
If you read older publications, books, newsgroups, those from the 1980s, you see that the favored language among elite programers, those who talk a lot in newsgroups, seems to be C and Lisp. These 2 languages are totally different in nature. One is very low level to the machine, close to assembly, the other is at the extreme end of high level. It'd be hard pressed to say there is a common characteristics they share. In fact, lisp and C programers mutually hate the other's lang. Also, which lisp? Common Lisp and Scheme Lisp are also quite opposite, and i don't think even classic hackers of those 1980s of MIT have a consensus on which one is the favored. In the 1990s, perl is also commonly deemed as a hacker's language.
Today, the concept of “hacker's language” is a bit old-fashioned. You don't hear it much anymore. There are today tens of thousands of accomplished programers and computer scientists. Ask them what is hacker's language, i doubt there can be any conclusion to be made. The result top votes will probably be more than 10 of extremely diverse languages in every aspect.
The infatuation with the concept of hacker. I think that is the main problem, and consequently, whatever he comes up i can't deem good. (and from seeing what he actually have done with Arc, you know my opinion of it is shit, and as well it generally isn't well received…, for example: far less fanfare than say Haskell, Clojure, Scala, erlang, OCaml/F#… and far less users than say newLISP, OCaml, Scheme Lisps…)
In 2008 i wrote a essay listing tens of new langs that document the phenomenon of tremendous growth of new languages in the past decade: Proliferation of Programing Languages .
But in the past 2 years, more arrived on my radar! [ Google's Go ] [ https://en.wikipedia.org/wiki/Go_(programming_language) ] (Robert Griesemer, Rob Pike, Ken Thompson), Sun Micro's [ Fortress ] [ https://en.wikipedia.org/wiki/Fortress_(programming_language) ] (Guy L Steele Jr et al.) …. All these langs have a bunch of philosophies and defenses on how or why they should exist, with complaints about a hole they need to fill. Some are dubious of course, but some do seem sensible. If you consider the problem space of computing, and possibilities of imagination vs what already exist, it really has room for new langs.
Though, as far as i see, i can't see any concrete or theoretical merit of Arc with his “hackers need it!” creed.
Clojure for example, i can justify easily, for one thing, it is a lisp on JVM, along with the whole advantage of established Java libraries. It is also modern lisp without baggage, easy to install, independent, and with concurrency argument. “newLISP”, i see merit, for example, it fills the scripting niche, and for hobbyist coders.
I really hate the word “hacker”. Imagine, what [ Dijkstra ] [ https://en.wikipedia.org/wiki/Edsger_W._Dijkstra ] might have to say about “a lang designed for ‘hacker’?” LOL.
… what society overwhelmingly asks for is snake oil. Of course, the snake oil has the most impressive names —otherwise you would be selling nothing— like “Structured Analysis and Design”, “Software Engineering”, “Maturity Models”, “Management Information Systems”, “Integrated Project Support Environments” “Object Orientation” and “Business Process Re-engineering” (the latter three being known as IPSE, OO and BPR, respectively).
— Edsger W Dijkstra (1930 to 2002), in EWD 1175: The strengths of the academic enterprise.
[This essay was originally written as a post to comp.lang.lisp newsgroup, under the thread “Who were the opponents of Lisp?”. Source: groups.google.com ]