Ruby: A Wave of Surfer-Dude Hype
By
September 18, 2006
Issue #9 of ObjectiveView [pdf] (a highly respected on-line journal) was a sort of Ruby Special: lots of articles devoted to the wonder that is Ruby, and Ruby on Rails. When a journal that is meant to take an objective view suddenly goes all misty-eyed on us, it’s a warning signal that something might be up. Either Ruby really is the “wonder drug” of programming languages which will cure all our development ailments; or the Ruby hype machine has finally gone into overdrive.
Suggesting the latter, Sun recently hired the two core developers of JRuby, an implementation of Ruby that runs in the Java VM. On the surface, this could be seen as a ringing endorsement of the Ruby way: another gas canister feeding the hot-air balloon of dynamic programming hype. Combined with the almost delirious burblings from industry gurus (mainly authors), you’d think that the entire industry will be turning to Ruby for their next round of IT projects.
But dig a little deeper and you’ll quickly notice that it isn’t being used on very many projects at all. There’s also a growing cynicism regarding Ruby’s applicability on “serious” business projects.
What’s Good About Ruby?
First, the good things. Beneath all the hype, there’s a lovely scripting language; and Ruby on Rails’ almost rabid use of “sensible defaults” means that initially there’s very little configuration to be done for your new web application. As long as your app falls inside the path most travelled, you’ll find that, at first, you make lots of progress quite quickly. For many people this will be enough – especially for people evaluating Ruby.
Ruby is a dynamic scripting language. Its syntax is nice, and the programs you end up writing tend to be quite clean and concise compared with their Java equivalent. Put simply, it’s fun to write Ruby programs. This leads me to wonder whether the industry gurus cheering Ruby along are doing so out of wishful thinking.
In Ruby, everything is an object, including numbers, booleans and so forth. So it’s perfectly legal to perform a method call on a numeric literal, as in:
puts 5.factorial
(Pause for dramatic effect, while Java and C# programmers everywhere silently lay down their tools and realise how horribly unproductive they've been all this time).
You can also add new messages (methods) onto existing classes at run-time, e.g. the factorial message added onto integers in the above example. Dynamism is at the heart of the Ruby way.
But the jury – the objective jury, that is – is still out on whether Ruby is suitable for medium- or large-scale enterprise projects.
Ruby on Real Projects
With all the hype surrounding Ruby, it’s noticeable that it hasn’t exactly swept through the industry in the way that Java did a decade ago. The only thing that Ruby has swept through is the blogosphere, and perhaps some object gurus’ underpants.
Although many industry gurus have switched allegiance from Java to Ruby as their soapbox language of choice, I’m not convinced that there’s any significant uptake of the plucky scripting language on “real world” IT projects.
A quick search on Jobserve.co.uk revealed that 3,235 Java jobs had been posted in the last 7 days. And the number of Ruby positions that desperately needed filling? 26.
In the City of London, I’m not seeing anyone falling over themselves to bring in Ruby programmers so that they can begin leveraging the massive cost savings that this scripting language will purportedly afford them. Instead, investment banks and their ilk appear to have rediscovered Java, and currently the demand for Swing developers is at an unprecedented high.
In the cosmic scheme of things that isn’t surprising. Java is a mature language and platform; and desktop Java has come along in leaps and bounds over the last few years. It’s geared towards real-world pragmatism. Java puts getting the job done first, and object idealism second. This is why Java includes primitive types (which aren’t objects). This design decision is often derided by object purists, but it’s a pragmatic concession to the real world: the need to get the job done, not to slow your whole system down in the name of design correctness.
Contrast this with Ruby’s pure approach to OO: everything is an object, even “nil”, and everything, even the classes themselves, can be modified at runtime. But the downside is performance (admittedly an issue that also detracted from Java in its early days).
So if anything, reports of Java’s imminent demise at the hand of Ruby are wishful thinking at best; and the amount of noise generated around Ruby by industry gurus massively overshadows the fact that – besides some pilot projects at ThoughtWorks, perhaps – very few people in the industry seem to be actually using it.
Clever Code and the Feel-Good Factor
The danger with Ruby – and it’s the same uncomfortable danger that hangs over the extreme programming/emergent design crowd – is that Ruby’s syntactical cleverness encourages programmers to write “clever” code: code that’s more about itself and about technical minutiae and dynamic design patterns than about the business problems that it’s meant to be addressing. It’s all very “ivory tower”, and in terms of development philosophy it sits almost at the opposite end of the table to the more pragmatic, results-driven Java.
Ruby proponents seem to measure maintainability in lines of code: the smaller the program, the “cleaner” and more maintainable it is. Check this example on Martin Fowler’s “bliki”:
C# example:
public static IList Managers(IList emps) {
IList result = new ArrayList();
foreach(Employee e in emps)
if (e.IsManager) result.Add(e);
return result;
}
... as compared with the equivalent in Ruby:
def managers(emps)
return emps.select {|e| e.isManager}
end
I actually prefer the C# version, as the processing isn’t hidden away behind some clever syntax. The Ruby version is creating a list and populating it; you just have to know in advance that that’s what it’s doing. It’s neat and clever in an academic kind of way, and also kind of fun, but multiply this example by several thousand, and you end up with a project full of cryptic code and “implied” things going on behind the clever parser.
If maintainability were really achieved by making the code more compact, we would all be writing our enterprise systems in Perl. I thought Java had laid this fallacy to rest: but industry pundits are now touting the benefits of Ruby in terms of its reduced LoC.
In practical terms, Ruby suffers from some limitations that will count it out from serious projects for some time. First, it lacks a decent IDE. I’ve seen Ruby die-hards argue that you don’t need an IDE with good refactoring support (etc), because you’ll write less code and it’ll be purer. But frankly, that just doesn’t wash. Big projects with groups of developers working together need a strong IDE, plain and simple. Secondly, Ruby has patchy Unicode support at best (it's especially problematic with Ruby on Rails). This makes Rails suitable for websites about a programmer’s pet cat, but not for high-end sites with stringent I18N requirements.
For all of its “scriptiness” and code cleverness, Ruby falls in between two stools. It’s neither a handy lightweight scripting language, nor a full-blast enterprise platform. It wants to be both but ends up being neither: it’s the Asian chick-boy of programming languages. If languages were movies, Ruby would be The Crying Game.
Hitting the Reset Button
The thing is... who cares if I can say 5.factorial? Does it suddenly let me solve business problems that I simply wouldn't attempt in Java? Wow, now I can start writing software, instead of banging rocks together.
Ruby is a dynamic language. Like all fashions, people will overuse because they can; they'll be so in love with the tech that they will forget the business. How often have you felt the need to add methods to existing classes in a way that inheritance or dynamic proxies can't handle?
As for the closure example, it's nice, but so what? Why not just add closures to Java (which is being looked into for the Java 7 release)? Better that than to throw away all of Java. In the meantime, I'm happy to wait. It's not as if I've ever felt the lack, but I'm sure closures will be cool when Java gets them.
The need to invent a new language to overcome the (fixable) shortcomings of a mature, thriving language like Java is like rebooting your PC because a single process has hung; or demolishing your house because you don't like the style of wallpaper. When replacing anything, it's worth asking: what problem am I solving? Is it worth the effort? When Java came along, there was no language as strong. There was C++ but it didn't have all the APIs, the memory management, the networking etc. Now, after many years in relative obscurity, Ruby hops onto the hype radar, and Java is 10+ years strong, solid and trusted. Where's the benefit for all the hassle of changing language?
You Just Can’t Get the Staff
Another issue – very much a “chicken and the egg” problem – is that the critical mass of developers doesn’t exist in the marketplace. If you’re choosing a programming language/platform for your next project, you’ll want to go with something for which you’ll have no problem finding experienced staff. So that’s Java, then. Ruby developers, by contrast, are as rare as rocking horse shit.
This brings us back to the “clever code” syndrome that the syntax encourages. For all its purported simplicity and elegance, the language requires some quite advanced OO knowledge. If there are no Ruby programmers available, you’ll need to train some up: so their first exposure to this mysterious new scripting language could be trying to debug the in-house guru’s closures, mixins, loop abstractions, and dynamic dispatch constructs. (That isn’t to detract from any of these features, as they all have their uses; but the commonality of such advanced features in the language scores highly against it when you’re recruiting for a new project and can’t find enough coders with prior Ruby experience).
Conclusion
Ruby’s been around as long as Java, but doesn’t have nearly the same number of libraries. Where do you get the alternative VMs when your current implementation has bugs? Java represents a mature, thriving, extensive ecosystem of libraries, platforms and experienced developers.
Ruby, on the other hand, is for fanboys. It’s for surfer-dude programmers who are more interested in language features and “coolness” than in focusing on the needs of the business.
Note, that’s the current state: who’s to say how far Ruby will go in the near future? Sun's adoption of the core JRuby developers is an interesting development; it's entirely possible that Ruby will find a suitable niche as a scripting language inside the JVM; following in Rhino's footsteps (sorry, hoof-prints). That would be nice, although there is still the problem that I described earlier - that Ruby's language constructs make it too "advanced" to be a common scripting language. So it might not be as suitable a fit as some would hope.
It seems likely that, despite all the hype, Ruby will remain an academic delight: an example of how pure and idealistic a language can be; while Java will continue to give developers what they ask for and need on real business projects.
My message here isn’t “don’t use Ruby”. Instead, it’s simply “take the hype with a pinch of salt, be sure to evaluate the alternatives, and don’t go with something just because it’s fashionable.” Oh, and don't bet your business or your career on Ruby.
Related Articles
Software Fashion
The Case Against Extreme Programming
Dopamine and the Uber-Nerd
Messages
Post a new message
Message Index: Disclaimer: i'm not much of a Rubyist, more of a Pythonista, but there are still ... Anonymous person
AC#1 is correct AC#2
Agree w/ AC #1 & AC #2, with quibble AC #3
Some name calling but some good points made too Anonymous person
you have problems. reader abuse@softwarereadlity.com
re: you have problems. Anonymous person
Fear... Samuray emanuel.mota@gmail.com
AC#2 doesn't know what he's talking about Sam harparkrat@gmail.com
Only a Langage Robin rbin.shap @ javelinsft.com
Most of your objections should disappear with time Luis lcrespom@gmail.com
More Anti-ruby sentiment Dino
Popular is best? Paul J. Lewis
PS. Paul J. Lewis
Hype yes, conclusions maybe Conan1
pleasure first polyploid
A solution in search of a problem Anonymous person
Stop attacking Java Developer xxx@abc.xom
Perfect Túlio ornelas.tulio@gmail.com
Nor Ruby or Java Oracle oralce@mailinator.com
thanks newbie
The Messages: Disclaimer: i'm not much of a Rubyist, more of a Pythonista, but there are still things you say with which I deeply disagree:
> Ruby proponents seem to measure maintainability in lines of code: the smaller the program, the "cleaner" and more maintainable it is.
They actually measure by the number of statements, not the lines of code, and I'm sure you're aware that Bill Gates and Ester Dijkstra measure them exactly the same way and said it several times. Or aren't you?
> I actually prefer the C# version, as the processing isn't hidden away behind some clever syntax
There is no "clever" syntax here, merely a functional construct that you don't know, a higher-order filter: takes a collection and a filtering functions, outputs a filtered collection.
The only Ruby-specific is that the filter is applied on the source collection, but this construct is extremely common in a lot of languages, functional (Haskell, ML, ..) or not (Python, Smalltalk).
Of course, this kind of constructs isn't doable in Java since it doesn't have functions (as first-class objects). You could probably do it with anonymous classes, but it'd be a pain to. And it'd probably be doable in C# with delegages, but it'd still be painfully ugly.
> you just have to know in advance that that's what it's doing
Er... yeah? I mean knowing how the language works is pretty much a baseline requirement in any language. Plus "what it's doing" is 15 keystrokes away: just type "ri Array#select" in a command-line and you have a short documentation for the select method of the Array class (and quite a lot of Ruby tools/IDEs have shortcuts to the docmentation)...
I mean that argument boils down to "whine Ruby is not like Java whine"...
This piece of code isn't fully Ruby-idiom-compliant though (yes I do know that you're not the one who wrote it, just pointing it out). It'd usually be written
def managers(emps) emps.select {|e| e.manager?} end
And I do find it hard _not_ to understand
> you end up with a project full of cryptic code and "implied" things going on behind the clever parser
The parser doesn't do jack in this case, the implementation of #select does. As for the "cryptic code" remark, here again it's a case of "whine Ruby is not Java". Everyone who's coded more than 3 lines of Ruby can read that line, it's a standard Ruby idiom used throughout the whole language...
As for the "implied" part, you may have not realized that your C# example also relies of implied behaviour. Last time I checked, "foreach(Employee e in emps)" has to extract an iterator from a collection of employees, iterate on it and present you with Employee objects. Next time you try that one, you should go for the good ol' explicit FOR syntax.
> If maintainability were really achieved by making the code more compact, we would all be writing our enterprise systems in Perl.
Perl isn't that compact when using the number-of-statements metric. And the aforementioned metric, while less flawed than the LOC one, is still highly imperfect.
> I thought Java had laid this fallacy to rest
Java has never laid anything to rest, what Java has done for IT boils to this: marketting wins over engineering 10 times out of 10. Java's victory has showed than a huge marketting team and a big industry backing can somehow "correct" any flaw a language can have...
> it lacks a decent IDE
Acceptable. Getting better, though.
> Big projects with groups of developers working together need a strong IDE, plain and simple.
Not acceptable though, a strong IDE brings a lot to the table but it isn't needed as in required. The things big projects with groups of developers working together need are a very good version control system (as in clearly not SourceSafe), methodology, and the ability to write easily write lots of tests and good documentations.
Java wins on the last one by the way, Javadoc's still way better than Rdoc.
> Secondly, Ruby has patchy Unicode support at best
That one I fully agree with. Python's much better on this aspect. Thanksfully, Ruby 2.0 should at last have a useable multilingual support.
> Why not just add closures to Java
I don't know, because the language hasn't been designed with functions and closures in mind, because it's going to be butt-ugly, because it's going to be unreadable, and because the explicit-static-because-we-couldn't-infer-types-to-save-our-lives will make them a pain to work with?
Oh yeah, and because Sun sure as hell won't refactor the whole core language and standard library to use them, and you'll end up with a mix of "legacy" Java (using the java people write right now in 1.4 or 1.5) and "new" java using closures... Ruby's blocks work because they're standard idioms, they're used throughout the whole core language and standard library, if you're using Ruby you're using blocks period.
> In the meantime, I'm happy to wait.
On the other hand, no one ever told you that you HAD to switch to Ruby. Or Python. or Haskell. Or Erlang. If you're happy with Java, by all means keep coding in Java.
> Ruby, on the other hand, is for fanboys. It's for surfer-dude programmers who are more interrested in language features and "coolness" than in focusing on the needs of business.
The fun part is that your whole line of "reasoning" leading to this could be applied to _any_ language that is not Java. And it could be applied to Java too, when comparing it to C++. And to C++ when comparing it to C.
In a word, it's pointless name calling and FUD, because you don't like Ruby, because you don't like how it looks and because you don't like the fact that it's not Java.
> It seems likely that, despite all the hype, Ruby will remain an academic delight: an example of how pure and idealistic a language can be
And here again, you show your ignorance of the domain, the language and it's ancestry.
Ruby is definitely not on the "pure" side of language design. If anything, it's on the "practical" side. A practical side that you may not understand, but it's still on the practical side. Smalltalk is on the pure side. Haskell and SML are, too. Ruby' definitely isn't.
> while Java will continue to give developers what they ask for and need on real business projects
Funny how the exact same words were used with "Fortran" and "Cobol" instead of Java less than thirty years ago isn't it? The more things change, the more things stay the same, I guess.
> My message here isn't "don't use Ruby". Instead, it's simply "take the hype with a pinch of salt, be sure to evaluate the alternatives"
No it's not, your message here is 'Java is the """industry standard""", everyone uses it and there's no reason not to be a sheep'.
Had it been about evaluating the alternatives, you'd have checked the language (really checked, I mean, not checked as in "yeah I read two lines of code on a website, and it doesn't look like Java, so it sucks"), and you'd have given alternatives, that you'd have checked too.
You didn't do that. You didn't even come close.
To close this post as I started it, I don't care much about Ruby, I'm much more of a Python guy and my interests (as far as new languages go) lay in much more "alien" languages than Ruby (Mozart/Oz, OCaml, Erlang). But your article is still a piece of crap. Anonymous person
Sat Sep 23 17:04:57 BST 2006
AC#1 is correct Your entire argument reeks of Java fan-boism. At no point did you actually address any underlying faults with Ruby or any other dynamically typed language. Regarding performance, Java is pretty slow too, and does not begin to measure up to C++ or even Fortran. And as for type safety, Linux is written in C; so clearly that's not so important either. And oh yeah, the enterprise system behemoth that is Yahoo relies greatly on PHP. So much for your rant against dynamically typed languages.
As for your rant against Ruby's own syntax, have you finished high school yet? Most 10th grade math students would recognize the set theory notation of { x | x > y }.
The first poster was right; this article was poorly researched. Ruby is not an academic language. Try Haskel or Smalltalk if you want to whine about something like that. And as for the lack of tools, that's probably because a Sun didn't push it as the language of the Internet during the first dot-com bubble, though that appears to be changing. Rails is to Ruby what the CGI module was to Perl ten years ago: a killer app. AC#2
Sat Sep 23 19:11:27 BST 2006
Agree w/ AC #1 & AC #2, with quibble "Most 10th grade math students would recognize the set theory notation of { x | x > y }."
I took damn near every math class my high school offered, and we didn't cover set theory in any of them. Lots of algebra and calculus, no set theory or other forms of discrete mathematics. While the syntax isn't that tough, I wouldn't say high-schoolers necessarily would recognize it. AC #3
Sat Sep 23 20:04:44 BST 2006
Some name calling but some good points made too The posters are quibbling, but I think this article makes some strong points, and the author is brave enough to stand up and say them, especially with something like Ruby that people get so passionate about.
Ruby doesnt have the libraries or the developer base that Java does have. So developers that choose Ruby on their projects can't be doing so because it's right for the business, theyre doing so for "technical" reasons, or because they too want to write "clever" code. Sure there's some name calling in the article. But behind the name calling there are some thought provoking points being made. Anonymous person
Sat Sep 23 21:18:18 BST 2006
you have problems. your quote: "it?s the Asian chick-boy of programming languages. If languages were movies, Ruby would be The Crying Game."
you have social (sexual, rasist) problems.
reader abuse@softwarereadlity.com
Sun Sep 24 00:42:29 BST 2006
re: you have problems. > you have social (sexual, rasist) problems.
reader, you have sense-of-humor problems. Political correctness is harming the world. Anonymous person
Sun Sep 24 10:32:48 BST 2006
Fear... Why people (java developers) are atacking Ruby ?? in one simple sentence:
"Fear is a basic emotional sensation and response system ("feeling") initiated by an aversion to some perceived risk or threat." - in wikipedia
Ruby is becoming a 'threat' and a 'risk' for the powers in charge (Java, .Net)
Has anyone saw posts recently criticizing haskel, mozart, ocaml, lisp, etc ?? They don't represent a risk for the sheeps in charge:-)
Ruby is becoming the Bad Wolf and that's a wonderfull sympthom.
Samuray emanuel.mota@gmail.com LX, Portugal Mon Sep 25 11:21:39 BST 2006
AC#2 doesn't know what he's talking about AC#2 states:
"Regarding performance, Java is pretty slow too, and does not begin to measure up to C++ or even Fortran."
Actually, this is quite incorrect. Do some research and you'll find that modern Java VMs are quite fast. In some cases, they are faster than C++. You will also find that Ruby is one of the slowest languages in existence. You don't have to believe me, just do a quick lookup on language benchmarks and you will figure this out yourself. Or continue to live in the dark. Sam harparkrat@gmail.com USA Mon Sep 25 19:50:52 BST 2006
Only a Langage What' the point in w*nking over syntax when the meat of any language in the past 10 years is in the number of available libraries. Ruby has very little. Robin rbin.shap @ javelinsft.com London, UK Sun Oct 15 18:49:35 BST 2006
Most of your objections should disappear with time "Ruby is slow": a JIT is under development, the VM has a lot of room for performance improvements, and hardware keeps getting faster. Java was slow for the hadware that existed when it was originally created.
"Few Ruby developers": as you say, a chicken and egg problem. If Ruby is really better, more people will start using it, etc.
"Hard to understand": ruby can be used as a simple scripting language, in fact simpler than Java, and then you can progress from there... you just need time.
"No IDE": again, just a matter of time until good IDEs are available. There are already Eclipse plugins, which leverage all the other features of the IDE.
In my opinion the real problem is that there is no big company behind Ruby, as Sun is behind Java. The VM/interpreter is open source and therefore there is nobody to blame if something fails. Enterprise projects consider this a big risk.
Luis. Luis lcrespom@gmail.com Barcelona, Spain Tue Oct 24 16:43:46 BST 2006
More Anti-ruby sentiment http://www.javalobby.org/java/forums/t83355.html
http://www.javalobby.org/java/forums/t83275.html?start=0
Dino UK Wed Oct 25 15:55:32 BST 2006
Popular is best? This basic undertone of this argument seems to be that Java is more popular, and therefore, somehow, better. If this where true hackers would all be listening to Brittany Spears. But my guess is most don't.
Paul Graham has some interesting articles on this theme. Just search for "Paul Graham", and click Essays. (Disclaimer: I'm nothing to do with P.G. and vice versa.)
You could hardly call him a purist either, since he started one of the first successful e-commerce companies, ViaWeb... using Lisp.
Some articles:
The Python Paradox If Lisp is So Great Succinctness is Power Being Popular Paul J. Lewis Reading, England Mon Apr 16 18:34:53 BST 2007
PS. PS. I'm full-time Java programmer. But that doesn't mean I won't keep an eye on anything that might turn out to be better. Paul J. Lewis Reading, England Mon Apr 16 18:41:09 BST 2007
Hype yes, conclusions maybe Yes, Ruby is the latest in hyping of a language and a person has to be able to look through it to the real stuff. Remember when Java came out? That was the hyperest of hypered languages on steriods. "Java would be the only language left in a few years." "Schools will only be teaching Java." "There is no further need for C, Basic, Fortran, Perl, (fill in any language)."
And at the time, it wasn't very good, almost making interpreted basic look fast as C. It is fine now, of course. Ruby has some holes and Rails is fairly neat, but is another hyped-beyond-belief system. Time will tell if Ruby is one of the top half dozen languages or just another runnerup.
I have to say that, where beginning Java was almost as painful as beginning C - beginning Ruby is actually fun.
Conan1
Conan1 Somewhere in Texas, USA Thu Dec 06 23:28:26 GMT 2007
pleasure first
public static IList Managers(IList emps) { IList result = new ArrayList(); foreach(Employee e in emps) if (e.IsManager) result.Add(e); return result; }
... as compared with the equivalent in Ruby:
def managers(emps) return emps.select {|e| e.isManager} end
... which can be even more tersely written
def managers emps emps.select { |e| e.manager? } end
wait you actually prefer the top snippet to the bottom one, and we are supposed take anything you say seriously? 'select' btw comes from smalltalk and once you learn what it does, there is no more mystery and even less RSI.
programming is all about abstraction, the more you can intelligibly abstract away while still remaining clear in intent the better your language whether it be ruby, haskell, or some other well designed language.
ruby was designed believe it or not with programming pleasure as the first priority, no joke. my advice to you is to ignore the hype (which should always be ignored) and try to actually program in ruby a bit (not rails mind you, but ruby), you might be surprised.
polyploid
Wed Dec 19 20:13:18 GMT 2007
A solution in search of a problem My organization has gone whole hog into the ruby camp because management bought the 'buzz'. What a foolish mistake - this language is a joke - we have had to work around it in so many ways. I know someone is going to call this statement vague and ask me to enumerate the problem - sorry, but we have run into so many problems that I would have to go on for pages and I'm not getting paid to make this post. My only hope is that someone who is thinking of trying to do something more complex than a shopping cart will look into it a little more. But I'm not very worried - the adoption rate is really pretty slow and feels like its peaked already.
The question "what problem are you solving" is a good one. And the question, "Does Ruby solve it" is obviously just as significant. Ruby is the latest in a line of boutique languages - there will always be people looking for a bandwagons to jump on. But unless a new language solves a real business need, then the realities of:
1. Small pool of trained programmers 2. Legacy code that most companies won't convert without a strong reason. 3. Miserable performance
will dominate. Ruby is the TK/TCL of the new millenium. Anonymous person
Mon Feb 11 16:46:19 GMT 2008
Stop attacking The company that I am working for is the #2 largest company which using Ruby to build their site. And I am using Java to develop their external API for client. I dont see any thing is that bad about Ruby that ppl need to attacking like this. Just open your eyes and heart.
Java Developer xxx@abc.xom LA, USA Thu Apr 03 01:39:46 BST 2008
Perfect Perfect! Túlio ornelas.tulio@gmail.com Brasília, Brazil Wed Jun 17 01:41:32 BST 2009
Nor Ruby or Java Take the middle road. groovy.codehaus.org Oracle oralce@mailinator.com Monaco, Monaco Wed Jul 29 18:08:34 BST 2009
thanks Interesting piece. Glad to have read it as I'm just starting programming. I've never seen such venom and anger disguised as a logical argument. And that tells me something... that ruby must have something special making people upset enough to get emotional.
Ruby be will be my first language now as I'm now very curious about it. Far more interesting than Java. newbie california, usa Wed Jan 06 03:38:51 GMT 2010
Post a new message
<< Back to Soapbox
|