Why Webobjects ?

You may think “Why should I use WebObjects” when all the cool kids are using Ruby On Rails and PHP ?

WebObjects is mature. It’s been available since March 1996 (it was even available as a beta in late 1995). But unlike many of the tools written at that time, WebObjects is still there, updated and used on many sites, including Apple’s two main e-stores (iTunes Store and the Apple Store). WebObjects has shown over time that it can take the load.

But it’s in Java! Yes, it’s Java, but it’s not J2EE. You don’t have to deal with EJB, J2EE containers, Struts and the like. WebObjects uses Java for its best features : major code libraries (JavaMail, Jakarta projects, etc.) and portability.

I develop on Linux or Windows, I can’t use WebObjects. While it’s true that WebObjects is officially supported only on Mac OS X, a lot of people are developing or deploying on other OSes. According to the general WebObjects Survey of 2007, 12% of organizations use Windows as their development platform, and 31.5% of organizations are deploying their applications on other OSes than Mac OS X Server. The IDE, WOLips, is based on Eclipse, so the only thing that you need is to install the WebObjects libraries (you will need a Mac just for this step), Eclipse and WOLips, and you are done.

I don’t see many sites using WO. In the NeXT days, WebObjects was sold as an enterprise tool, somewhat like how WebSphere and WebLogic are sold right now, and therefore it was used for a lot of internal systems, and not much for public sites. But in the days of Web 2.0 where people want to build real Web applications (and NOT dynamic Web sites), WebObjects foundation is perfect for those apps.

I’m a Cocoa developer, why should I use WebObjects? Well, you use Cocoa because you like clean APIs, good tools, faster development process and turnaround, and KVC ? WebObjects, because of its NeXT foundation, shares a lot of concepts coming from Cocoa (especially Foundation). You don’t use java.util.Vector, you use com.webobjects.foundation.NSArray, which should be familiar to you.

I’m a J2EE developer, why should I use WebObjects? Forget what you learned about EJB and Struts, you will be glad to use EOF and WebObjects Components instead. But the fun part is that you don’t need to learn a new language. You can reuse some of the code of your J2EE apps, and the official WebObjects IDE is based on Eclipse. If you ever used Apache Cayenne or Tapestry, you will feel even more at home.

I’m a Ruby On Rails developer, why should I use WebObjects? Better tools (TextMate as an IDE, come on RoR dudes!), more maturity and more portability (thanks to its Java roots).