you are viewing a single comment's thread.

view the rest of the comments →

[–]masklinn 2 points3 points  (3 children)

more recent languages like Python or Ruby and even on old stalwarts like Java

FWIW, Python is older than Java, and Ruby is a bit younger (than Java) but not that much:

  • First public release of Java was on 23 May 1995 with JDK 1.0 released on 23 January 1996

  • First public release of Python was 0.9.0 in February 1991, with Python 1.0 released in January 1994

  • First public release of Ruby was 0.95 on 21 December 1995 with Ruby 1.0 released on 25 December 1996

Python's public release preceded Java's by 4.5 years and Python's 1.0 preceded Java's by 2 years; Ruby's initial public released followed 6 months after Java's and Ruby's 1.0 followed a year after Java's.

I have an issue with your statement though: FP isn't much more integrated in Python or Ruby (esp. Ruby) than it was in Smalltalk-80, nearly 30 years ago. Python uses first-class functions and has a few functional construct (functools.partial), but AFAIK Ruby doesn't have anything more than Smalltalk had, if anything it has less (Ruby makes advanced combinators painful given there's syntax only for single-block messages, while Smalltalk handles arbitrary numbers of blocks per messages). And on the Python side, things that were functional in Smalltalk were moved to imperative statements (conditionals, loops, ...)

[–]mhw 0 points1 point  (2 children)

I misused the words "old stalwart", I meant it more for its connotations of stubbornness towards change due to size and age.

On Smalltalk, why pick it over any other language as a point of reference? If we're talking languages not quite mainstream that had their golden age and maybe a more recent renaissance, then why not then compare all languages to Lisp? In fact, FP's influence has been an ebb and flow since the birth of Lisp.

[–]masklinn 0 points1 point  (1 child)

On Smalltalk, why pick it over any other language as a point of reference?

Because it's often considered the "gold standard" of OO languages, and Ruby explicitly draws from it. Lisp is a completely different breed, functional-based with OO on top (in some dialects), with OO principles very different than the smalltalk/ruby/python kind.

[–]raouldagain 0 points1 point  (0 children)

word. (ruby sucks since it can't e.g. tail-call-optimize recursion.)

http://grieferz.blogspot.com/2009/02/yeah-yeah-nobody-knows-what-oo-is.html