Lisp Is Not An Acceptable Java
matthias.benkard.deI'm not sure if this is sarcastic or not.
(with-open-file (file "test.txt" :direction :output)
(print "hello" file))
> This might open a file called “test.txt” and write “hello” into it—or it might reformat your hard drive! How are you to know?Isn't that true when you call any user-defined function in any language? (Well, actually in Haskell I suppose you can tell if it has side-effects, but with "print" you'd expect it to anyway.)
> Also, you can't use Lisp in an interactive application, since garbage collection can kick in at any time and stop your program for a couple of seconds at a time.
Yeah, garbage collection sucks! Use Java! Or C#! Apparently.
> In contrast, Java and C# programs are compiled into efficient bytecode
In contrast to what? Compiling Lisp down to machine code?
Argh. You'd've thought I'd've learnt not to feed the troll. Sorry.
The article is sarcastic, though it may not seem to. Take a while and look at the 'about me' page of author - you can read there that his favourite languages (Lieblingsprogrammiersprache) are Clojure, Common Lisp and Haskell. He also has some projects in lisp on his page.
However, haven't I read his page, I wouldn't understand it either. It seems like I'm not the only one who don't get it - it would be nice to hear from the author what was his point.
Right. So it is sarcastic. I guess I should have checked first.
Naughty april fool that comes up on HN 2 weeks late ;)
The sarcasm was delicious. I have to comment about this though:
Except... you can't store the code in files that way. Lispers tend to learn their lesson the hard way, as all code is lost when you need to reboot your computer.
I once interviewed for an embedded systems C/C++ compiler company and they told me this hilarious story. One of their big clients made semi-custom hardware to support their lab operations. This client took advantage of a special feature of their compiler/development-environment whereby you could patch code running on a live system without having to recompile just by setting a breakpoint. It turns out that there was a hard limit on the number of breakpoints you could have running at once though: 65536. This client had exceeded that number and then came begging for them to raise it because they had been making changes to their system in-situ for years and all those changes were gone. The changes only existed in the patched binary; the source for all 65K changes had been lost.
So yes, you do need to be careful about interactive systems, but I've only ever heard of it biting C/C++ users this badly.
This faux seriousness is a fine example of German humour:
http://en.wikipedia.org/wiki/German_humour
Check the date of the article :-)
What a bizarre article. Lisp can't represent XML? Garbage collection is obsolete?
> type stuff into the REPL... can't store the code in files that way.
What's the standard solution to this? Serialize everything, and then hand-edit to just keep the things you want? Cut-n-paste the history into a file?
> What a bizarre article. Lisp can't represent XML?
This was the point where I thought "This can't be serious." I always found SXML a perfect example of where data and code meet.