you are viewing a single comment's thread.

view the rest of the comments →

[–]daelin 0 points1 point * (1 child)


These are very different questions. First of all, all implementations implement the same standard and make the same libraries available. Scheme–vs–Common Lisp, for example, is not the same comparison as IronPython–vs–CPython. Identical code runs in both IronPython and CPython. Identical code can be constructed which runs in both CL and Scheme, but it's damned hard.

Second, the actual difference between major versions of languages are (surprise) major language features. Older versions are maintained but the newest major version is obviously the future, and the best version to learn for your own purposes. It's easy to pick up legacy behavior and syntax if you need it. It's a linear progression from a central reference authority, not an exactly equivalent choice.

Lastly, Ruby, Python, TCL, Rebol, Javascript, etc, are genuinely different languages. Common Lisp and Scheme are both LISPs, sharing the philosophy of code-as-data and s-expressions, and differing on how much the language should define, and exactly what those definitions should be. One is not a direct progression from the other, nor are they really different languages. A solution in Scheme often looks almost identical to a solutions in CL, using the same approach, algorithm, and program structure. Differences are usually due to macros included with the language. This is not the case with languages like Ruby, Python, or Perl. They are not equivalent. There are very different approaches to the same problem in each language, and some problems are much easier in one of these languages than in another.

[–]lispm 5 points6 points  (0 children)


Scheme and Common Lisp are widely different languages and cultures. Like 'Pascal' (Delphi) and Ada.

Actually there is a lot of code that has very similar solutions in Python, Ruby and Perl 6 - especially when it is OO code (the OO systems are basically very similar) or stuff that uses, say, regexps ...