Re: some personal rambling on java the lang
Joshua Maurice <joshuamaurice@gmail.com> writes:
The semantics of Java and the semantics of Lisp
and Scheme are worlds apart.
LISP was the first language with a garbage collector, now
Java also has a GC, while C++ does not have a GC. But this
is only one aspect. However, in Java, one can partially
emulate the LISP style, where functions (like CONS) return
complex entities (dotted pairs) allocated at runtime which
might be linked and passed around in complex ways. In C++,
this is much more difficult, because there is no garbage
collector.
Lisp and Scheme are not pure functional languages, but allow
some functional programming, possibly not to the extend of
Haskell. Lisp also allows for a more OO or procedural style.
There is some overlapping between OOP and FP, because FP is
based on functions-as-values (reification of functions)
which can also be done in OOP via functions-as-objects
(sometimes called ?functors? in C++).
Maybe I confounded Java with JavaScript in this
regard? For JavaScript, Wikipedia says:
?JavaScript also has many functional features
based on the Scheme language.?
http://en.wikipedia.org/wiki/JavaScript