WebObjects: The Gift that Keeps on Giving
March 14, 2011 Leave a comment
About eleven years ago I became acquainted with Apple WebObjects. WebObjects was in the midst of a transition from Objective-C to Java at the time and I entered the WebObjects picture on the Java side of the equation. The fingerprints of the original Objective-C version of WebObjects were visible throughout the product. You had classes like NSDictionary and NSArray in the foundation package and patterns such as delegation throughout the design. Most/all of these concepts themselves came to WebObjects from NeXTSTEP and OpenStep.
Years later, I entered the world of iOS and Cocoa desktop programming. Much of the learning curve in these technologies was eased due to my prior experience with WebObjects. This is true in spite of the fact that my WebObjects usage involved no Objective-C work at all. The conceptual cores of iOS and Cocoa share a common heritage with WebObjects.
More recently I had an opportunity to work with the open source object-relational mapping framework called Apache Cayenne. Cayenne was inspired by the Enterprise Objects Framework (EOF) which was part of the WebObjects product. It’s not an exact clone of EOF, but my prior WebObjects experience made me feel right at home with Cayenne. Completing the picture is a recent investigation of Apache Tapestry. Tapestry is a component-oriented web framework also inspired by WebObjects. Working with the component-oriented approach taken with Apache Tapestry felt like going home (albeit to a greatly renovated house.)
So, more than eleven years after first developing with Apple WebObjects, the time investment that I made in learning/mastering that product is still paying dividends. My hat’s off to all those who have created the line of technologies that both precede and descend from WebObjects.
