Hacker News new | ask | show | jobs
by debacle 5076 days ago
This reeks of ignorance of the industry, gross generalizations, and a ham-fisted call to action.

People don't use Java because they don't care about programming, or because they don't care about maintenance. People use Java (or PHP, or C#, or Perl, or C/++) because:

1. They get paid to do it. Historically, someone has realized that Java development was easier/faster/more stable than Lisp development.

2. Java has hella libraries. I mean hella. You can find a library for almost anything. Lisp...not so much.

3. Java is a language for doing things. Lisp is not a language for doing things. I'll change my mind when I see a 2m+ line codebase that's been in production for ten years.

> What we call functional programming is somewhat of a shibboleth for good-taste programming.

Your blog post is littered with drivel like this. I could quote almost every other line for the same reason.

3 comments

A 2m+ line Java codebase is not desirable or in any way positive. With a Lisp (or Haskell or some other nice functional language) you wouldn't need half the amount of code to achieve the same functionality. Java is especially notorious for its boilerplate. Lisp is very much a language for doing things, at least as much as Java. A big codebase that has been in production for ten years? How about 40+ years? http://en.wikipedia.org/wiki/Macsyma

It's your post that reeks of ignorance and gross generalization.

You're trying to give me a 15 year old application and hold it up as a shining example of Lisp engineering, when the most prominent application in that arena (Mathematica) is written in C and Java?

Reddit, too, was once written in Lisp. It was rewritten for a reason.

1. They get paid to do it. Historically, someone has realized that Java development was easier/faster/more stable than Lisp development.

???

2. Java has hella libraries. I mean hella. You can find a library for almost anything. Lisp...not so much.

Clojure?

3. Java is a language for doing things. Lisp is not a language for doing things. I'll change my mind when I see a 2m+ line codebase that's been in production for ten years.

Emacs?

???

Are you familiar with the concept of worse is better?

> 1. They get paid to do it. Historically, someone has realized that Java development was easier/faster/more stable than Lisp development.

http://paulgraham.com/avg.html

> 2. Java has hella libraries. I mean hella. You can find a library for almost anything. Lisp...not so much.

http://www.quicklisp.org/beta/releases.html

And that's just Quicklisp. To say Lisp doesn't have libraries for almost anything is pure ignorance.

> 3. Java is a language for doing things. Lisp is not a language for doing things. I'll change my mind when I see a 2m+ line codebase that's been in production for ten years.

Emacs has been in "production" since at least 1985, and is 650,000 lines of elisp and 318,000 lines of C (as of version 21.4, according to `wc`). The vast majority of its functionality is written in elisp, and Emacs is arguably more powerful than any editor or IDE written in Java. It's also more stable, easier to maintain, and new functionality can be added with only a handful of lines of code.

To be blunt, it does more in 600k lines than any 2m+ Java project ever will.

1) anecdotal self praise. That a startup (one!) that got acquired used Lisp doesn't prove anything. Many many more succesful startups did not. And its not like it was the most intriguing technologically or acquisition-value wise.

2) "A library for almost anything" (and lot of them abandoned or half done) != multiple libraries for everything and then some.

3) I wouldn't put forward elisp as an example of a good functional language. Actually it's crap. And Emacs is not more powerful that Eclipse or IntelliJ, except if you mean "has lots of hohum plugins and ome good ones".

> 1) anecdotal self praise. That a startup (one!) that got acquired used Lisp doesn't prove anything. Many many more succesful startups did not. And its not like it was the most intriguing technologically or acquisition-value wise.

That's not the point. The point was that they had a product that they could improve more rapidly than their competitors; a fact that they readily attribute to it being written in Lisp. Just about any other working Lisp programmer probably has a similar story.

And I do not put forward elisp as a "good" language. It is a Lisp, and the success and longevity of Emacs is a testament to its Lisp underpinnings.