April 06, 2006Why Ruby on Rails won't become mainstream
Update: here is a follow-up to this article, written two years later You won't be reading any Ruby on Rails bashing in this blog post for a simple reason: I love Ruby and I love Ruby on Rails. Rails is a fantastic framework built on a wonderful language that appealed to me the very first day I started to study it. I think David did a fantastic job in two areas:
To tell the truth, the Pick Axe and Agile Web Development with Rails books are the best two technical books I have read these past years. I read quite a few technical books, but none has caught my interest and made me look forward to resuming my reading more than these two books. And to top it all, features such as Headless Applications, as illustrated in this blog post by Mike Clark, clearly show how powerful Rails is. There is no denying that Ruby on Rails is turning the Web programming world on its head. Now that this introduction is out of the way, I'd like to take some time to explain why, in spite of all its qualities, Ruby on Rails will never become mainstream. As you probably guessed, my conviction doesn't come from technical grounds. The truth is that there are a lot of forces involved in making a Web framework successful, but before I dive into those, allow me to tell a little side story. Have you ever come across Smalltalk or Lisp programmers? You know, these people who, no matter what you tell them, will always respond that "Smalltalk did that twenty years ago" or that "Nothing has been invented since Lisp". They listen to you patiently with an amused light in their eyes and when you're done talking, they will just shrug away your points and kindly recommend that you read up on a thirty-year old technology that was the last thing they ever learned and that has been dictating every single technical judgment they have offered since then. I believe that in ten years from now, people will look back at Ruby on Rails and will have the same reaction. I'm not sure what Web frameworks we will have by then, but I'm quite convinced that a lot of the current Ruby on Rails fanatics will have the same kind of attitude: "That's nice, but Ruby on Rails already did this ten years ago, and better". Interestingly, they might even be right. But by then, it won't matter because despite its technical excellence, Ruby on Rails will still be a niche technology that only experts know about. So why do I think that Ruby on Rails will never cross the chasm?
Note that I didn't say anything about poor error reporting, weak internationalization support or Active Record, which are usually the areas where Ruby on Rails is the most criticized. I'm not worried about these because they are simply a symptom of Ruby on Rails' youth. They will be fixed in time, and I don't think they will play a big role in Ruby in Rails' acceptance (or lack thereof). So there you have it. My prediction on Ruby on Rails in one, lengthy post. I apologize for the size of this article, I usually try to keep my blog entries short and to the point. I hope at least that I achieved the latter. I'll conclude on a positive note: I hope I'm wrong. I really, sincerely do. For my next work, I want to have a choice between Java and Ruby, but right now, when in doubt, even I usually end up returning to Java for my personal projects for the reasons listed above. And as you know, I love it when frameworks and languages compete for my business. But right now, I see no competition. Posted by cedric at April 6, 2006 07:42 AM Comments
First, Thanks for this post and I'd like to say: I do agree with almost all of your arguments. But ;) not on the conclusions... Well I'm not a fortune teller ;) > First of all, Ruby. > Anyone who wants to succeed in the Web arena must (...) convince programmers > Ruby on Rails itself. > Still no credible IDE. > Fanaticism > Crowd of a single mind. > Enterprise capabilities and scalability unclear. About performances see the great post of Justin Gehtlan (http://blogs.relevancellc.com/articles/2005/04/04/some-numbers-at-last) > Lack of support from Internet Providers When I can choose between java and rails, I personnaly take rails because I don't want to use my spare time on configuring hibernate mapping files and making yet an other ant file ;) I think you make some good points Cedric but Rails is still young and, as you acknowledge, has a lot going for it. Call me optimistic but fast forward to 2008 and I reckon many of the obstacles you mention, whether perceived or real, will no longer exist. Posted by: Keith Pitty at April 6, 2006 01:28 AMConcerning Lack of support from Internet Providers, free Java hosting is impossible to find...
While I don't agree with every single point it is still an excellent post, thank you. But at least with your "Crowd of a single mind" you are wrong. There is Nitro (http://www.nitrohq.com/) which is under active development and has been around about as long as RoR. It is not well known to the public right now but everyone who gets really serious about RoR will come across it sooner or later. I don't know if it ever will gain such popularity and momentum as RoR but it is an alternative with its own pros and cons. So I agree with you: There is only one well known and documented solution (RoR) but there certainly is another serious/well written one out there (there may be more I don't know of) Posted by: at April 6, 2006 01:50 AMGreat blog, with many good points, and a great piece of rhetoric. I'm currently trying to find the right term to describe your post: antiphrasis? Asteism? Apagogy? Pradox? Or maybe... Hyperchleuasme Posted by: Gabriel at April 6, 2006 02:05 AM"you might be right, but just be humble" this is where Matz succeed, and DHH fails horribly. counting down to a response post on www.loudthinking.com Posted by: Ben at April 6, 2006 02:58 AM> contains a lot of advanced idioms which will be very hard for PHP ... programmers to absorb I can't speak for VB programmers but talking with people at phpLondon, quite a few of them are interested and/or working in ruby / rails. I think the interest is there and that there are just as many people coming to ruby from a php background as from a java background. The pain point may be different - i.e. people from a php background may be looking for a MORE structured approach. Countless php job adverts specify Java as a skill requirement - frequently this has nothing to do with actually using Java on the job but more to do with working with an OO/structured approach. Ruby may hit that sweet spot. > Developers were able to do the jump from imperative to object-oriented programming, but it was a hard fight Similarly it may be a hard fight to convince people of the benefits of using rails; that doesn't mean that it is a fight that can't be won. > Crowd of a single mind There was an interesting issue raised on the RoR podcast about this and risk - i.e. Your choice is between Java (low risk) and Ruby (high risk) as a language. However, once this has been selected, you then have to make choices on the framework / ORM / templating language etc. etc. In the Java world (and also in the php world) there are a plethora of options - leaving you exposed to some high risk choices. Ruby only really has rails, leaving only a low/no risk choice once you have selected the language. > Enterprise capabilities ... unclear This is a fair point (although not necessarily in terms of scalability). It is easy to shift unintentionally from the mindset that "RoR is better 90% of the time" to "RoR is better 100% of te time". It may turn out that the 10% of cases where RoR isn't better is what the enterprise really cares about. Posted by: Roland at April 6, 2006 03:22 AMI do wonder a little at how good Ruby would be when used by large teams as there can be so much magic going on and people extending classes all over the place that its sometimes a bit hard to know what really is going on - especially if you join a project 1 year after the development finished. Don't get me wrong - I love Ruby too - and love the power, its just maybe its too powerful :). When large teams are involved - or projects which last many years- one of the most important things is how easy is it to understand what a piece of code does. When it comes to readability, sometimes more verbose code thats trivial to understand is way more useful than one or two lines of extreme-ninja cleverness with jedi mind tricks :) We spend way more time in the real world reading code, written by someone else some time ago than churning out brand new stuff quickly; while Rails rocks for the latter I'm not yet sure how good it is at the former. But competition is great; I'm hoping both Java and Ruby continue to improve and get better. Posted by: James Strachan at April 6, 2006 03:32 AMNice article, only one thing: I'm not sure why you think that in 10 years, there could be Smug-RoR-Weenies who will say "Ruby On Rails did that first". I'd say, Java and other systems had many of the features before RoR, but RoR got them right by learning from their mistakes. So, unlike the Smug-{Smalltalk|Lisp}-Weenies, old Rubyists can talk about how they got things right... Posted by: murphee at April 6, 2006 04:08 AMIt needs few million marketing dollars too. Marketing can do wonders to popularity as Microsoft will attest. Posted by: Angsuman Chakraborty at April 6, 2006 04:13 AMIt needs few million marketing dollars too. Marketing can do wonders to popularity as Microsoft will attest. Posted by: Angsuman Chakraborty at April 6, 2006 04:13 AMYou'll find an amazing count of Projects that are using RubyOnRails in the real world at http://wiki.rubyonrails.com/rails/pages/RealWorldUsage Projects you might heard of are pennyarcade.com and alistapart.com . These aren't success stories? Come on! Such a young project and so many people converting high volume sites to or are programming there start-ups with it, it's amazing. Sorry, but your research isn't as great as the blog and it's rethoric make you think it is at the first look! Posted by: Jan Prill at April 6, 2006 05:06 AMThere is only one true way. ASP.NET Everyone else, confess your sins. The Kingdom of Heaven is at hand. Posted by: Lady Godiva at April 6, 2006 06:21 AMWhile this is a good post, the real genius of it lies in the comments, which when taken as a whole, prove that rails fanboys are everything they're accused of being. A defensive, territorial, arrogant, and surprisingly narrow minded lot. A reciple for success if I've ever seen one. Posted by: Hani Suleiman at April 6, 2006 06:32 AMWhile this is a good post, the real genius of it lies in the comments, which when taken as a whole, prove that rails fanboys are everything they're accused of being. A defensive, territorial, arrogant, and surprisingly narrow minded lot. A reciple for success if I've ever seen one. Posted by: Hani Suleiman at April 6, 2006 06:33 AMThe big turn-off for me is 1) DHH is too arrogant, and 2) Rubyists are not forthcoming enough about the weaknesses of Rails (yes, it actually has weaknesses omfg!). To get them to admit these things is like pulling teeth. Nice post, but I don't agree completely. Anyone who thinks that String+Hibernate+WebWorks/Struts+J2EE is much easier to comprehend for an ordinary (corporate as you said) developer must be out of his mind. What kind of features do you expect from an IDE when you work with dynamic languages like Ruby/Python/Perl? Posted by: Kent at April 6, 2006 07:36 AMAdd WebObjects programmers to your Lisp and Smalltalk set. WebObjects and EOF have been doing what Rails does for 10 years also. Posted by: at April 6, 2006 07:56 AMI think you hit a lot right on the head, especially in "Ruby on Rails Itself." Prior to my current job, I worked at large corporate finance companies. About 10% of the developers where "architects" that determined the tools and direction of the rest of the developers. Out of the remaining 90%, the vast majority did not have any business being developers. They Of course it's not. almost all only knew one language (Java), and some were trained in the field by places like Heald and ITT, which promised unfathomable wealth and rock star status. In other words, those that truly loved the technology, loved to explore, loved to try new things, loved to code after work, were a distinct minority. Anyone like that ran into beurecracy or opposition from the majority. You really need work in a large company like that to truly understand. The pay was good, the benefits (especially retirement) were excellent, and the hours even better. For a lot of people, this makes a great formula for complacency and a horrible formula for innovation and experimentation. Sam says, "Anyone who thinks that String+Hibernate+WebWorks/Struts+J2EE is much easier to comprehend for an ordinary (corporate as you said) developer must be out of his mind." It's not that they're out of their mind. But when you've been at a large, stable company for 5+ years working in Java, going home at 5:00 pm every night to be with the kids, most people like that and don't want it to change. J2EE has been very, very good to a lot of people. There's no incentive to keep up with the rest of the IT world because Architecture is still telling them to use Java/J2EE. And why is Architecture telling us to keep this environment? Because their recommendations have made the company invest literally millions in J2EE. That, ultimately, is the hardest task. You have to convince a company with J2EE servers lined up and Websphere Application Developer at every workstation, and managers (often with no technical background and only interested in the output to make themselves look good) to abandon the known and use the unknown. The IDE and scalability issues are important, but will be solved over time. Changing the mentality of entrenched people is a whole different issue. Posted by: Shu Chow at April 6, 2006 08:06 AMI think you hit a lot right on the head, especially in "Ruby on Rails Itself." Prior to my current job, I worked at large corporate finance companies. About 10% of the developers where "architects" that determined the tools and direction of the rest of the developers. Out of the remaining 90%, the vast majority did not have any business being developers. They Of course it's not. almost all only knew one language (Java), and some were trained in the field by places like Heald and ITT, which promised unfathomable wealth and rock star status. In other words, those that truly loved the technology, loved to explore, loved to try new things, loved to code after work, were a distinct minority. Anyone like that ran into beurecracy or opposition from the majority. You really need work in a large company like that to truly understand. The pay was good, the benefits (especially retirement) were excellent, and the hours even better. For a lot of people, this makes a great formula for complacency and a horrible formula for innovation and experimentation. Sam says, "Anyone who thinks that String+Hibernate+WebWorks/Struts+J2EE is much easier to comprehend for an ordinary (corporate as you said) developer must be out of his mind." It's not that they're out of their mind. But when you've been at a large, stable company for 5+ years working in Java, going home at 5:00 pm every night to be with the kids, most people like that and don't want it to change. J2EE has been very, very good to a lot of people. There's no incentive to keep up with the rest of the IT world because Architecture is still telling them to use Java/J2EE. And why is Architecture telling us to keep this environment? Because their recommendations have made the company invest literally millions in J2EE. That, ultimately, is the hardest task. You have to convince a company with J2EE servers lined up and Websphere Application Developer at every workstation, and managers (often with no technical background and only interested in the output to make themselves look good) to abandon the known and use the unknown. The IDE and scalability issues are important, but will be solved over time. Changing the mentality of entrenched people is a whole different issue. Posted by: Shu Chow at April 6, 2006 08:06 AMI will bite, I will even risk sounding like one of the mentioned Lisp and Smalltalk developers. I have had a quick look at Ruby, and I do like it (mainly because it reminds me of Smalltalk), but I have never tried using it in anger. So the following is a real question that I have not seen answered before. What is it that Ruby has that Smalltalk doesn't? What makes Ruby an improvement on Smalltalk? Why should I program in Ruby and not Smalltalk (or Squeak)? (I do believe that Lisp programmers have the right to claim that Lisp is the best thing since sliced bread; it is truly different - infinite cosmic power in tiny little space.) Posted by: Petar Bodor at April 6, 2006 08:29 AMI completely agree with Shu Chow. So let's stop talking about technical merits. These are precise points why Ruby/Rails will never become 'enterprisish'. Thank you for the kind writeup, Cedric. I definitely agree that Ruby on Rails has a tough road ahead becoming truly mainstream. That road is always tough, for any technology. Less for technical reasons and more for cultural and marketing reasons. But nothing gets me fired up like knowing we have something valuable that lots of people haven't discovered or experienced yet. Although evangelism and rhetorics sometimes do bore. Perhaps I should just, as the guy with the God complex, widely considered to be arrogant, and once called "king of the internet", pass down some stone tablets and command people to obey. Free will is overrated. (hm) Posted by: David Heinemeier Hansson at April 6, 2006 08:53 AMLike you, I feel rails is fantastic. Also, like you, I don't think it will ever be mainstream. My reasons for thinking this are, however, a little different. Namely, I can't have a UI in rails, and use nutch as the backend as far as I know. Posted by: Hasan at April 6, 2006 10:07 AMCedric, I agree with what you are saying for the most part, but the integration argument may not be as bad as everyone thinks. With Web Services making another push with SOA architectures, ROR is positioned OK. The web services support is pretty intuitive and I have to admit it beats Java Web Services support IMO. The things that are a sore spot for me, at least from an integration viewpoint, is the lack of asynchronous processing(ie JMS), thin at best operational support (ie JMX), and deployment issues in general. And I still haven't seen a great solution for multiple application deployments without Session management problems. But like you said, the ROR community is tenacious in their defense of the framework, so I'm sure they will solve these problems over time. Posted by: Frank Bolander at April 6, 2006 10:29 AMShu Chow has hit the nail right on the head. Go into any Fortune 100 or 500 IT department and talk to the "architecture team" that set's corporate direction and see how many even know what Ruby or RoR is. It will take years of progression both at the grass roots level (there usually are small teams that are talented and tend to experiment) and at the CIO level usually because some high paid consultants or analysts (Gartner) are waving the banner. I think the grass roots is moving forward nicely, now show me how the Rails community to working the other half of the equation. -db Posted by: dsb at April 6, 2006 11:11 AMTo Jan Prill, please don't prop Penny Arcade as some exaple of Rails' scalablity. As I understand it, the app doesn't even run dynamically, they use tools written in ROR to generate static HTML, so the number of ROR users is in single digits while Apache does the heavy lifting of serving millions of HTML files. More importantly the PA crew has had trouble since switching to ROR with not being able to make updates with the tools and/or updates not being available to the viewers....to the point where Tyco made a public apology for the constants delays a week or two ago. This is not a bright shining light of Ruby scalability...and it's not really an 'enterprise' app to start with, it's a glorified blog. Posted by: adw at April 6, 2006 12:51 PMI came to much the same conclusion, but instead of posting a well reasoned argument decided to stick with charts and graphis: http://zacker.org/ruby-on-rails Hi, when reading your article, it occurred to me that all the arguments you used (maybe beside the one about complexity of RoR itself) were actually used to tell us why PHP will never be mainstream. This was back in 1998 or so, but hey! What I want to say is that only time will tell. There's no point in speculating now what's going to be mainstream then. Personally, I think ruby has some nice advantages over PHP for example and I think with the time progressing it really might break through. If it doesn't, it won't stop me using RoR though as it fits my needs in many projects. Philip Posted by: Philip Hofstetter at April 7, 2006 01:47 AM> Still no credible IDE Komodo works very well for me as Ruby IDE Posted by: mvp at April 7, 2006 01:48 AM@adw: Ok, admitted. But does that mean that rails doesn't scale? All I've said is that cedric didn't made his research homework. There are rails apps that scale. Look at the wiki page and ask people before writing that there is no proof that rails scales other than the 37signals products. It scales as well as any other technology that shares nothing. PHP scales great for yahoo. Scaling is a matter of the setup and isn't 'easy' on java either. Once again: It's amazing what DHH and the community of rails did with ror and their tools (capistrano) that address your scaling needs. Posted by: Jan Prill at April 7, 2006 02:05 AMI agree with a lot of this post. I too am learning ruby, and love the language, but it is not an easy language compared to say php. Furthermore I am worried about scalability. Finally I believe there are now other ruby frameworks being developped, no idea if they are any good. Posted by: Christian at April 7, 2006 02:10 AMFurther views on scalability: http://poocs.net/articles/2006/03/13/the-adventures-of-scaling-stage-1 Posted by: Kartik Agaram at April 7, 2006 02:10 AMFurther views on scalability: http://poocs.net/articles/2006/03/13/the-adventures-of-scaling-stage-1 Posted by: Kartik Agaram at April 7, 2006 02:10 AMI'm not sure it matters if Rails hits the mainstream. Its hit "mainstream enough" that most web developers have at least heard of it by now. If fortune 500s aren't using or exploring new things, its because they're completely entrenched. Rails is perfect for quickly setting up satellite applications around monolithic enterprise apps through web services. If the architects aren't looking at ways to speed things up, they will start losing ground in their respective marketplaces to quicker, dryer methods like Rails. Posted by: Pete at April 7, 2006 02:23 AMReading the comments section I can see the real reason why Ruby will never catch on you people are worse then Mormons going door to door! language != application Posted by: Joe at April 7, 2006 03:00 AMI haven't read all your post yet, but my first thought when reading the title was : "do you remember what your first prediction about the ipod was ?" :-) Posted by: Guillaume Laurent at April 7, 2006 03:15 AMIf you check out Tiobe Software's monthly programming language popularity index you'll see that it has shot up 14 places in the past year and is now in the top 20. http://www.tiobe.com/index.htm?tiobe_index Posted by: James McKay at April 7, 2006 03:17 AMThere is no "One True Way" as far as programming (web or not) is concerned. One True Way only exists in Star Wars, and even there there are 2 avenues to that way (dark/light). Those who claim "one true way" are extreme fanatics and we all see where extreme fanaticism is taking the world right now. Every project has potentialy a platform and language that would fit it more than others, and every project should weight its requirements and try to fit the platform around them. It might be Lisp, C, Java, PHP, Python, Rubi and what have you. I'm currently reading The Art of Unix Programming, by Eric Raymond and its a damn good read and somewhat related to this argument. What do you use an IDE for? Do you write code in it, test the code out, and move it to a Bank of Good Code? That's what irb can do; the read-eval-print loop in Ruby/Python/PLT Scheme/etc are remarkably helpful for development. Posted by: lee at April 7, 2006 03:39 AMWhat do you use an IDE for? Do you write code in it, test the code out, and move it to a Bank of Good Code? That's what irb can do; the read-eval-print loop in Ruby/Python/PLT Scheme/etc are remarkably helpful for development. Posted by: lee at April 7, 2006 03:39 AMCedric, Great post. I'm an EXTREMELY recent convert to Ruby and Rails so perhaps I can provide a fresh perspective on this. I have posted a rebuttal of sorts on my blog http://livingincode.blogspot.com/2006/04/rails-wont-become-mainstream.html -- Apple isn't really mainstream either. I think it's more a positive thing not being mainstream but solving problem for a niche. That keeps up quality! F1 cars are not on the road, they still win races ;) Apples are not in every bedroom, still they're used to cut movies or produce million dollar records. Rails is not used for the guestbook on your SharedHosting, but.... I HOPE it will never become mainstream. Posted by: Andreas at April 7, 2006 04:50 AMInteresting post! Posted by: Robert Lidberg at April 7, 2006 04:50 AMI can't see what an "IDE" could do that TextMate's[1] ruby bundle can't, and I'm sure there are alternatives on other platforms. Being a mac user, I fail to understand the need to be mainstream to be successful. Ruby and Rails are successful. [1]http://macromates.com Posted by: FredB at April 7, 2006 04:54 AMThis is a great article and you make mostly good points but personally I hope you are wrong. I hope the up-take is just because it's relatively new compared to other platforms. I am a recent Ruby on Rails switcher, came from the PHP/Ajax/VB/etc... realm. Still do most of my work in there but have been greatly testing out Rails and working on my skills. The Agile book you mentioned is what I am using and it's amazing stuff. What IDE do you use Cedric (if any)? I use Notepad++ right now, nothing special but if you know of something better that would be awesome. Posted by: REETS at April 7, 2006 05:05 AMCrowd of a single mind Many things drew me to Rails and this was one of the major reasons. I try to use open source software when I can to solve problems and the number one issue that I find is that most of the projects never come close to being feature complete. I'm always waiting for a feature in the next release or two releases from now. I think that a lot of this is due to the lack of focus. Linux on the desktop is a great example of this. Gnome and KDE each have features that the others need, but we can't get together and have one great application. The Java web frameworks suffer from this as well and can make it very important to choose the right solution for your project. If the Rails community can continue to innovate and remain focused on it goals, it will continue to grow. Dividing the limited resources of the open source community only hurts its adoption. -- Rick Russell I always had the same view of Emacs until I started looking into it more recently. I'm just beginning to learn it but it certainly has code completion and source control integration, and I think it has some of the other features you mentioned for some languages. And new versions are still being released. As for rails, well, I'm learning things even more obscure and powerful (eg. Seaside), and I don't care if big corporations never use them - that gives us little guys a chance to compete ;) Posted by: dennis at April 7, 2006 05:18 AMI've only been playing with RoR for a few months now so I am a fairly new convert. However, I must admit I will never go back to PHP unless I can't help it. It will simply take some time. I think most people will agree that RoR is still in development. The community is still growing, and there is many RoR apps out there but nothing quite mainstream (I know basecamp etc, but after all that is made by David, and he is somewhat biased). I imagine if Google were to use it on one of their betas people would notice. And I can almost gaurantee you that somebody over in Mountain View is looking at it if not already developing it. A few good detailed case studies and development of some high traffic sites will slowly turn heads and convince skeptics that RoR can handle enterprise level traffic. And even if it is proven it can't there is certainly enough of a community to work that out. I think you might be confusing enthusiasm for fanaticism. And I have to admit it is kind of hard not to be ethusiastic over RoR. It does a lot of cool stuff really fast. And "magic" as you state is fun to show off to your buddies. I know for myself that I don't think RoR will ever be the cure all solution for everyone. There are entirely too many people sucking on the Microsoft breast to ever consider open source stuff like this. PHP and J2EE have too much of a following and that will continue to go on if nothing else but legacy support or the pain of converting everything to a new language. I certainly think RoR is hot stuff but I don't think it will ever grab more than 20-30% of web development. I think it will be a modest goal if even 5% of web traffic is hitting RoR sites. And I think it could happen by the end of the year. Posted by: ai42 at April 7, 2006 05:32 AMI've only been playing with RoR for a few months now so I am a fairly new convert. However, I must admit I will never go back to PHP unless I can't help it. It will simply take some time. I think most people will agree that RoR is still in development. The community is still growing, and there is many RoR apps out there but nothing quite mainstream (I know basecamp etc, but after all that is made by David, and he is somewhat biased). I imagine if Google were to use it on one of their betas people would notice. And I can almost gaurantee you that somebody over in Mountain View is looking at it if not already developing it. A few good detailed case studies and development of some high traffic sites will slowly turn heads and convince skeptics that RoR can handle enterprise level traffic. And even if it is proven it can't there is certainly enough of a community to work that out. I think you might be confusing enthusiasm for fanaticism. And I have to admit it is kind of hard not to be ethusiastic over RoR. It does a lot of cool stuff really fast. And "magic" as you state is fun to show off to your buddies. I know for myself that I don't think RoR will ever be the cure all solution for everyone. There are entirely too many people sucking on the Microsoft breast to ever consider open source stuff like this. PHP and J2EE have too much of a following and that will continue to go on if nothing else but legacy support or the pain of converting everything to a new language. I certainly think RoR is hot stuff but I don't think it will ever grab more than 20-30% of web development. I think it will be a modest goal if even 5% of web traffic is hitting RoR sites. And I think it could happen by the end of the year. Posted by: ai42 at April 7, 2006 05:33 AMThe IDE argument is not convincing. For example most people are using eclipse, because it helps you write all the java boilerplate code. This is just not the case with ruby. Graphical IDEs are easy to learn, but nothing beats the productivity of Emacs, which is in fact an IDE. Writing some elisp code is so much easier to start with as to write an IDE plugin. Emacs supports a wide range of development tools, an IDE just cannot compete with it. Maybe a ruby class browser is missing, but using outline mode is much faster than switching to mouse all the time. > Code completion or navigation, debugging, refactoring, project management, source control integration, etc... I do all these things all the time in Emacs ;) Posted by: Matthias Georgi at April 7, 2006 05:40 AMThe IDE argument is not convincing. For example most people are using eclipse, because it helps you write all the java boilerplate code. This is just not the case with ruby. Graphical IDEs are easy to learn, but nothing beats the productivity of Emacs, which is in fact an IDE. Writing some elisp code is so much easier to start with as to write an IDE plugin. Emacs supports a wide range of development tools, an IDE just cannot compete with it. Maybe a ruby class browser is missing, but using outline mode is much faster than switching to mouse all the time. > Code completion or navigation, debugging, refactoring, project management, source control integration, etc... I do all these things all the time in Emacs ;) Posted by: Matthias Georgi at April 7, 2006 05:40 AMuhh the #1 reason: It's impossibly difficult to setup under Apache. I've read lots of howtos and I still can't get it to work with fastcgi or mod_fcgid or just normally. So you're telling me I have to install lighty ? Install this .. install that, I've had enough of jumping through hoops. Give me something that just works damnit!!! Posted by: t35t0r at April 7, 2006 05:43 AMWonderful article. I'm not an engineer by trade but more a front end guy that enjoys delving into the back end when I have time (and it makes me a better front end guy too). And I really don't like Java, so I was really excited when Ruby and RoR arrived. I bought the books and have attempted to learn this stuff on my own like everything else. I got about so far and then ran into some pretty hefty concepts or idioms as you say. It seems like you get to a certain point, and then you are looking up a *really* steep hill. And for all of that - I see how great it is and I want to continue learning it. I have a personal project I want to use it on, and I wanted to add a site to my existing web account, but they don't have Ruby and RoR supported. I don't really want to branch out into a new host. Here at our enterprise, Java is SO entrenched in things, they are not open to really even discussing anything else. How can that cycle be broken? I don't know. I think these are real problems to face up to. I hope Ruby succeeds too - but I also see these issues as hills that may not be able to be scaled. Let's hope otherwise! Posted by: Tom at April 7, 2006 05:58 AMWonderful article. I'm not an engineer by trade but more a front end guy that enjoys delving into the back end when I have time (and it makes me a better front end guy too). And I really don't like Java, so I was really excited when Ruby and RoR arrived. I bought the books and have attempted to learn this stuff on my own like everything else. I got about so far and then ran into some pretty hefty concepts or idioms as you say. It seems like you get to a certain point, and then you are looking up a *really* steep hill. And for all of that - I see how great it is and I want to continue learning it. I have a personal project I want to use it on, and I wanted to add a site to my existing web account, but they don't have Ruby and RoR supported. I don't really want to branch out into a new host. Here at our enterprise, Java is SO entrenched in things, they are not open to really even discussing anything else. How can that cycle be broken? I don't know. I think these are real problems to face up to. I hope Ruby succeeds too - but I also see these issues as hills that may not be able to be scaled. Let's hope otherwise! Posted by: Tom at April 7, 2006 05:59 AMI agree with all of your points; as much as I'd love to see RoR succeed and take over the world, it's not likely to happen in its current state. One thing that IMHO stops widespread adoption more than any other factor is the lack of a full-blown reference architecture/application, PetStore style. Look at the latest distribution of Spring - you can learn a ton from code in the samples/* directory, clean real world implementations of all the best practices in Java EE. Where is the Ruby equivalent? Fact is, RoR might be great for writing blog engines (as if we don't have enough already), but why oh why isn't there a standard security model? Why must I spend hours downloading weird plugins & code generators to do something that a Java web container does out of the box? Posted by: kay at April 7, 2006 05:59 AMJan Prill : I didn't say Ruby or Rails didn't scale, I called you on using PA as an example of Ruby in a high traffic environment. PA is a high traffic website, but the ROR is not invoked by 99% of the page hits. As such it's pretty meaningless to the discussion at hand. If there are better example, then bring them forward in the discussion - PA isn't one. Posted by: adw at April 7, 2006 06:22 AMwow, hani and david in the same comment box. i feel obligated to make a showing. Posted by: Ivan at April 7, 2006 06:25 AMThis is a very interesting development that I hadn't noticed a couple of months ago: Go Daddy! is now supporting Ruby and Rails with all but their lowest tier LInux hosting plans. http://www.theregister.co.uk/2006/04/07/devil_rabbit/ Posted by: marshall at April 7, 2006 06:25 AM"Admittedly, PHP and Visual Basic are ch*ap targets (we're talking about languages that don't even have name spaces!), but like it or not, they are the Web standard." 1 - VB.Net, as with all .Net languages, has namespaces 2 - "Visual Basic" is not used for web development, you would either use VBScript (for ASP), which is a scripting language, or VB.Net which is a much more powerful beast Posted by: Patrick at April 7, 2006 06:27 AMDoes it actually matter? Posted by: Danilo Medeiros at April 7, 2006 06:27 AMhi, nice post, but ... > First of all, Ruby. I don't know if this is true. In fact the most php-developers (I know) don't like PHP at all. If there a chance to switch to a advanced oo language they would do it at once! (And JAVA has this kind of "enterprise-thinking" most of em don't like) greetz Posted by: orbi at April 7, 2006 06:36 AM> Sometimes, too much magic is too much magic, and it can definitely be the case that the flow of code is too direct or too clever to be understandable by regular developers. Soo you think RoR is too clever to understandable. Now tell your "regular developers" to start a project from stratch using Struts and Hibernate or Spring ! Posted by: Dunand at April 7, 2006 06:43 AMGood things are almost never mainstream. Posted by: Mark at April 7, 2006 06:56 AMI'm going to second that comment on RadRails. I just recently started using it and I LOVE it! A great feature is the ability to press CTRL-SHIFT-V and switch back and forth between the controller and the view. This feature makes it worthwhile alone! I also integrated it last night with my svn repository and so far it's working great. However, the one feature that I HATE in IDE's, but is one reason that I think Ruby won't make it in the enterprise is that it lacks the drag-n-drop capabilities of Visual Studio .NET. Personally, I would much rather code my own html which is why I am loving Rails. But I know many so-called 'web developers' at my work that wouldn't have a clue how to write all their own html. Posted by: Davy at April 7, 2006 06:56 AMI'm going to second that comment on RadRails. I just recently started using it and I LOVE it! A great feature is the ability to press CTRL-SHIFT-V and switch back and forth between the controller and the view. This feature makes it worthwhile alone! I also integrated it last night with my svn repository and so far it's working great. However, the one feature that I HATE in IDE's, but is one reason that I think Ruby won't make it in the enterprise is that it lacks the drag-n-drop capabilities of Visual Studio .NET. Personally, I would much rather code my own html which is why I am loving Rails. But I know many so-called 'web developers' at my work that wouldn't have a clue how to write all their own html. Posted by: Davy at April 7, 2006 06:57 AM> But it's a complex language that contains a Yes, an interesting read but I did take offense to this statement. I am a php developer and don't use php because I am dumb and can't 'absorb' Ruby. We use it because it works in our app. Posted by: Eddie Peloke at April 7, 2006 07:06 AMI am curious what framework you are using for your Java development. I've been using the Fusebox framework since 2001 and it has served me well. I started out using it when I was programming cold fusion and now while programming PHP. I'm finding that while it was a good solution in the past the framework is lacking from a progress and overall community strength point of view these days. I've been looking for a new pasture to program for the past several months and so far it has been an uphill battle. I'm trying to balance the advantage of learning a new framework, a new language, and finding features that simply make me more productive than I have been in the past. Of course on top of that I plan on scaling my company to several programmers in the future so I want to pick one that will be popular amongst the masses. In my search I've found the following to be the most interesting. Turbo Gears (Python) - http://www.turbogears.org/ And of course Ruby On Rails. In general my requirements are the following. 1. Rapid Development Of course if anyone else has any opinion of what the best framework would be based on these requirements then please let me know. : Posted by: Jeff at April 7, 2006 07:09 AMI think he you are way off the mark. RubyOnRails is *already* becoming more and more mainstream and I think you'll be seing LOADS of Rails jobs in a few years. Its attracting people from both sides of the spectrum, the smaller traditional PHP developers and enterprisey Java/.NET people. On Ruby: "But it's a complex language that contains a lot of advanced idioms which will be very hard for PHP and Visual Basic programmers to absorb." Ruby is certainly not a complex language. You can do some complicated things with it but other than the mindset shift when it comes to certain Ruby syntax elements and idioms its a clean, easy to write language that isn't particularly hard, if you are even a half-decent developer. I can see it being strange for people coming from languages with more a C-style syntax like Java or PHP but its just a case of becoming used to it. And then there is the OO nature of Ruby - this should be no problem to Java developers and should only pose a problem to amateur PHP developers who have never touched OOP. To be honest, if a programmer looks at Ruby and thinks "sheesh, thats too hard for me" they probably aren't a very good programmer anyway. Who cares? On Rails: Yes, Rails can do some advanced things. So can PHP. Advanced/talented users will take advantage of these advanced things, amateurs wont. You seem to be having a hard time separating the amateur PHP hackers with little talent (who aren't going to go very far anyway) and the serious developers who already use things like OO, design patterns and unit testing etc. No credible IDE: pah. You don't need an IDE to be productive, especially when working with a dynamic language like Ruby. Textmate rules, I'd use that any day over any bloated Eclipse-style solution (but if that is your thing, RadRails is developing at quite a fast pace). "This is 2006, not 1996. The programs we are writing and the problems we are solving every day are orders of magnitude harder than back then, and our tools need to keep up with that need. Emacs is a fine text editor, but it's no longer adequate for modern development.[" Such utter nonsense. Text editors like Emacs, Vim, Textmate or whatever your preference can be very powerful and combined with a bit of command line proficiency can be a powerful and productive development environment. I certainly wouldn't hire anybody who relied on an IDE to be productive - its a crutch, nothing more. Enterprise and scalability - the old chestnut that has been shot down time and time again. Rails scales - its already scaling for quite a few large, high traffic websites. People who spend all their time wondering about "can it scale" can kiss my arse. As for enterprise - well clearly there are going to be things Rails or Ruby aren't suited to. Thats a given. Use the appropriate tool for the job - but for probably 80-90% of web-based apps Rails does the job and does it well. What a load of dross. Posted by: Luke Redpath at April 7, 2006 07:11 AM"This is 2006, not 1996. The programs we are writing and the problems we are solving every day are orders of magnitude harder than back then, and our tools need to keep up with that need. Emacs is a fine text editor, but it's no longer adequate for modern development." I call bullshit. The problems really aren't any harder. We only think they are because they're different. Do you really think the work that the Sabre folks have done is easier than Basecamp? sanj Was Java dead in 96? Its still a new language, sorry if the devs arent making it perfect for you on day 1 or year 1. Posted by: John at April 7, 2006 07:30 AMNot interested. DHH is an arrogant prick (god of the Internet my ass). Posted by: blah at April 7, 2006 07:34 AMradrails is not an eclipse plugin it is a branch of the code. Posted by: at April 7, 2006 07:46 AM"Ruby on Rails will never become mainstream" Heh! So, what? I didn't become a professional programmer to be part of "the mainstream". (OK, I answer this myself below (^_^), but I just don't weight this factor that heavily.) "they will just shrug away your points and kindly recommend that you read up on a thirty-year old technology that was the last thing they ever learned and that has been dictating every single technical judgment they have offered since then." I grew up on IDEs & C (& eventually, C++). I've kept up with the times: Perl, Java, Ruby, EcmaScript, &c. It's only been recently that I've really gotten into Lisp/Scheme/Smalltalk/&c. Yet, I still see little reason to use the newer languages instead of modern versions of the old ones. Scheme is malleable enough to do anything the newcomers can do just as well. Sure, there's the benefits of a larger community that can be very important, but it doesn't change the fact that most of these new languages aren't really providing much new while leaving out much of what came before. "Code completion or navigation, debugging, refactoring, project management, source control integration, etc..." I've used IDEs, & I've used sets of individual tools that work well together. Both can provide the same features. 6 one, 1/2 a dozen the other. (Although I *could* go into the reasons why I've come to prefer the latter.) Posted by: Robert Fisher at April 7, 2006 07:47 AMRuby on Rails lacks an enterprise-quality & scalable application server, and an enterprise-quality CMS. Compare and contrast with Python/Zope/Plone. Posted by: Tom at April 7, 2006 07:48 AMScrewdrivers suck! Hammers rule! Screwdrivers will never be the right tool for any job. Hammers are the best and always will be the best, no matter what the situation. Posted by: at April 7, 2006 07:51 AMScrewdrivers are *clearly* better than hammers you old "enterprise" fool. HAH! who the hell uses hammers anymore! LOL. They're archaic and complicated! Very old school, very primitive. They can't even SCREW! Posted by: Ivan at April 7, 2006 08:02 AMI don't really see how an "enterprise-level CMS" is a Rails problem. Let somebody develop one, it has nothing to do with Rails, and theres more to web apps than CMS systems (thank god!). Posted by: Luke Redpath at April 7, 2006 08:02 AMNice article, but I was surprised that you didn't mention Ruby's poor Unicode support as an issue. For me this is a showstopper, which is unfortunate because I do like Ruby as a language and Rails as a framework. For now I'm sticking with Python, which has good Unicode capabilities and some promising frameworks such as Rails FAILS because the framework is too controlling and too low level for the web. What we need now are AJAX widgets which can be designed the same way we design widgets in Java and G T K. Java people are already doing this, making apps which have both swing and AJAX web GUIs using exactly the same code. All they need to do is deploy, it is write once and produce multiple GUIs. Rails developers don't believe in this at all. I know, I converse with them. Thus they have doomed Rails to a toy rather then a powerful tool like tapestry for java. BTW your utterly retarded blog wouldn't let me use the string G T K Posted by: steamengine at April 7, 2006 08:07 AM"I believe that in ten years from now, people will look back at Ruby on Rails and will have the same reaction. I'm not sure what Web frameworks we will have by then, but I'm quite convinced that a lot of the current Ruby on Rails fanatics will have the same kind of attitude: 'That's nice, but Ruby on Rails already did this ten years ago, and better'." What makes you think that people aren't already saying that about Rails? RoR is inordinately appealing to people who have never used a dynamic language before. But most people who've been doing web development for a long time have used and/or created similar (often proprietary, sadly) frameworks using <insert dynamic language here> long before Rails was a twinkle in anyone's eyes. RoR is significant because of its notoriety, not its technology or design. Posted by: John at April 7, 2006 08:08 AMCan Ruby/Ruby on rails do windows authentication? For intranet type applications where you want to automatically know who is requesting the page? Posted by: Hydrozen at April 7, 2006 08:19 AMHydrozen, yes. See http://wiki.rubyonrails.com/rails/pages/WindowsDomainAuthentication Posted by: David Heinemeier Hansson at April 7, 2006 08:38 AMOpinions aside, this is just the sort of dialog needed by the Rails community to keep it from falling into technically advanced obscurity. On a side note, while web application frameworks have become far better, and inexpensive, than before, the methods for documenting the design of a web application (i.e. boxes and arrows) is still dismally immature. Solving the web application design issue is the real "killer application" of the next generation of web frameworks regardless of what the technical platform is. There is another strong Ruby Web Framework: Nitro (www.nitrohq.com). You can find a lot of innovative features in this project, so install it, go through the examples and have fun. Oooh there are some videos too: I think, and hope, this is a self-denying prophecy. Posted by: Ansel at April 7, 2006 10:01 AMWow, thanks David. I didn't expect an answer from the creator himself! Posted by: hydrozen at April 7, 2006 10:05 AMHmm... Several of your points revolved around how Ruby and Rails are too advanced for most people. I'm not sure what you're trying to do by pointing that out other than instill defeatist feelings. Why not encourage people to push their boundaries? Scary, yes, but guess what: mainstream is *never* the best, and there's no reason not to keep pushing things forward. Afterall, why do you get up every day? Just to get by, sure, but is that enough? I sure hope not. Speaking of mediocrity, the "no IDE" argument, even with the word "credible" jammed in their, is FUDing of the shoddiest variety. If the people using an editor like Textmate, irb, all the awesome Rails scripts like breakpointer and console, etc. wanted to, they could call that collection of tools and IDE. But what's the point? It's just another bullshit term used to market something that already existed without a name. As for fanatacism... this is a general human problem and it is unecessary to tie it to something this specific. Zealots are assholes no matter what the topic. Ignore them and do your thing. End of story. On that note, I appreciate DHH's passion and what some call a lack of humility... it's refreshing in today's world, particularly software development where so many are stodgy and surprisingly conservative for a group using such creatively free and expressive technologies that come in a million different colors, shapes and sizes. I agree he can be abrasive and confrontational, but again... people... who isn't at times? Are you gonna let that bother you or judge the issue on its merits? Posted by: Seth Thomas Rasmussen at April 7, 2006 10:15 AMCedric's got a point. I think the thing that's helped Perl and Python is that they're used for other scripting tasks, too. You get a double kick if you can use a language for OS scripting, application development, and web development, too. Yeah, I know Ruby can be used for those things, too... but it ain't. By the time it is, the Perl and Python communities will have developed a Rails like paradigm. Sadly, most businesses view open source products as too risky. That limits the growth of Ruby, further. ASP, .net, the VB's ... they are just going to grow bigger... it's a safe management choice. Ruby will have to grow at a cost to Perl, PHP, and Python. I don't know who said it, but Ruby's growth depends on a big glamorous, risk-taking, company like Google or Lucas Film adopting it. And, that takes time that Ruby doesn't have. Posted by: BoPeaslee at April 7, 2006 10:22 AM----- >8 ----- (I'm assuming you're talking about Web programs.) I don't see that being the case at all. Can you explain how a transaction in your average current Web app is fundamentally more complicated than one in a 10 year old shopping cart program? You either pull data from a data store (RMDBS, record manager, flat file, session, whatever) and show it to the user or take data from the user, validate it, and stick it in the data store. Some Web applications do some actual work themselves, but the vast majority don't, and there were Web applications doing complex things back then. In fact, I'd argue that it's *less* complicated now because we have a lot more and better libraries than we did then and they're much easier to get working. We've got easy access to pre-compiled RDBMSs, don't have to deal with record managers anymore, we've got templating libraries, database connection pooling, parsers, generators, and strippers for all types of formats, etc. that you rolled your own, went without, or paid heaps for 10 years ago. We had cgic and cgi-lib.pl and were on our own for a lot of the rest. We're doing pretty much the same work now that we were then and have access to better tools. I have no axe to grind with RoR one way or the other, but it's more complex because you choose to use complex frameworks that impose their own overhead instead of just using the APIs that you need. Just because you can use a framework doesn't mean you should. It doesn't mean you shouldn't, either, but it is worth thinking about.
Rails is making its way into the enterprise. I used to work for a very large software company, and I noticed something interesting. The respected programmers -- the ones everyone goes to for help, and get alot of say in design decisions -- are checking out rails in their free time and starting to experiment with it. Compared to J2EE, rails is easy and elegant. IDE issues will be resolved over time. I do agree that some of the stuff that rails does for you transparently makes it harder to understand, but overall, I think it is much simpler than what is out there now. Posted by: rails fan at April 7, 2006 10:24 AMWhen will RoR support Unicode? For a developer of commercial apps, that is the question. Posted by: roy at April 7, 2006 10:25 AMGreat Article. Regardless of the ability of Rails to become mainstream/enterprise, it is a great time to be a programmer. It took a long time for the mainstream business apps to move from C to higher level abstractions like Java. I think the popularity of python and ruby (through Rails) are evidence of the desire of developers to move to the abstraction and flexibility even higher. Once this becomes commonplace, there will most likely be an abudance of interesting time-saving frameworks to choose from. We just have to be patient :) Posted by: Zachary Pinter at April 7, 2006 10:25 AMOne thing I do agree with is about having an advanced editor. Things like code completion and refactoring would be great to have with Ruby. I've been spoiled by Eclipse and now if I want to rename a Ruby method going back to using grep, or even using the global search and replace in TextMate is less than optimal. What makes it even more important (and difficult?) to have these features is the dynamic nature of Ruby. Screw something up, and you might not know for an hour until you do something that triggers compilation of that segments of code. (I know, I can hear DHH saying "Tests, grasshopper, you must write tests!"). While this is true, tests aren't a substitute for a modern IDE. Posted by: Elan Feingold at April 7, 2006 10:25 AMNo IDE? *looks over at other monitor, sees Rails project inside of Eclipse* I don't know about you, but my IDE is based on the same framework as the Java industry standard: Eclipse. RadRails is a plugin for Eclipse, which means you also get the wonderful source control features available for Eclipse as well. As far as refactoring goes, refactoring is far simpler to do in dynamic languages (and the Rails project structure helps out quite a bit), so I really haven't had a problem with the lack of Java-equivalent refactoring tools. (And yes, it is available in plugin form. Guess what I'm using right now? They also have a standalone version.) steamengine: Adding that capacity to Rails would be extremely simple. First, come up with a decent DSL for working with GUIs (probably borrowing a page from wxRuby). Second, write the glue code between that and whatever AJAX widget library you find appealing. Three, package it as a plugin for ActionView. Four, have a beer. tom: Right now the application server for Rails is Lighty, but the Mongrel project is looking *very* cool, and may eventually resolve the whole "Apache hates FastCGI" problem (which is indeed a problem). It's a super-quick Ruby/C web server, designed for hosting single applications. And Unicode... yeah, Unicode's a problem. Matz is on it, so hopefully we'll see this resolved in Ruby 2.0. Posted by: Coda Hale at April 7, 2006 10:30 AMHave you ever come across a programmer who's all excited about this new language X, and you tell him that Lisp did that thrity years ago, and that they should go read about it. But they just listen to you impatiently and then never actually bother to read about Lisp? I was that impatient programmer myself, and I like Ruby too. I've only used lisp for the last two years, after I eventually decided to go and actually learn about it. Now I agree with those old fart programmers, Lisp has it over most other languages. Posted by: Peter at April 7, 2006 10:32 AM"...J2EE has been very, very good to a lot of people. There's no incentive to keep up with the rest of the IT world because Architecture is still telling them to use Java/J2EE" Funny. About 10 years ago, IT shops didn't want to switch over from their comforable C++ lives to a new open source development platform called Java. I'm fairly sure that RoR, and other similar MVC frameworks, will succeeed. It's only matter of time. And after that, it is only a matter of time until some other disruptive technology replaces RoR. Evolution is inevitable. Posted by: at April 7, 2006 10:42 AMRadRails is all well and fine -- and I used it a few months ago -- but last time I used it, at least, its Ruby support was a far cry from the Java support. If I have a model called Beer, I want to be able to do: beer = Beer.new and get a popup with all the field/members and types (yes, it would have to go to the DB). I want content assist on the whole Rails UI with documentation (just like with Java). I want rich refactoring tools like Java Eclipse has. Last I checked, RadRails was quite nice, but lacked all these things. Posted by: Elan Feingold at April 7, 2006 10:42 AMRadRails is all well and fine -- and I used it a few months ago -- but last time I used it, at least, its Ruby support was a far cry from the Java support. If I have a model called Beer, I want to be able to do: beer = Beer.new and get a popup with all the field/members and types (yes, it would have to go to the DB). I want content assist on the whole Rails UI with documentation (just like with Java). I want rich refactoring tools like Java Eclipse has. Last I checked, RadRails was quite nice, but lacked all these things. Posted by: Elan Feingold at April 7, 2006 10:42 AMI was a (quite bad) amateur php programmer. The ease of use and rush of excitement I got when discovering Rails turned me into a professional. Ruby's syntax may be "advanced" from a technical perspective, but Rails' use of domain specific language principles made it so that even when I was just starting out I was able to read and understand what was happening in a Rails app far better than I even could in a php project (even of my own making). Rails also makes it easier to do comprehensive testing than not to. After a year messing around in php, the term had never even entered my lexicon. Rails makes me a better programmer than I would ever have become in php. I don't know about a lot of the "enterprise" issues you guys are talking about here, but I do know that there are about a zillion people out there who are either independent php contractors or engaged amateurs who want to do make a dynamic website for some particular real world use. These people make most of the websites in the world and Rails is a quantum leap in both ease-of-use and productivity for them. And, even further, I think Rails will bring in a lot of new people to dynamic web programming who are currently not doing it at all. When I got interested in it and first started with php, I found it incredibly depressing. It took an incredibly long time for me to accomplish any of the things I set out to do. Compare that to the famous Rails blog video. Posted by: Greg at April 7, 2006 11:10 AMI agree with everything except your comments about how hard it would be for PHP programmers to wrap their brains around Ruby. I don't understand why you take namespaces to be some amazingly complex concept? I'm just a lowly PHP (and java mind you) developer, but I find namespaces (and pretty much all OOP) to be a no-brainer: it all just "makes sense." And this is from a guy who had to make the jump from (procedural|functional|imperical) programming to OOP. My only complaint - seemed like a low blow. Other than that, interesting article. I won't jump on the Ruby bandwagon quite yet. I'd like to see a little more mainstream acceptance. When I can find even one Ruby programming job for every 20 PHP jobs - I'd consider it a language worth learning. Until then its a toy, relegated to the uber geeks who'd rather spend time picking up a new language than really mastering the one they were already using. Posted by: jon at April 7, 2006 11:17 AM"rails fan" Yes we are, doesn't mean we're anywhere near doing big new projects or converting large code bases of existing code to it. I'd like to point of that Cedric makes great points, and one that gets my attention is the "fanaticism" one. You see this with every language, but with RoR it's reaching absurd levels, and I really hope for the sake of this technology that people who want to promote are aware that many are coming off like that. Posted by: Augusto at April 7, 2006 11:19 AMIf I disagree will I be labeled a fanatic? ;-) First off: Yes, Ruby has lots of advanced features that your average VB, PHP programmer won't understand (initially) - features like closures, continuations, metaprogramming abilities - however, Ruby is quite approachable for newbies. You can certainly learn a enough Ruby without getting into those advanced areas to get your job done. Later on as the newby progresses they get curious and learn the more advanced features (though one could argue that continuations need only be used by about 1% of Ruby developers - the other 99% can get by fine without ever delving into them). You say that Rails is the only Ruby-based web programming framework in town, however that is not true, there's also Nitro which takes a different philosophical approach. Yet even if Rails were the only game in town, it is a good game and in fact there is some evidence to suggest that the lack of choices in the Ruby Web programming space (and the fact that Rails is quite a good framework)is actually helping to some extent - it allows people to focus on Rails and the Rails ecosystem and perhaps it's less confusing for newbies. (but again, there is Nitro which isn't known nearly as much as Rails, but it's worth a look.) Posted by: phil at April 7, 2006 11:38 AMnamespaces are a very basic concept. Way to take a low blow and alienate 50-70% of your potential audience. Other than that the biggest reason why Ruby on Rais won't gain marketshare is that it is immature compared to other technologies (like PHP), and other technologies have corporate backing (like PHP + Zend) Posted by: everphilski at April 7, 2006 11:47 AMNow I wonder, how does this count: What I find amusing is the people posting here stating what jerks all of those #$%^& ruby fanatics are. Seems like a bad case of pot and kettle syndrome here (I am particularly looking at you, Hani). Posted by: at April 7, 2006 12:28 PMRails not mainstream? I guess if you define mainstream as enterprise penetration, maybe not. But consider the following: * The Agile book is still in the top few hundred of all books at Amazon, almost a year after its release. That's what I'd call developer mindshare! And IMO that's more relevant than whatever's going on in the mind of Mr. Pointy-Hair at Corporation X. Posted by: tj at April 7, 2006 12:49 PMWell, I'm interested in how valid your comments are for Catalyst (http://catalyst.perl.org) - a perl framework that borrows from RoR, and other places. In my limited understanding it's a lot more flexible than RoR and so might have "enterprise features" that RoR lacks. Posted by: kd at April 7, 2006 02:13 PMHey bub, Smalltalkers and Lispers are allowed to smug, because they're right, and more importantly, they almost always know more java/csharp than the java/chsharp guy they're being smug too. If you think you know more than them, you're woefully ignorant, they never stopped learning, they just see how small and inadequate "popular" languages are in comparison. They're smug because you aren't making technical points, you're just blabbing and embarrasing yourself by thinking you are. Posted by: Anon at April 7, 2006 03:38 PMHey bub, Smalltalkers and Lispers are allowed to smug, because they're right, and more importantly, they almost always know more java/csharp than the java/chsharp guy they're being smug too. If you think you know more than them, you're woefully ignorant, they never stopped learning, they just see how small and inadequate "popular" languages are in comparison. They're smug because you aren't making technical points, you're just blabbing and embarrasing yourself by thinking you are. Posted by: Anon at April 7, 2006 03:39 PMCertainly an interesting writeup, but I think the problem may be the opposite of what you report. RoR maybe its own enemy by becoming too popular too quickly and not having the proper marketing and project management muscle behind it like Java did, so its going mainstream and having too many growing pains because the product was not designed for the enterprise. If you look at the history, it was designed for a single project and was extracted out of that. In RoR, deploying multiple apps (written in RoR) is hair-y. Integrating two or three different apps is hair-y. Scaling and architecture solutions are simple-minded (just throw more hardware at it .. or something). Take a look at all that pluralization nonsense which really wasn't needed, but was put in there on the whim of a developer whose native tongue isn't even English (ironic?), and who insists that a table containing person entities should be named 'people' because it "sounds right". EFCodd and relational theory/calculus be-damned! Like Chris Rock said, "You can drive your car with your feet, but that don't make it a great f**kkin idea!" It is not a bad framework for one off CRUD front-ends to databases though. If by mainstream you meant Enterprise, then yeah, its got ways to go. No enterprise architect worth their salt will let this thing on their company's bread-n-butter servers in the condition its in right now. Posted by: rorer at April 7, 2006 03:40 PMThe only thing Lisp is good for is writing a cron job to check your favorite anime site for the latest tentacle rape videos (and you know you do). While you're writing Lisp in your mother's basement, the rest of us are making 6 figures writing J2EE or even PHP apps. Let me know when you find a website worth a shit written in Lisp. Loser. Posted by: anon2 at April 7, 2006 03:44 PMRails is hard to learn? I'm teaching my technically inept girlfriend RoR. She's never had a day of programming or CS classes in her life. She's never learned a programming language in her life. Nothing, so far, has been confusing to her about RoR. The "magic" that we take for granted, to people new to web frameworks, is just "the way things are." Take scaffolding. I hardly use that in my professional Rails career. But for her, that's just like, a really nifty way to get a barebones webapp going. I had to explain to her that, back in the day, you'd have to write all these silly little HTML forms by hand. Re: going mainstream. The point about PHP being "just there" on any *nix webhost is a valid point. Will Ruby/RoR ever be like that? Who knows. It took PHP, what, 4-6 years to get where it is today? It's certainly naive to say / believe that RoR will be just a "blip" on some radar in 2-4 years. 15-20 years? Maybe. But I doubt that too... Is C/C++ now a "blip" on the radar? I've never really felt lacking w/o a so-called "Rails IDE". The coders I've known who were dependent too much on their editors, I never really respected that much. Get them outside of Visual Studio .NET or Eclipse, and they were like children lost in the woods. Of course, that's because bloated frameworks like ASP.Net and J2EE demand those editors. And ... if anyone in the RoR scene is fanatical... it's because we don't want to go back to our J2EE/ASP.Net/PHP worlds. We don't care if *you* like it over there (that's all very fine and dandy), but don't make *us* go back. The scenery is nice over here. Posted by: Shanti Braford at April 7, 2006 04:36 PMthe whole web world. what about the people who learn to program using ruby? i think it's too soon to tell the future of rails my friend. it is still young. pure object-oriented methods are becoming mainstream with java and .net. pure object-oriented scripting is simply the next step. object iteration is one of the concepts which makes ruby so fun, and i think it will appeal to youth. youth owns the internet. Posted by: hirbivore at April 7, 2006 05:36 PMI have been programming since 1968. I've used assembler for many different computers, as well as Fortran, Snobol, Basic, Prolog, Pascal, C, C++, Forth (yuck), Logo, and many domain-specific languages; I've programmed scanners in lex, compilers in yacc and also in recursive descent Pascal and C; I reversed engineered and decompiled a sound-processing language, building a system which translating automatically from hex machine code to signal-flow diagrams; I've done a lot of embedded and/or real-time programming; I designed and implemented a bytecode Pascal system with real-time extensions; I've designed hardware, both analog and digital. I've worked extensively with cellular automata, including studying Von Neumann's papers and those of E.F. Codd, who later went on to create the core relational database concepts. I even built my own DTL (diode-transitor logic) gates "back in the day". I really do know computers from the electrons up. My assembly-language work included some truly complex projects, programs which would not be trivial in any language, and which, given the slow processors and tiny memory resources available in their time period, could never have been programmed in any other language. I've written complicated event-driven programs for the Macintosh, for Windows and even for a few one-off embedded architectures. For the web systems I now create, I find it necessary to mix five languages: HTML, CSS, JavaScript, PHP, and SQL. I could not say that any of those languages has been entirely trivial to learn up to the point of using them fluently. To create working web systems, I also have to understand .htaccess files, Unix permissions, Bash scripting, construction of crontab schedules, and other server concepts. And (finally) here is my point: I have found PHP to be friendly, convenient and productive. Granted, I have so far used PHP as a solo programmer, so any problems with multi-programmer interactions have not arisen. Maybe that's where namespaces would be necessary. Otherwise I can't seem to think of a reason I would need that feature. I find PHP to be concise and readable. I add a good number of comments to my code, so I can easily figure out how things work when I have to return to it later. I am annoyed that PHP does not really support Unicode or other multi-byte coding schemes, and that the combined use of single and double quotes can become confusing in some situations. Otherwise I am quite happy with the language. We always read about end-user software that is supposed to be easy to learn and use. Why shouldn't the same criteria apply to programmers' software -- that is, to languages and development systems? The fact is that the same criteria DO apply. Popular programming tools MUST be easy and intuitive to work with. They have to be simple enough to use that even people who are less gifted and/or less studious can be productive with them to some extent. Finally, procedural languages work the way the underlying hardware works. That can be a real advantage when one is trying to get good performance. I hope I have not shocked or disturbed anyone by speaking up for PHP. Doing so seems to be taboo in discussions like this one. But there must be SOME reason why PHP is so popular... Posted by: Ralph at April 7, 2006 11:52 PMIn my opinion, it is unclear if RoR will or will not become a widely-popular platform. I think it takes more than just technical merits to take it there (Zope and ColdFusion come to mind) - it requires lobbying in same way or another. In other words, I think that matter of Rails becoming mainstream is in our own hands - if enough of us decide to use it, it will, if not, it will not. Personally I believe that RoR will fill a decent niche in the web development game (as no technology can seriously pretend to become everything for everyone) and will co-exist with PHP and J2EE. Hum... if you go look at shared hosting companies, many are offering RoR, if you look at the tops almost all have RoR and PHP included in unexpensive packages. So this argument "-Lack of support from Internet Providers." is pretty much dead. If it's not already 50% it will be very soon. "Anyone who wants to run a Java EE application will most likely host their own servers." I agree, i don't even see RoR and Java in the same ring, the true competition for RoR is PHP, not Java. Posted by: Daniel MD at April 8, 2006 05:22 AMOne of the biggest reasons Java has become a success is that Sun and IBM couldn't be pushing it any harder than they have over the past decade. Furthermore, academics have whole-heartedly embraced it as the best all-purpose OO language. Put together, that's a triumverate that's hard to beat. Until Rails sees that kind of corporate and academic support, I think it will stay a phenomenon for small- to mid-scale web development. And that's okay. I hope it does stay that way. That's what it was designed for, and the complexity required for it to become all that Java is would make it way more complicated than it needs to be. Posted by: GregM at April 8, 2006 07:13 AMDamn it. You said you like RoR. I was looking forward to some real good fight. It's no fun fighting you because you take stand on both sides. My hero is James McGovern. All bloggers should learn from him. :-) Posted by: Neeraj Kumar at April 8, 2006 08:45 AMI just posted my thoughts here, related to the high-maintenance IT professional stereotype. Let me know what you think. Posted by: Obie at April 8, 2006 10:04 PMFor those of you citing XML and complexity in Spring/Hibernate et al, please check out the annotations/DI/persistence facilities in JEE 5. It is simply awesome and cuts down development times to 1/3 as well as centralizing code and meta-data (and doesnt force "convention" like RoR). Add to this the other facilites offered by a typical EE container eg JMS and JMX and you begin to understand why Ruby penetration in the entrprise is going to be a bit slow. Please note: I am tallking about Enterprise here, where "baby sitting a database over the web" is just ONE of the things that is under consideration. And in such places code needs to live for a long period and will be looked at > 1 (average minded) people over time. Also see Posted by: Sawan at April 9, 2006 11:05 PMFor the record, I am one of those old Lisp, Scheme actually, guys who believes that God used it to program the universe. It is not, however, the last thing I learned. To feed my family I learned C, I learned C++, I learned enough about databases to be (very) dangerous. I learned enough about HTML and CSS to talk intelligently to Web Designers. Now, mostly for pleasure, I'm learning Ruby/Rails. In all of that learning I saw very little that wouldn't have been simpler and more elegant in Scheme. Regarding IDEs. A good IDE does not ensure success. The Smalltalk development environment has yet to be surpassed but Smalltalk remains a niche technology. Those are minor points. In general I enjoyed your write up and will continue down the Ruby path. Posted by: Ward Harold at April 10, 2006 10:18 AMWhy Ruby on Rails won't become mainstream? Because idiots like will be forever writing articles named "Why Ruby on Rails won't become mainstream?" For gods sake... it makes me so angry. A lot of people reading your article will believe you, then they will only perpetuate what you say, tehn ultimately, it will be thought of as true.. Posted by: Chris at April 11, 2006 08:11 AMlet him dismiss ruby and ruby on rails-- i've got no problem leaving behind the naysayers and the "mainstream"-- there are more than enough very talented folks on board to keep pushing this envelope beyond the amazing state it's already at, and if the mainstream can't handle it, then they will create crappier sites and pay more for theirs and be slower to market and they will ultimately fail. Posted by: at April 11, 2006 11:26 AMI work for a government IT department, the biggest issue from our perspective to limit adoption of Ruby and Rails framework is the “Risk Adverse” nature of IT departments. While we might try a small pilot project, very few government organizations are willing to take the risk in developing ruby based applications for mission critical applications. I’m not so concerned with the lack of development tools; I’m more concerned with the lack of support for interfacing with other technologies. I don’t want to get into the Microsoft versus Linux debate, but if an organization has a substantial investment in Microsoft technologies (i.e. SQL server, Exchange, Active Directory) then it has to have a tool that will help leverage that investment. I want a tool that I can connect to a Microsoft SQL server instance as easily as I can connect to a mySQL instance. I know a lot of developers who are just like me, we like ruby, its fun and easy to learn and powerful, but at work I need a tool that will interface to an Oracle database and a MSSQL database and an Exchange Server. I need Ruby on Rails to work on IIS as easily as ASP.NET, or ColdFusion or even PHP. I want a setup package that will configure Microsoft IIS while it installs ruby (just like PHP) Until I see more cross platform (i.e. Microsoft support) we could not recommend Ruby as a serious in house development tool. Posted by: Marc Truitt at April 11, 2006 02:02 PMCorporate environments are not the place to test out new technologies, as I was quickly flamed by the guys who signed the procurement orders when I posted on our internal developer forum mentioning the benefits of Ruby on Rails. I can see it from their point of view, as the primary concern of a business is protection of investment, not experimentation. Even if the CTO of a large corporation joins the RoR cult, he will still have to justify to his superiors the savings and the risks of a large scale migration. This kind of barrier is what prevents RoR going mainstream. Having said that, taking a lesson from the Linux books, every large corporation has a backdoor, namely developer adoption, so there is a way. Like you, I like Rails and all my websites are built using Rails, but the biggest premium is still being paid for Java/J2EE/ASP.NET developers, so that is what I do during the day in order to fund my nocturnal Rails projects. Posted by: David Tran at April 12, 2006 03:54 AM@Matthias Georgi: He indicates that he can do code completion, navigation, debugging, refactoring, project management, source control integration, etc. all the time with emacs. For Java, this is bogus. The quality of these features in emacs is so far below the big Java IDEs, it's almost not fair to even compare them. The next time someone says something like this to you, ask them to show you on their emacs screen - Then you will know what I'm talking about. Usually people who make statements like this aren't aware of what a real IDE from this decade is actually capable of. Posted by: w1000 at April 12, 2006 08:59 AMI'm in the midst of a small project at a large company to validate whether Ruby on Rails can be a useful enterprise tool. I disagree with your conclusion that RoR will never find a place in enterprise computing. If you look at the question from the perspective of hard business value, it's clear there is a lot to gain from the sheer productivity of RoR. As far as scalability goes, I think it's a non-issue. Enterprise computing isn't a one-size-fits-all proposition. Everything in an "enterprise" doesn't have to be gigantic or scalable to gigantic size. Consider a technical environment that has a library of shared services and back-end resources that are accessible through those services. There are many projects to develop tactical, vertical, customer-facing business apps, and they're typically built on web technologies even if they're only for internal use, since web technologies are fairly standardized and straightforward. In that environment, creating one of those small business apps is a matter of orchestrating pre-built services, presenting a UI, and maybe writing a bit of custom logic here and there. Those little apps don't have to scale, because the heavyweight stuff is all in the back end infrastructure which is already scalable. What sort of tool do you see fitting into that part of the enterprise? RoR looks like an excellent fit to me. What I'm playing around with are things like connectivity with Active Directory, writing Web Services client code, and so forth. It's all pretty basic. RoR doesn't have to replace technologies like Java or .NET to have a well-justified place in enterprise computing where it can deliver real business value. Instead, it can complement those technologies in a way that takes advantages of its natural strengths. Posted by: Dave Nicolette at April 12, 2006 01:48 PMI'm in the midst of a small project at a large company to validate whether Ruby on Rails can be a useful enterprise tool. I disagree with your conclusion that RoR will never find a place in enterprise computing. If you look at the question from the perspective of hard business value, it's clear there is a lot to gain from the sheer productivity of RoR. As far as scalability goes, I think it's a non-issue. Enterprise computing isn't a one-size-fits-all proposition. Everything in an "enterprise" doesn't have to be gigantic or scalable to gigantic size. Consider a technical environment that has a library of shared services and back-end resources that are accessible through those services. There are many projects to develop tactical, vertical, customer-facing business apps, and they're typically built on web technologies even if they're only for internal use, since web technologies are fairly standardized and straightforward. In that environment, creating one of those small business apps is a matter of orchestrating pre-built services, presenting a UI, and maybe writing a bit of custom logic here and there. Those little apps don't have to scale, because the heavyweight stuff is all in the back end infrastructure which is already scalable. What sort of tool do you see fitting into that part of the enterprise? RoR looks like an excellent fit to me. What I'm playing around with are things like connectivity with Active Directory, writing Web Services client code, and so forth. It's all pretty basic. RoR doesn't have to replace technologies like Java or .NET to have a well-justified place in enterprise computing where it can deliver real business value. Instead, it can complement those technologies in a way that takes advantages of its natural strengths. Posted by: Dave Nicolette at April 12, 2006 01:48 PMI think we're all missing the point here. Ruby is the language and it's a beautiful language. Rails is the framework - in almost it's first iteration. It's separate and distinct from Ruby and ultimately completely replaceable. To argue about whether it will or won't see commercial uptake is largely irrelevant. What you should be considering is what Rails actually is. It's not a development environment and it's not the ten commandments; it's a web design paradigm that just happens to have been defined in code and it's real strengths are in it's enforcement of a (kind of) programming discipline that can be shared amongst a team, the abstraction of data integration into a 12-line config file and the ability to prototype a web application very rapidly. This latter feature wins my approval and admiration. To be able to produce a workflow in a few minutes, that could potentially take hours or days in a PHP environment is a gift. Throwing AJAX in as well is just the icing on the cake. Regarding the point made above about it being difficult to transfer skills from the PHP and ASP backgrounds that many web programmers have, I say - that's just our lookout. The irony is that it's probably easier to learn if you don't already have an appreciation of scripting languages because it seems to be based around common sense expectations. And if that really is the case, a lot more people will start to use it. So to sum up: I think RoR has already done it's job because it's making people sit up and think about exactly how they want to build the next generation of web applications. And it is great to see an idea take hold and create so much of a buzz on the internet *without* the marketing muscle of Microsoft or Sun or Oracle behind it. Posted by: Robin Layfield at April 14, 2006 02:19 PMwhat about Flex? Posted by: Erin at April 16, 2006 05:54 PMon emacs "IDE": I really don't quite get the productivity boost when using emacs as compared to eclipse. Perhaps, the perception of what an IDE is makes this difference. Eclipse can definitely do mouseless manipulations. Modern, contemporary and GUI-based IDEs do have a lot of superior functionality as opposed to vi and emacs world. I for one refused to get out of vi and to some extend windows notepad until I got converted to Eclipse. on RoR: As for RoR, IMHO, Java EE is still superior in terms of maturity and product and service support. RoR can deliver a faster time-to-market, but will not scale up to most of large-scale enterprise requirements. I doesn't really matter whether the language/frameworks I use is from the evil ones (ie, M$, Sun, Oracle, etc.) as long as it gets the job done and does it well. For years, we've seen Java delivers enterprise requirements and did it well. Posted by: Richard Relos at April 17, 2006 10:47 PMI also have responded in a more detailed point-by-point basis. Oh, in perspective, I'm a recent RoR fanboy, I know a bit of Smalltalk / Lisp, and I am abrasive and arrogant. You've been warned. I also try to be a good author and be subjective. :) http://greenmeggsandspam.blogspot.com/ P.S. I'm also a Mormon, but I've never really went and knocked door-to-door. :: shrug :: I would *definitely* not call myself a sheep however; nor do I think DHH is God and has provided the One True Way to Webdom... Posted by: Curtis at April 22, 2006 01:13 PM"Fact is, RoR might be great for writing blog engines (as if we don't have enough already), but why oh why isn't there a standard security model? Why must I spend hours downloading weird plugins & code generators to do something that a Java web container does out of the box?" You don't, you can write your own in about the same amount of time and it's your code (that's the wonder of RoR). But yes, there needs to be a consolidated effort to standardize some of the documentation. There are some great books out there for good sample code and such, of course that does require some expendature of funds which not everyone can do... :: shrug :: Posted by: Curtis at April 22, 2006 01:23 PM"For the web systems I now create, I find it necessary to mix five languages: HTML, CSS, JavaScript, PHP, and SQL." If you substitute RoR with PHP, the entire rest of the content of the posting works as well. It's just a different component of the package. "But there must be SOME reason why PHP is so popular..." There is! It came out *before* RoR. Give the world another year. :) Honestly, PHP is a fine language, but Ruby and Rails could be better for most applications. Posted by: at April 22, 2006 01:47 PMI looked at ROR for a while and followed the mailing lists relevant to it for 6 months or more. During that time I simply couldn't find a single, compelling reason to switch. Don't get me wrong, I moved away from PHP... but I went to .Net 2.0 for both application and web development. It's free (including the database) it's fast, the IDE is amazign and the language and object libraries kick ass. Tack on SVN for source control and life is good :) Posted by: Soulhuntre at April 25, 2006 11:16 AMI work for a consulting firm that has some active rails projects. What I am finding is that I bump my head up against the framework just as often as I do in any other language. My personal preference? Object Oriented-PHP 5 with no framework, aside from some basic code generation, but I don't feel like getting flamed here ;) Cedric, since you are an insider at Google, what is the position of Engineering regarding RoR? Google seems to be 'officially' big on Java, C++ and Python but does it allow you guys to use anything like RoR to build things that may eventually become production [aka 'Beta'] grade (in your 20% for example) ? Juste par curiosité... Merci. Good post Cedric and I enjoyed the follow up. I disagree with your views on Emacs, and you forgot to mention Perl5 alongside Smalltalk and Lisp ;) "Emacs is a fine text editor, but it's no longer adequate for modern development." Our team of five use Emacs in conjunction with our RoR-like web framework bOP, and we take advantage of code completion, debugging, refactoring, CVS integration, unit and acceptance testing, etc all from within Emacs. Our small team maintains an open source framework, an industry leading online application, several long term consulting projects and several start up companies. Somehow we manage to be more productive than any other team of 5 or 25, at least that I know. Emacs doesn't hinder us. I still like Eclipse and IntelliJ, but I haven't used either in nearly a year and don't really miss them beyond their attractive UIs. Granted I rarely ever have the development headaches in bOP that I did in C++ or Java where "modern" IDEs help :) Posted by: Alex at May 10, 2006 12:21 PMReading these comments are like a big deja vu for me. Anybody remember 1995 when Java was released and people said: "Java is a silly little language which is fine for running cute little dancing graphics, but we are serious programmers and we code in C or C++" or "Java isn't even compiled it won't scale nor compare to the speed of much more mature and compiled languages. " or "Wasn't Java created to handle TV Set boxes it won't be used to integrate into SAP or real backend systems." or "It's just a fad it will go away. No company will throw away the millions of dollars invested in C,C++,Cobol and embrace Java." Now reread this thread and simply substitute Java with RoR.... think about it. While reading Cedric's article I had a hard time not thinking this was all just tongue-in-cheek writing. How does that argument work, most companies are too stupid to know how to use rails? LOL! While I don't disagree that many companies have too many mediocre coders, and too many self-inflated architects (AKA people who can't code or manage but we need to put them someplace) it just doesn't flow. Smart coders are always looking for better ways to do things... if it weren't for them we would all still be doing COBOL. :) And what is the problem with arrogance? That's the drive of an engineer; to show how you can do something faster, chea per, and/or better than the next guy. I have heard DHH talk and I think those that complain about his "arrogance" are just too thin skinned, and/or envy what he has accomplished. False modesty is for people who can't deliver...quit your whining and learn something new or you just might realize that you are the next coding dinosaur. Soren Posted by: Soren Burkhart at May 11, 2006 01:57 AMI work for a company that developed something akin to Rails, only for the rich client, in Delphi (http://www.atlasframework.com/). Our experience in getting it adopted in large organizations very much resembles what is described in this blog post. Its a steep curve, and not all get to be truly productive with it. It needs a different mindset. And since the smarter people often don't like maintenance work, you have to problem of who is going to do that in an environment that mandates a certain level of smartness. Posted by: Peter Arrenbrecht at May 11, 2006 08:45 AMI work for a company that developed something akin to Rails, only for the rich client, in Delphi (http://www.atlasframework.com/). Our experience in getting it adopted in large organizations very much resembles what is described in this blog post. Its a steep curve, and not all get to be truly productive with it. It needs a different mindset. And since the smarter people often don't like maintenance work, you have the problem of who is going to do that in an environment that mandates a certain level of smartness. Posted by: Peter Arrenbrecht at May 18, 2006 11:20 PMSorry for the repost. My line was shaky last time and I thought it did not make it. Should have rechecked. Posted by: Peter Arrenbrecht at May 18, 2006 11:21 PMDon't quit your day job to become a fortune teller. You make many assumptions when you preach. Your first statement is a prediction. Just that. People are not as dumb as you think. They have the ability and desire to continue learning. Do you expect a framework to be developed in parallel with an IDE? I don't. FYI: Radrails is a very nice IDE built on the Eclipse platform. Rails isn't the only solution to web development, it isn't a golden hammer. I love ASP.NET simply because that's what I'm getting paid to use at work. I love rails (and I don't back stab it), but that doesn't mean I will try to force it down other's throats (maybe because I'm not Christian). As for scalability, beats me, I've only started studying Ruby on Rails for the past two weeks now. But if it is as powerful as you proclaim, then I assume it is inherently scalable... otherwise you wouldn't have said that it's powerful. Lack of Internet Providers? You were just running out of excuses to write in your article right? Posted by: Devin at May 19, 2006 06:26 PMJust now reading the two books and still trying to form a somewhat educated opinion. However, my early impression is that the real innovation is with Rails. Ruby, to me, is just another language -- the next of many that the industry is trying to sell to me as the "next bestest thing". Too bad Rails is inextricably tied to Ruby. Posted by: enrique at June 1, 2006 11:50 AMI like what you said here because it is meant to be a warning not some much a prediction. Those who lash out at the author do not understand what Credic is tryi |