When I first opened this I thought it would be an interesting dialogue on how langs/class libraries are blurring the boundaries with operating systems... Particularly with this "is the internet the os?" thinking floating about.
However, it's not that discussion at all - Was more along the lines "Java is like DOS because it's popular, and DOS sucked for all these other reasons (UI), therefore Java sucks"...
Metaphor can be pretty handy sometimes, but this just seems very labored.
Exactly. None of the conclusions he drew about C# or Java are especially true. C# is one of the most reliable frameworks I see, and to say that OOP scripting languages are "better" than Java/C# (as Mac is to Dos) is BS.
Everyone says the Lisp "UI" sucks, but masters explain how you can be even more powerful piping all these separate commands together... And the eyes of the lumpenproletariat glaze over...
I think the inside (fundamentals) vs. surface (UI) is an important way to think about any kind of module - including languages.
Lisp is interesting, because one of the strengths of its syntax (that it's as close as possible to the internal AST so you can fiddle with the language easily) means that it really doesn't have a designed surface or UI (yes, you could add one, but then lose this key strength). Lisp wears its guts on the outside - very convenient for surgery.
Forth is similar in this sense.
BTW re your comment on the blog: he did say "Mac adopting Unix" (unless he edited after seeing your comment). The answer that comes to my mind is "Erlang with Python syntax". Pattern matching is tricky though - but doesn't Python already do something like [Head|Tail]? Or is that only on the RHS?
PS: lumpenproletariat - ridiculing newcomers who aren't as knowledgeable as you is what got Lisp to where it is today.
PS: lumpenproletariat - ridiculing newcomers who aren't as knowledgeable as you is what got Lisp to where it is today.
I don't ridicule people who don't use Lisp--I don't use Lisp professionally myself. I was trying to get into the spirit of painting programming languages with such broad metaphorical strokes that you could sum up their entire character and history by comparing them to an operating system... from two decades ago!
My experience with Lisp programmers has been uniformly excellent, however there are certainly people who paint Lisp the language as being inhabited by hostile self-proclaimed experts, so I played along.
It doesn't suprise me that things could be this way, I have observed people taking much the same line with Linux: "What, you have trouble recompiling the kernel? You're an idiot, go back to WIndows!" or more recently, "What do you mean Software Update is a feature? I just use apt-get! And Time Machine? What does it do that git doesn't do? grow up and become a real programmer!"
Or more HN-local, there was a post somewhere that suggested owning a MacBook Air was all about impressing girls at Starbucks. I took this as a mortal insult: I would certainly buy technology to impress people, but the suggestion that owning a Mac means I drink Starbucks coffeee... That was a low blow.
So I compared the two. Seemed entirely within the spirit of the OP.
Thanks for explaining: your ridicule of newcomers was parody; not your opinion.
I disagree with you about the article - I think comparisons and metaphors can shed light and reveal common principles of tools/tasks (without defining them). I thought your comparison of sh vs. lisp was insightful.
I take back what I implied about some lisp-users. It's just that I wish it were easier for me to learn about lisp (which I wish about many things).
I think comparisons and metaphors can shed light and reveal common principles of tools/tasks (without defining them)
Oh absolutely. We are pattern-matching machines. If we had to reason about every new thing from first principles because of the exceptions and corner cases that mean no two things are exactly alike...
Well let's just say we would need a whole brain architecture. The one we have--highly parallel with relatively slow procesors and six layers of neocortex--wouldn't cut it.
Python does not do [Head|Tail] but it does [First Item, Second Item, etc].
(Ok, Python can do [Head|Tail], but only in function invocation. But since Python is not as functional as we would like it, working with β-reduction only does not feel comfortable.)
However, it's not that discussion at all - Was more along the lines "Java is like DOS because it's popular, and DOS sucked for all these other reasons (UI), therefore Java sucks"...
Metaphor can be pretty handy sometimes, but this just seems very labored.