Last time, we discussed the buzz about Ruby on Rails. Here we’ll take a look at how Java rose to dominance in the programming world and what mistakes were made that have left the door wide open for Ruby on Rails to eat its lunch. Plus, we’ll have a little bit more good humored fun with Bruce Tate.
As my previous post pointed out, there are at least 4 things needed for a product to be successful. A strong story, timing, going viral, and being authentic.
On May 23, 1995 Sun formally announced Java to the entire world at SunWorld ’95 and Netscape followed up on the same day with the announcement that it will license Java for use in the Netscape brower’s.
The rapid success of Java following the announcement had a lot to do with the strong story that Sun told potential Java programmers.
- The promise of simplicity: Similar syntax to C and C++ without the hassle of pointers and memory management.
- “Write Once, Run Anywhere”: Maintain one code base, and count on it to run correctly on any platform that had a JVM.
Sun found a distinct “edge” by going in this direction. Edge’s typically lead to viruses, and with the emergence of the internet, the timing was perfect. C and C++ were not ready to deliver web application as simply as Sun had promised with Java.
So where did things go wrong?
The story turned out to not be authentic. Java is difficult. Books like “Better, Faster, Lighter Java”, and “Bitter EJB’s” point out this fact very well. The API is bloated, and the learning curve just to keep up with the language is very steep.
One of the biggest mistakes that Sun has made, however; is not listening and reacting to their users, another way of losing authenticity. The Java community is vast, and vocal. Web-sites such as The Server Side, IBM DeveloperWorks, Apache Jakarta, and various individual blogs such as Matt Raible’s, and Rick Hightower’s aggressively discuss Java technology. Warts and all.
Instead of tapping into these resources Sun has chosen the Not Invented Here mind set. In other words, Sun rewrites every widely used open source project before they include similar functionality into the SDK.
Here are two examples. JUnit (assertions) and Log4J (java.logging). Furthermore, Sun has sided with tool vendors instead of programmers. The initial JSF release was targeted at vendor, not developers by design! Had they targeted the true needs of the web development community perhaps JavaBlogs would not be flooded with programmers trying out Ruby on Rails?
These policies have led to even more confusing API’s and a divided developer community. The consequences of those decision is what’s being seen daily on JavaBlogs. Java is losing their sneezers.
From Idea Virus, by Seth Godin:
“Sneezers are at the core of any ideavirus. Sneezers are the ones who when they tell ten or twenty or 100 people—people believe them.”
Bruce Eckel notes the “Departure of the hyper-enthusiasts“. Couple that with former die hard Java Developers now touting the possibilites of Rails. Here are a few recent stories of this in action:
- Thoughtworks Wins Big Contract with Rails
- Stuart Halloway discussing how Rails helps his consultancy get business
If Sun had been authentic with their promise of simplicity, and tended to the fan base, books like “Faster, Lighter, Better Java” and “Bitter EJB’s” would never have existed. Bruce Tate would never have had a reason to make these points. When books like these start popping up it is a good indicator that something is amiss in a products plan.
Next time we’ll look at how two independent projects, Spring and Hibernate went viral and completely out did Sun at their own game.
Here are some Amazon.com links to some of the books referenced while creating this article. They are all great reads. As usual, all revenue from these links go to charity:



