Live data from Hacker News

What languages fix

paulgraham.com

41–50 of 91 posts

Re: What languages fix

#44
post #35

For Java I would suggest "Lisp is too powerful for Joe Programmer, and parentheses are scary" Java as essentially Lisp's bastard child is I think undermentioned in language history.

What Lisp influence is there in Java besides garbage collection? They differ on basically every other language design point.

Maybe I'm overstating, and maybe there are other languages in between I don't know about. If you look at what's in memory at a given moment, how objects are connected to one another, and how they're connected to code, I don't think Java looks that different to Scheme; apart from continuations, macros, and TCO, you can write Scheme in Java if you're bloody-minded enough and don't mind your lambdas disappearing into masses of curly braces.

Actually, looking at http://en.wikipedia.org/wiki/History_of_programming_language... it turns out a lot of languages with the properties I'm describing came before Java, so while Java clearly descends from Lisp in a lot of ways, the connection isn't as direct as I was imagining.

Re: What languages fix

#45

Would be helpful to see this list be updated with a few others. A couple of that come to mind: SQL: Tuple relational calculus is too low level? Julia: Hadoop is a kludge for data science? Clojure: We need Lisp for the JVM? Dart: JavaScript is a kludge? Go: C/C++ are kludges for systems programming?

Clojure has more to do with immutability as a default and concurrency than simply being on the JVM. So perhaps:

Clojure: lisp promotes mutability too much.

Re: What languages fix

#46

Earlier quoted context omitted.

What Lisp influence is there in Java besides garbage collection? They differ on basically every other language design point.

http://www.paulgraham.com/quotes.html "We were not out to win over the Lisp programmers; we were after the C++ programmers. We managed to drag a lot of them about halfway to Lisp." - Guy Steele, Java spec co-author Reasonably original-ish source: http://people.csail.mit.edu/gregs/ll1-discuss-archive-html/m... . Relative to C++, Java is actually a lot like Lisp. Don't forget that objects are a poor man's closures (and…

Guy Steele didn't actually design Java. He was hired after the language was designed to write the spec. Of course, writing a specification exposed problems with the design, and those problems had to be fixed, so he had some influence on those parts of the language.

Dragging out that quote doesn't really answer the question. What about Java makes it like Lisp? The ability to (painfully) implement closures with objects and vice-versa? That's also shared with every other OO language, includes ones that would not normally be considered Lisp-influenced.

Re: What languages fix

#49
post #44

Earlier quoted context omitted.

What Lisp influence is there in Java besides garbage collection? They differ on basically every other language design point.

Maybe I'm overstating, and maybe there are other languages in between I don't know about. If you look at what's in memory at a given moment, how objects are connected to one another, and how they're connected to code, I don't think Java looks that different to Scheme; apart from continuations, macros, and TCO, you can write Scheme in Java if you're bloody-minded enough and don't mind your lambdas disappearing into ma…

Scheme doesn't have that many distinguishing features:

1) Garbage collection

2) Dynamic typing

3) No distinction between primitive values and general values - a value can be used everywhere

4) Lexical closures and higher-order functions

5) A hygienic macro system

6) First-class continuations

7) Space safety guarantees for tail calls ('tail call optimization')

8) A numeric tower

9) S-expression syntax

10) A focus on cons cells and lists as primitive data structures

There's probably something I'm missing, but the only feature that Java shares is the first.

Re: What languages fix

#50
I suspect the kindest thing one can say about Forth is:

Forth: all the other languages were written by somebody else.

As they say: if you've seen one version of Forth, you've seen... one version of Forth. And also: standards are a good thing, everyone should have one!

Post reply on HN