Tue

Apr 11
2006

Tim O'Reilly

Tim O'Reilly

Why Ruby on Rails Won't Go Mainstream?

Reading Cedrick Beust's well-argued post on Why Ruby on Rails Won't Go Mainstream, and Ted Leung's thoughtful response, with one of the points being the lack of an IDE, now so important to mainstream corporate developers, I'm wondering why that's an obstacle that won't be overcome. I'd think that ActiveState would be all over this, or someone would hack up Eclipse support. (One of the other arguments, that Ruby is too hard for PHP and VB programmers, doesn't hold too much water once you get the IDE support. Microsoft has had some trouble getting VB programmers over to C#, but the momentum is clearly going in that direction. I'm not going to touch the argument that Ruby programmers have the arrogance of Lisp and Smalltalk developers who remind us that they've solved all our problems years ago, if we'd only listen. It's clever, but I haven't seen that myself.)

This is an interesting argument. What do you think?


tags:   | comments: 25   | Sphere It
submit:

 
Previous  |  Next

0 TrackBacks

TrackBack URL for this entry: http://blogs.oreilly.com/cgi-bin/mt/mt-t.cgi/4550

Comments: 25

  Geir Freysson [04.11.06 11:14 AM]

Someone is already working on Eclipse support. Check it out: http://www.radrails.org/

  zack rosen [04.11.06 11:49 AM]

I think RoR is fighting an uphill battle. If RoR breaks into mainstream I would be very surprised.

Explained:
http://www.zacker.org/ruby-on-rails

  Andrew Shebanow [04.11.06 12:22 PM]

ActiveState is indeed all over it - Komoda already supports Ruby

  Andrew Shebanow [04.11.06 12:22 PM]

make that Komodo. Don't know why I typed that...

  kr8tr [04.11.06 12:47 PM]

I've been using RadRails since the first available version, and it is quickly becomeing a very useful (if not yet mature) IDE for RoR. The development team is very active, and responsive and the supporting community is very much behind the development team.

  Dharmesh Shah [04.11.06 12:50 PM]

I will agree that RoR has little chance of becoming mainstream, but the primary cause won't be the lack of an IDE.

The primary cause (in my opinion) is that its productivity enhancements are somewhat "domain specific". Much like precursors in other domains (like PowerBuilder for client/server), it solves a certain class of problems pretty well, but loses its advantage when the domain changes dramatically.

Right now, RoR makes it relatively easy to develop database-centris, AJAX-driven web applications. As long as that's what's needed, it has an advantage.

But, as soon as the world changes (which it always does), and the class of problems that people want to solve is different, it will lose favor.

Programming languages succeed because of an ecosystem, and in the case of RoR, its hard to see a large ecosystem being created around it.

My two cents. I could be totally wrong.

  anil [04.11.06 01:42 PM]

Dharmesh, the 'domain specific problem' you refer to is that of building a web application. It is specific to the internet domain, granted, but that's a slowly evolving domain (technologically speaking, the internet does not change very quickly). The problem has not changed drastically in the last 5-10 years.

With a good IDE/debugger i will be very tempted to shift to RoR full-time. Mainly because of Ruby. Not much to do with Rails. For me, Ruby is the real revelation in all this.

Right now i program in PHP5 with Zend 5 and the IDE, coupled with the vast array of third party libraries, cancels out the productivity boosts of Ruby the language (which is more powerful than php) and Rails the framework (which is more powerful than our homegrown php framework).

Third party libraries play an important role in all this. GEM is under-populated right now. Though gems seem to be consistently of a higher quality than a lot of the things you'll find on PEAR or CPAN, there's just not enough out there.

Will RoR become mainstream?

All i can say is:

Talent does not scale well.

You know with certainty that a good ruby developer has better OOP skills than a good php developer. The php developer may be better, you just have no way of knowing, because he hasn't access to as many OOP features. To run a successful RoR project you have to hire high quality ruby programmers, there's no middle ground. IMO a lot of web programmers will not migrate productively to python/ruby. Their heads will hurt and they won't program to the strengths of the language and their design will be off and it'll be PAIN PAIN PAIN for other developers on their team.

I was recently asked by someone managing a RoR project why it was moving so slowly. When i inquired as to the skill-sets of the programmers involved the manager replied, "they used to be our dreamweaver guys". OK, i thought, looking worried. I suggested the quality of the programmers may be a factor. He looked at me puzzled, offended even. THESE GUYS ARE PERFECTLY FINE. THEY ARE WEB PROFESSIONALS. He said this with his eyes. Not with his mouth. Matter of factly, i said, "You may need better programmers. Ruby is a powerful language." It was like breaking bad news to a sick child. I felt bad afterwards.

  Ben Stanfield [04.11.06 02:10 PM]

Tim,

Also worth checking out is this analysis from Zack Rosen, founder of CivicSpaceLabs. He's got some cool graphs about the subject.

  Pat [04.11.06 02:34 PM]

How long did it take for a _good_ Java IDE to appear? Exactly. People forget that RoR is still an infant.

  Anjan Bacchu [04.11.06 02:34 PM]

hi tim,

I kinda agree that the CORPORATE world might not migrate to RoR unless there's better IDE support.

Sure, ActiveState can certainly step in but they're not in touch with reality -- they're stubbornly insisting on using their OWN IDE technology instead of doing eclipse plugins.

Otherwise, I believe that for the sweetSpot that RoR can fit in, if the Corporates themselves don't want to do the work, such work will migrate(outsourced) to economical implementors. So, we might see hundreds of small companies who are willing to create/maintain big corporations's applications written in RoR.

BUT... for those applications where RoR does NOT make sense, corporate developers will continue using VS.NET and java IDEs that make them comfortable.

This way, both DHH and the Rails community will be happy -- they dont' want to pander to the enterprise/corporates. The corporates will be happy too since they will be able to get a subset of their applications built by someone else.

BR,

~A

  Tim [04.11.06 02:56 PM]

An IDE won't be a deal breaker for all corporations.

Large corporations are risk-adverse; their technology projects fail regularly and therefore they try and reduce any & all perceived "risks". Anything new is "unproven" and is therefore considered a risk -- so they wait a while until the trade rags say "XYZ is good!"

Anyway... I recently left a large (F-500) firm. The CIO and I had multiple talks on the pro's/con's of Rails. Given the corporation's backlog they're going to expirement with Rails, hoping to get a small productivity boost.

These won't be huge projects (e.g. - Not replacing a policy admin system... yet), but definitely supporting applications that will be used daily.

I think it's still too early to tell, but corporations are becoming aware of Ruby/Rails and I think many will be giving it a whirl. It's a coin flip at this point if it will become a major player or not.

  David Ascher [04.11.06 05:15 PM]

Tim: We are jumping all over it. As someone already mentioned, Komodo 3.5 supports Ruby today, and better support for rails in particular and web development in general is coming.

Anjan: Appreciate the comments re: how we're out of touch with reality. We're certainly aware of what's going on with Eclipse. For now, we're not jumping on the Eclipse bandwagon for very simple reasons of economics: the cost of switching isn't warranted by the forecasted return. There are a lot of factors that fall into that model, which I should blog about someday, including the predicted complexity of adding "real" support for new languages to eclipse, the impact on our current (happy!) product line & customers, etc., etc. If we were to start today, we probably wouldn't build our own IDE infrastructure. As an old French expression goes, "avec des 'si' on mettrait Paris en bouteille" (with "if"s you could bottle Paris).

The world is big enough for more than one IDE. Even the Ruby on Rails world is big enough for more than one IDE. Only users of proprietary languages end up with the sad fate of having a single source for their tools...

  Tim [04.11.06 06:34 PM]

RoR has not solved any problem a Perl programmer didn't solve before!!! Think about it...

  Burl [04.11.06 07:51 PM]

RoR may not take over the world, but the PHP and VB argument rests on an assumption that the employment landscape will remain quite stable. One thing is likely to change though...

Right now, far more than half the IT shops run on brute force with unskilled and untalented labor and idiotic defined processes. Many successful companies are learning and demonstrating that one or two talented programmers with good tools and no silly process encumbrances can easily outperform teams of dozens or more, building more flexible and reliable systems as well.

If the larger corporate world comes to recognize this, that by paying a few talented people well and jettisoning the giant teams of low talent workers, they can save an order of magnitude more even than by shipping the work to similar large teams in India, the market for VB and PHP people would wither. If those people are working retail, nobody needs a compelling story to tell them about Ruby and RoR.

  kd [04.11.06 08:05 PM]

Just a little note to plug catalyst, speaking of RoR not solving any problem a Perl programmer didn't solve before.

  Marc Hedlund [04.11.06 10:39 PM]

I was really surprised at Cedric's post, since he's a fan of Java, Java is certainly considered a "mainstream" language today, and yet every one of his objections was leveled against Java for years after its 1.0 release. My main conclusion on reading his post was that people forget awfully quickly. :)

I would also say that his criticisms weren't all that precise, and I didn't find them compelling, maybe as a result. If Ruby, with or without Rails, succeeds in solving a problem for people, they'll use it, and that certainly seems to be what's happening. Needing a dramatically smaller development team is a pretty compelling value proposition...

  Mike [04.12.06 03:19 AM]

I thought about attempting an Eclipse plugin for RoR but I came to the conclusion that the problem is that the language is dynamic. So for effective code-hinting you'd need to more-or-less compile and run the code as it was being written.

Whilst not impossible, this would be a big technical challenge.

And if you look at how many methods a base class has in Ruby (e.g. the String class has over 80 standard methods), the benefits of code hinting are questionable.

Then again, it would certainly be useful if an IDE would contextually tell me about the methods _I_ have written, at least.

It's a drastic shift from C# to RoR - one that takes building up a heft of experience, and I sometimes think that maybe the other languages should just hijack the great _ideas_ in RoR. For example: auto-generation of data layer using pluralisation and looking at database tables. That wouldn't be particularly difficult to achieve in any other language.

  Stuart Johnston [04.12.06 08:29 AM]

For me the most important question is does the language/technology help me meet the needs of my clients?

Beyond this it doesn't really matter if the language/technology ever hits the mainstream. In fact it is almost a competitive advantage if it doesn't.

I use Ruby on Rails because it meets my needs and that of my clients - not because it is popular.

The same is true for my choice of operating system. Windows is definitely the most mainstream and popular platform but I find it difficult to work with so I use Mac OSX which meets my needs perfectly.

Mac OSX + TextMate + Ruby on Rails is perfect for me.

  Cedric [04.12.06 09:14 PM]

Hi Tim,

I didn't go into details about this topic in my entry, but I think an IDE is more there to help you take care of mundane tasks in a language, not teach you how to program well in that language. It's a requirement, but it won't be sufficient to help Ruby and Ruby on Rails cross the chasm.

There are also limitations inherent to the language itself that make certain features impossible to implement in that IDE, such as certain refactorings. To be honest, I don't believe this is a showstopper for Ruby's adoption but it's something that a lot of Ruby fans are surprisingly unaware of.

Oh and my first name is Cedric, no 'k' :-)

--
Cedric

  Matt M [04.13.06 09:51 AM]

I love code completion/code assist features. I love the incorporation of documentation into that feature. It accelerates the learning a language. It is a huge assist for when you have a finite amount of bio-RAM, and are switching between languages frequently. The degree to which this feature is developed in various IDEs will have a measurable affect on the rate of adoption amongst the developer community.

Automated refactoring support is also becoming an expected feature. Of course, if you have unit tests in place...

As far as comparing dynamically-typed uncompiled languages to statically typed and compiled languages goes, don't forget about the XML. Most of the Java web development frameworks use reflection and hideous XML configuration files to accomplish 80% of what dynamic languages do. A typo in one of these files makes things break quietly and evil-ly.

Rails makes Ruby a worthy consideration for database driven web app development. There are probably cases where PHP has enough off the shelf components available that it would be faster. It is definitely a consideration for replacing hard to maintain, over engineered, Struts applications running in WebLogic. Will it take over- probably not.

Here's a question though- is there any uptake on the language in academia? Universities (and High Schools) seemed to have pushed Java over what was primarily a c++ curriculum, and continues to turn out a crew of Java literate programmers every year. This is one advantage that Ruby has over PHP, Perl, (but maybe not Python)- it could be a legimate replacement in the various OO courses that are out there.

  Thomas Lord [04.16.06 02:27 AM]

First, the brilliance of RoR is all about forming appropriate abstractions and abstraction barriers. The comparisons to lisp and smalltalk are rather less than crazy -- the difference being that a lisper or smalltalker would want (and could tell you how to provide) less of the stack under the deep muddy. In all the edge cases where RoR falls apart, lisp would keep on plucking. Tim, if you love Ruby, and Ruby on Rails, you should adopt Scheme.

That said, Ruby has a good chance at "mainstream" and is on a proven track: the wedge strategy. Also known as the camel-in-the-tent stragey.

I wouldn't worry too much about details like IDEs or whether yr average VB programmer can get hooked on Ruby during a coffee break. Just let it do what it does well, for now, and it will climb gradients just fine.

Rather, I'd be anticipating an earthquake from the Scheme world. I'd be even more worried about any forces working against or even hanging back on that.

=t

  Larry O'Brien [04.16.06 09:24 PM]

Remember, Moore's "chasm" occurs not because of technology issues, but because of different _values_ held by "innovators and early adopters" on the one hand and "early majority" on the other. An IDE is an important step towards mainstream acceptance, but more as a signifier than as a technological hurdle. That's why an Eclipse plug-in is not as significant as a Komodo or ex-Borland dedicated IDE.

It's also why one of the most important things happening to Ruby right now is the attention of _more than one_ book publisher, even if one of the major players in the Ruby publishing market right now happens to be a quite young publisher.

Having said all that, I think the odds are still against Ruby crossing the chasm. There's the retraining issue, the lack of binary compatibility with the two major managed environments, and the pedestrian appearance of the RoR process, with its unfashionable command-line generators (n.b. that I'm talking about the appearance of the process, not the results, which are impressive to those whose values emphasize flexibility and elegance of effort).

  Shad Vick [07.14.06 07:48 PM]

I run a web design firm that strictly utilized PHP/MySQL for web applications. We have stopped developing in PHP completely except for special request or maintenance projects. It came down to 3 critical pieces that caused the switch:

1. Our clients don't care what we develop the app in. As long as it does the job, is secure and scaleable - then they're happy - especially when pricing is slightly more competitive.

2. We can complete projects faster and with more stability for our clients. More margin + more simultaneous projects = more revenue/profit.

3. The work atmosphere has become less stressful. When we land a new deal - the first question seems to be "can we do it in Ruby?". Applause when the answer is "yes". High Morale = More productivity...yada yada.

I don't care if it becomes mainstream (although seeing the trend of high quality developers switching over to it makes me think it will), but it is interesting to see that some clients are starting to ask for it.

  Greg Bittar [10.16.06 11:35 AM]

someone said: "Ruby programmers have the arrogance of Lisp and Smalltalk developers who remind us that they've solved all our problems years ago, if we'd only listen."

What's arrogant is enjoying the benefits of other peoples' hard work and R&D, and then trying to deny the debt owed. It's even more arrogant when the new school just renames an old invention, and claims it as its own, dismissing the original as a failure (perhaps because it didn't have proper marketing).

And it gets preposterous when the 'new invention' is actually a half-hearted, misinformed interpretation of a novel, older idea which reflected the insight of an inspired genius.

If arrogance is thinking, then so be it.

I'm heartened by Ruby. It seems as though some people in IT are still thinking beyond their chins.

  sheshadri [11.17.08 05:44 AM]

Netbeans ide supports ruby on rails.

Post A Comment:

 (please be patient, comments may take awhile to post)






Type the characters you see in the picture above.

RECOMMENDED FOR YOU

RECENT COMMENTS