Hacker News new | past | comments | ask | show | jobs | submit login

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.




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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: