… you can listen to customers, provide them with what they want, but still lose out — because a cheaper, not-as-good but good-enough competitor comes in and eats your market.
Ruby on Rails is mentioned (remember, this is back in 2005) with all of the same knocks against it that I still hear today. “It doesn’t scale!”, “It’s over-hyped!”, etc. etc. These are totally bogus arguments. Whatever truth there was in those statements has been diminished by the fact that the tools today are much better than they were 2-3 years ago. Two prime examples of this are Mongrel and Capistrano, tools which address issues (scalability via clustering, and deployment to and management of that cluster) that are found in their most virulent forms in the Enterprise.
If I have a point to make on this subject, it’s this: Some decision makers in organizations that consider “enterprise” issues to be relevant to them are solving the wrong problem when choosing Java over more nimble tools like Python and Ruby. This pertains mainly, but not exclusively to organizations building web-apps.
The bottom line is that compiled languages !!SUCK!! for web development!!! The compilation time is a killer. The restarts are a killer. Yes, Java in particular has numerous frameworks which aim to ease the burden of the compiled nature of Java. But those frameworks just make for more stuff to learn, therefore complicating the development process. Any solace you may take in the fact that “our apps scale” (which is a farce in fact, because scalability never comes for free) should be immediately squelched, and in fact rendered completely insignificant by the fact that your app took 10 to 15 times as long to build.
When all you have is a hammer, every problem looks like a nail.
This has to be my favorite quote when it comes to “The Enterprise”. When you say that your problems are hard, that your software is complicated, that it’s under crushing load, etc., etc., it will be. If you step back and allow yourself to untangle “The Enterprise” you realize that it’s not one big, nasty property of your organization, or your business, or anything. What you really have is a lot of small tasks, problems, challenges, each of which needs a simple, flexible and manageable codebase to support or enable.
When you take that step back to refocus and adopt a different paradigm, the complexity of “Enterprise” becomes a very difficult pill to swallow. THERE ARE BETTER TOOLS!!! And the value proposition they offer is faster development cycles, shallower learning curves (though, yes, you do need to learn some new languages), and ultimately more satisfied customers.
I've got a masters degree in computer science and over 10 years of experience building web-based systems using Java/J2EE, Ruby, Rails and PHP. I'm a strong believer in the effectiveness of Agile Methods. Read more »
The Innovators Dilemma and the Enterprise
I came across this post by Jason Hunter on The Innovators Dilemma from 2005. Jason Hunter is a big name in the J2EE/XML space if you don’t know who he is.
Here’s the nut of the article:
Ruby on Rails is mentioned (remember, this is back in 2005) with all of the same knocks against it that I still hear today. “It doesn’t scale!”, “It’s over-hyped!”, etc. etc. These are totally bogus arguments. Whatever truth there was in those statements has been diminished by the fact that the tools today are much better than they were 2-3 years ago. Two prime examples of this are Mongrel and Capistrano, tools which address issues (scalability via clustering, and deployment to and management of that cluster) that are found in their most virulent forms in the Enterprise.
If I have a point to make on this subject, it’s this: Some decision makers in organizations that consider “enterprise” issues to be relevant to them are solving the wrong problem when choosing Java over more nimble tools like Python and Ruby. This pertains mainly, but not exclusively to organizations building web-apps.
The bottom line is that compiled languages !!SUCK!! for web development!!! The compilation time is a killer. The restarts are a killer. Yes, Java in particular has numerous frameworks which aim to ease the burden of the compiled nature of Java. But those frameworks just make for more stuff to learn, therefore complicating the development process. Any solace you may take in the fact that “our apps scale” (which is a farce in fact, because scalability never comes for free) should be immediately squelched, and in fact rendered completely insignificant by the fact that your app took 10 to 15 times as long to build.
This has to be my favorite quote when it comes to “The Enterprise”. When you say that your problems are hard, that your software is complicated, that it’s under crushing load, etc., etc., it will be. If you step back and allow yourself to untangle “The Enterprise” you realize that it’s not one big, nasty property of your organization, or your business, or anything. What you really have is a lot of small tasks, problems, challenges, each of which needs a simple, flexible and manageable codebase to support or enable.
When you take that step back to refocus and adopt a different paradigm, the complexity of “Enterprise” becomes a very difficult pill to swallow. THERE ARE BETTER TOOLS!!! And the value proposition they offer is faster development cycles, shallower learning curves (though, yes, you do need to learn some new languages), and ultimately more satisfied customers.