The guys over at Rails Envy, a Ruby on Rails enthusiast podcast, have a running joke. Their catch phrase? – ‘Rails can’t scale.’ Yeah, I wasn’t too sure I got the joke either. Then I heard it myself in CIO level discussions from smart business people parroting things they didn’t understand and read somewhere once in an article in a magazine bylined by a guy in a suit who looked corporate and trustworthy. Rational reasoning and discourse can sometimes be co opted by bumper-sticker wisdom even at the highest levels.
Here is the thing about corporations; enterprises are in the business of managing calculated risk within the market or industry they operate. They do this by forcing non-core operations to be conservative, risk-adverse and predictable. It’s a bit like hedging your business’s bet in the junk bond market (core business) by backing it with rock solid, non sexy T-Bills (non-core like software development). Sure, the return on the T-Bills is lousy but you know in three years you won’t be out that investment. Java, backed by Sun Microsystems, and .Net, backed by Microsoft, are some of the blue chip securities of the programming world. Enterprises trust them. One-liners like ‘Rails can’t scale’ are the one-handed brushoff of entrenched corporate IT’ers to the mere idea of using something new like Ruby or Rails.
Still, Ruby is a persistent pitch man, especially in the web technologies.
Corporate IT: Ruby uses green threads and Rails is single threaded, why are we even talking?
Ruby: Ruby’s MRI is green threaded, but the JRuby interpreter uses native threads in the JVM, just like Java. Also, Rails 2.2 just released 2.2 RC1 that is thread safe. Merb was thread safe from the start and just released 1.0 RC2.
Corporate IT: There aren’t enough ruby programmers to staff a project.
Ruby: The Rails Rumble contest didn’t have any problems finding entrants. Five hundred programmers just gave up a weekend to write 248,000 lines of code. Teams up to four completed 131 different Rails projects in under 48 hours, so you can see just how productive a small group can be in Ruby.
Corporate IT: Sorry but we need dependable database connectivity, not this serial locking business.
Ruby: So pooled connections in jruby and Rails 2.2 scratch that itch?
Corporate IT: There still isn’t a big company backing it so no support. No support, no chance bub!
Ruby: Have you ever actually called Microsoft about a .Net problem? Or maybe Sun to support your Java app? Maybe you have, or at the very least arranged a support contract with a .Net or Java consulting company. Try instead one of the fine Ruby consulting companies like EdgeCase, HashRocket or ThoughtWorks. Sun already bankrolls the JRuby guys and for the Softies out there, Microsoft is putting its wallet behind Ruby on the CLR.
Corporate IT: Books?
Ruby: New one every day.
Corporate IT: You’ll get me to use some text editor in place of my IDE when Heck freezes over.
Corporate IT: Yeah, okay, you win. Now can I have that stack of waterfall project specs back, they were holding up the table at that end.
Ruby: Have you ever considered Agile?
Photo attributed to Megyarsh @ Flickr CC