Skip navigation.
KDE Developer's Journals

Steve Yegge on the rise and rise of Ruby

richard dale's picture

I've just read a couple of Steve Yegge's blogs about why he thinks certain languages have succeeded while other technically superior languages have failed. He has spent most of his time in the last year or two programming python, but recently has got into ruby. He writes really well about how the 'culture' around a language can affect its success or failure, and how the ruby culture is more open and friendly than python's.

In the first blog A little anti-anti-hype, he gives his reasons for why he thinks perl became more popular than python in spite of having arguably more warts, and why ruby might end up being more popular than both of them. This annoyed so many people he took it down before Christmas, and only put it back in the new year after he'd added some commentary and apologies for any unintentional python bashing. To me that suggests that the truth of what he was saying hit a raw nerve

Then in the second article Bambi Meets Godzilla he gives some background for those who weren't around when Java killed Smalltalk, about what it feels like to see a language you love die on you as a result of marketing and good timing rather than any particular technical merit.

That struck a chord with me because I was an OpenStep/Objective-C programmer in 1995 when NeXT was going strong, and Sun were about to release a version of OpenStep for Solaris. It seemed then that Objective-C was heading for world domination. A company called Taligent were trying to produce an OpenStep killer based on C++, but failing because of the limitations of that language (don't underestimate what an amazing technical achievement Trolltech have pulled off in producing the first worthwhile GUI toolkit based on C++). So what could possibly go wrong? Well the answer is a lot. Only a year or two later, Sun had abandoned their Objective-C/OpenStep implementation in favour of a pretty limited new language called 'Java', which had a pathetic GUI toolkit by comparison with OpenStep called the 'AWT'. A few mainly ex-NeXT guys started trying to do something to get a better toolkit than AWT, and wrote the Netscape Foundation Classes. That project was taken over by Sun, and made less NeXTStep-like and more static by IBM I believe. It ended up becoming the awful mess called Swing that we are still saddled with today.

Because of that experience I've never really been able to take a liking to java, not because I particular dislike it, but more for how it nearly killed Objective-C. So I can understand what Steve Legge is saying when he describes the depth of feeling felt by Smalltalkers.

But the story has a happy ending because Ruby, like Objective-C, is based on a lot of Smalltalk ideas, and it may well equal Java in popularity and supplant it over a 5-10 year time frame as the Java community become more bureaucratic, less hip and lose momentum. So a Happy New Year to all you rubyists out there - I think we have good reasons to look forward to a very successful and exciting 2006.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
cristian tibirna's picture

Innocent question

Hi Richard

What do you think of the "self-documenting" feature of Python? I really like it. It would have been more than easy for Ruby's father to carry it on. I know that this feature helped me _a lot_ with learning Python 8 years ago. Warning: I have 3 days (spent 5 months ago) experience with Ruby. But I really liked it... aside the documentation thing, that is. Even the side documentation is poor/incomplete, IMHO.

(Then there is the problem of libraries. I'm a heavy user of Python's numeric libs. But I'll leave this to rest for now)

richard dale's picture

Re: Innocent question

What do you think of the "self-documenting" feature of Python?

I'm afraid I don't know much about python and the 'self-documenting' feature. Comments in Ruby code can be extracted and converted to html via the 'rdoc' utility. Is that something like you want? You can use the 'ri' command to look at rdocs or the 'ihelp' package allows you to use it interactively. For example:

require 'ihelp'

12.help
"string".help :reverse
Array.help :map
help "Hash#map"

# and, after generating ri docs for this (rdoc --ri ihelp/):
IHelp.help

I think you certainly need a copy of 'Programming in Ruby', aka the pickaxe 2, to start learning Ruby. I've recently started learning Rails, and 'Agile Web Development with Rails' is another great book. Or Caleb Tennis's pdf book in the same 'Pragmatic Programmers' series about QtRuby programming is another essential starting point for GUI programming in Ruby.

cristian tibirna's picture

Thanks

Yes, I started with the online version of the pickaxe book. Yet it's the first time (in your comment) I see mention of "ihelp" module (and I think it's not included in usual ruby distributions). Nice touch. I need to get to QtRuby and Korundum soon.

As of python, I speak of:

>>> def dumb():
...   "Too dumb to do anything"
...   pass
>>>
>>> print dumb.__doc__
Too dumb to do anything
>>>

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.