More Software posts
March 05, 2005
Scheme, Ruby, Python, Perl

Why is it that scheme isn't more popular? Why is it even necessary to invent languages like Ruby, Python or Perl? Or, why do people invent these languages instead of adding the features they want to an existing language? Is some of it just not invented here syndrome? Why did Python become popular when Perl already existed and why Ruby when there was both Python and Perl? Why is Java going to have a scripting language called Groovy when there are already other scripting languages, not least of which JavaScript and Jython, available? Sure, Groovy has closures but then so does JScheme.

No answers, just questions.

Posted by Alex at March 05, 2005 10:04 PM
Comments
Scheme isn't popular because syntax matters. If Lisp and Scheme have taught us anything, it's that if the syntax is really nasty, no one will ever get to know that the semantics underneath are beautiful. Python and Perl are so utterly dissimilar that I don't really see why you think that the existence of Perl should mean that Python shouldn't be needed. Ruby and Groovy, yeah, not invented here syndrome. Posted by: Simon Brunning on March 7, 2005 06:40 AM
Simon: You consider Python&Perl dissimilar, but Ruby similar to those!?! IMHO: Perl was invented to make a uniform framework to handle what was commonly done in 3 languages before (sh, awk, sed). Unfortunatelly it borrowed a lot of the ugly baggage from those languages and had a horribly inconsistant feel due to the multiple parents it borrowed from. Reading complex sh/awk/sed programs from before Perl existed shows the need for Perl quite clearly. Larry Wall's Rnmail and Pnews applications can still be downloaded and are good examples of the problems Perl was written to address. Python was a way of simplifying Perl's syntax so everyone (includng the original developer) could read it. [Disclaimer, I dislike Python's decision to use whitespace as a control structure. I think this was a mistake in the Makefile syntax, and continues to be a liability in Python.] Ruby was a ground-up design of a scripting language with a stronger theoretical basis and support for techniques like threading and OO and Blocks (theoretically more powerful than perl/python like Lambdas). Regarding the question about modifying the existing languages - you can't really do that because in each case a big motivator was to remove awkwardness from the existing languages, and not just to add features. Groovy, and well, Java itself - IMHO this is more of a social phenomenon, where Sun&IBM create an industry and demand in employers and programmers needing jobs gravitate to it to fill the vacuum. Groovy exists because all the Certified Java Programmers need a scripting platform that they can evangelize fits the Strategic Vision of a company that drank the IBM coolaid too deeply and wants to "standardize" on "java technologies". Posted by: RonM on May 25, 2005 01:16 PM
Bah, there's a good reason for scheme/lisp syntax. Can't do macros in such a powerful way without representing the parse trees directly in the syntax.... Perl may be a mess, but it's a glorious mess, if you've got a Larry Wall-ish personality. Check Higher Order Perl to see how to really make it shine (functional techniques not really available in Python).... Generally, there's a *lot* of innovation in programming languages these days. We have a lot of different ones because we're still trying to figure all this stuff out. Way too early to settle down. Check Lambda the Ultimate site... Posted by: on May 27, 2005 03:35 PM
Like anything - music, sports, clothes, food - different things appeal to different people. Perl to me is expressive and organic and gloriously messy while Python seems rigid and dull. But some people love Python and find Perl's syntax and its idioms ugly and non-intuitive. Now Ruby seems very appealing, and it's the one I'm looking to next Posted by: on June 18, 2005 12:30 AM
Post a comment
Name:


Email Address:


URL:


Comments:


Remember info?