Ted Leung on the air: Open Source, Java, Python, and ...
We've been going through the Ruby on Rails book in our Bainbridge Island reading group, so I was interested to see Cedric Beust's post Why Ruby on Rails won't become mainstream. It took me a few moments to get over the sting of being called someone who hasn't learned anything in 30 years (despite the fact that I only learned Lisp/Scheme 22 years ago). That bit of discomfort aside, there are some interesting points in his post. I am looking for a web framework for some experimental projects, and I think that many of the points that Cedric made are just as applicable to Python/Turbogears/Django, etc.
Cedric's definition of mainstream includes being appealing to Visual Basic and PHP programmers. That seems to be the backdrop of his first two points, that Ruby and Rails are too hard for these folks. I can see some of these points - folks in our reading group have been somewhat mind bent by some of the Ruby concepts, and they are Java/C# folks, which would put them higher on the food chain than VB and PHP programmers. I think that some of this is just unfamiliarity as opposed to difficulty, but there's not doubt that there is a learning curve there.
The next major point is about the lack of an IDE. I think that the term IDE has gotten a bad rap due to a class of products whose only real value add was to generate reams of horrible looking boilerplate code. But IDE's should be more than that, and the better ones are. One of the few things I miss from Java is Eclipse (never used the much vaunted IntelliJ). I use WingIDE for Python, which is at about the same level that Symantec Cafe was for Java. I mostly used Cafe for the debugger, which is the big reason I use Wing too. For me, the big jump in Java IDE's came with Eclipse (maybe IntelliJ was there first, I can't remember anymore), which could do refactoring and other semantic operations. This was the point where it was really worthwhile for me to use an IDE in preference to Emacs. Those of us that cut our teeth on the original dynamic languages (Smalltalk and Lisp) did so in the context of the fully integrated and graphical development environments of the Smalltalk and Lisp machines. This is in contrast with the currently popular dynamic languages which originated in the text only world of UNIX/Linux. So the only quibble I'd have with Cedric on this one is that is 2006 not 1984.
As far as fanaticism, I haven't personally experienced this, but then again, I haven't said anything negative about Ruby on Rails either.
The last two topics, 1) "enterprise" capabilities and scalability and 2) lack of support from Internet Providers, are both related to deployment.
The scalability question came up in our reading group as well, and I'd agree that the jury is still out on whether there are enough large deployments to settle the question conclusively. One area that makes me personally nervous is that a lot of work has been done on improving the VM for Java than on the VM's for Ruby, Python, or Perl. People in the Ruby, Python, and Perl camps seem uncomfortably sanguine about the performance of the VM's for these languages.
The ISP support question goes back to the assumption that the mainstream target audience is the Visual Basic and PHP developers. I know that ISP support for Python was problem for a number of folks who wanted to use Pyblosxom. In the days of User Mode Linux, Xen and so forth, you'd think that this should be a solved problem, but it doesn't seem to be, and if the target is PHP, then I'd have to agree that this is a problem.
So I'm mostly in agreement with Cedric, if the definition of mainstream is PHP and Visual Basic. But I have to wonder if that's the right definition for mainstream, or whether being mainstream should really be the goal. I know that I would personally like an outcome where Rails (or Turbogears/Django) was an acceptable technology to build a web application. By acceptable, I mean that you wouldn't have to pay a premium for developers familiar with the technology, there was an acceptable quality IDE, and your use of the technology wouldn't be regarded as a risk by investors or prospective investors. I don't know whether taking over the niche occupied by PHP and Visual Basic is necessary for that outcome to happen.
It is very hard for a technology to become mainstream. My own view is that Java succeeded because it arrived at a moment when there were serious problems with web development, and there was a need for a solution which had some of the properties that Java had. As Cedric pointed out, even in that situation Java had a number of problem areas to overcome before it became successful. Java also received a shot of enterprise legitimacy from IBM, something that Ruby has not (I think James Governor is jumping the gun on IBM's support for Ruby). I don't think we're at the point where the problems in web development are so bad that it's very difficult to get the job done. Annoying, perhaps. More complicated and expensive than necessary, perhaps. But it doesn't feel like it's so bad that the majority of people are going to switch over to a very different way of doing things. There's a rule of thumb that says that something new has to be around one order of magnitude better than the thing it's replacing. Regardless of how much I like Rails/Turbogears/whatever, I have to wonder whether that one order of magnitude is clearly there. I personally feel that it's close enough to be worth it for me and the things that I am interested in. But that's different from saying it's there for the entire market.
i would probably rather jump the gun than wait til the technology jumps the shark.
you raise a good point - one could argue that Firefox is not enterprise yet - because it is mandated in v few enterprises. but ibm's investment in Fox and integration with its other toolsets indicates it will be pushed into IBM customers.
There is more Ruby dev in IBM going on than youd' think.
Posted by James Governor at Tue Apr 11 02:29:40 2006
http://www.loudthinking.com/arc/000584.html
Posted by Karl G at Tue Apr 11 05:16:15 2006
Posted by Manuzhai at Tue Apr 11 06:54:54 2006
I think we'll know by the end of the year whether you "jumped the gun" on this. I was at IBM during the height of the Java Java Java push, and it was pretty obvious that it was happening. If you have to tell me that "there's more Ruby work going on in IBM than I'd think" (and I believe you), then I don't think we're seeing the kind of institutional commitment that help Java succeed. That's not to say that it isn't coming, just that we haven't seen it yet.
Posted by Ted Leung at Tue Apr 11 11:19:11 2006
I should have read DHH's blog more carefully -- I totally missed that.
Manuzhai,
Up until recently the PyPy folks have been very careful about performance claims on PyPy. There have been a number of high performance VM projects for Python, yet we're not using any of those VM's today. Also, I"m talking about the community as a whole, not just the subset of people working on PyPy.
Posted by Ted Leung at Tue Apr 11 11:22:31 2006
<blockquote>
There's a rule of thumb that says that something new has to be around one order of magnitude better than the thing it's replacing.
</blockquote>
That's one rule, sure, but what about the one Clayton Christensen has been advancing? He talks about disruptive technologies that are actually worse than the current technology in the primary market, but are better in a secondary market that becomes the dominant force later.
The book is The Innovator's Dilemma if you haven't read it.
Todd Proebsting toyed around with the idea of disruptive technologies in the area of programming languages in his Lightweight Languages talk few years ago. (The talk is still available as RealAudio from LL1 website, I guess.)
Posted by Jarno Virtanen at Tue Apr 11 11:33:24 2006
I'd love to join the reading group BTW.
Posted by Todd Blanchard at Tue Apr 11 19:20:09 2006
The next-generation Ruby VM work is being done under the name of YARV, not sure if you had heard of it or not. So work is being done on that front.
http://www.atdot.net/yarv/
From what I recall of the timeline, though, I'm thinking it won't be mainstream until the end of this year. There is Ruby 1.9 and Ruby 2.0 development going on. The bulk of YARV is going into 2.0, I believe. Which is also known as Ruby-Rite, I think. Its all very hard to follow, I find. :)
Posted by Todd Yocum at Thu Apr 13 18:50:08 2006
To insert a URI, just type it -- no need to write an anchor tag.
Allowable html tags are:
<a href>
, <em>
, <i>
, <b>
, <blockquote>
, <br/>
, <p>
, <code>
, <pre>
, <cite>
, <sub>
and <sup>
.You can also use some Wiki style:
URI => [uri title]
<em> => _emphasized text_
<b> => *bold text*
Ordered list => consecutive lines starting spaces and an asterisk