The Treasuremytext Story - Part 1 (the technical stuff)

The Treasuremytext Story - Part 1 (the technical stuff)

There’s many different technical aspects of developing a modern day web application. Today any decent Web 2.0 website behind the scenes is likely doing a bunch of fairly complex tasks in order to generate the HTML and images we actually see in our browsers. Probably the most unusual aspect of the technology that underlies Treasuremytext is our choice of Web Application framework (if those last three words bore you to tears you should probably stop now).

Seeking a MVC, Object Orientated Web Framework

EOModelingWhen we first began we knew we were embarking on making something more ambitious then anything else we had previously had experience of. After a brief consideration of Flash (yeah yeah but it’s what I knew at the time) it was clear that this project was going to need something a little more enterprisy. There were a couple of well known options around to pick from. The obvious ones being PHP/MySQL, ASP, Java, ColdFusion. We’re Mac people so so the first thing was that this had to be something that was going to be able to run on the Cube which had been commandeered from the living room of a family relative and assigned to the task of being our development machine. This ruled out a few things and significantly ruled something else in.

First stop was PHP. It is pretty easy to turn on with Mac OS X so I did a little futzing around with that but for whatever reason I just couldn’t get it. Things felt messy - there was all that code mixed up with your HTML for starters. My previous experiences were with development in things like Flash/Director which had more visual object orientated approaches. I wasn’t aware of it but what I was looking for was an object orientated web framework and something else that I would soon learn about a model-view-controller design pattern To get things going I needed tools and an environment which would ease the transition on this journey into new and unknown territory.

Last year’s price $49,301 get it now for just $699

OS X Developer ToolsThe journey began with a mysterious silver disc labeled OS X Developer Tools that comes included with every Mac or copy of OS X. Inside is a treasure trove of applications and technologies to get started in development on OS X. Where other companies like Microsoft sell you these tools, Apple was including them for free to invigorate a new wave of Macintosh developers to support their transition to its own new world of a modern Unix based Mac OS. Inside these discs are terrifyingly wonderfully named things such as MallocDebug and Pixie. Also on this disk is something called WebObjects.

GoLive CyberStudio with WebObjects supportMy awareness of WebObjects went back to my earlier days in web development when using the first real WYSIWYG HTML editor for the Mac GoLive Cyberstudio. In those early versions before it was bought by Adobe was support for something called WebObjects tags. WebObjects was a web development technology originally created by NeXT and had early success as the first real object orientated web framework being used by big sites like the Dell Online Store and Disney (Dell since in a hilarious move rapidly dropped WebObjects after Apple became it’s new parents). During this period it had carried with it a reassuringly expensive $50,000 deployment license but that recently had been subject to a stunning price drop of $49,301 and a new cost of just $699 (it’s now free in every copy of OS X). Even though things like PHP were free and as such tempting, we basically figured that we could get something worth $50,000 for a tiny fraction of that cost and anything that cost that much, well it had to be good.

WebObjects got installed and after a search around for anything called WebObjects, found WebObjects Builder, fired it up to discover a familiar looking WYSISWIG HTML editor - hopes were raised as this looked deceptively easy. Things were clearly missing though, where was everything, how did you do stuff. There begin a transition from noddy Flash/HTML designer to hardcore Web applications engineer.

WebObjectsWebObjects is not a single application but a collection of Java frameworks and development tools that consist of Project Builder (Apple’s then IDE now XCode), the deceivingly named WebObjects Builder and EOModeler the database modeling tool and visible part of the magical Enterprise Objects Framework a core component of WebObjects. After some actual reading of some documentation I was led to Project Builder and a ‘Create New WebObjects Application’ assistant. Stumbling through this I ended up stared blankly at a brave new world of software Development. Not simplistic WYSISWIG editors and the visual development hand holding environments of Flash, Director and Dreamweaver, this was the real deal with jars, frameworks, consoles, compilers, builds, targets, you name it I didn’t have a clue what it meant.

WebObjects - God’s favourite web framework

WebObjects Developers GuideThis is the kind of moment we’re you know you need to be investing in some books. The one that got me started was “WebObjects Developer’s Guide” by Ravi Mendis. With the kind of luck which suggests God is giving you a signal and telling you to go for it I discovered the author of this one solitary book that I could find on this obscure web technology at the time just happened to be living around the corner. I went for coffee with Ravi; he was a nice guy, reassured me that WebObjects could do what I wanted. With Ravi as a possible backup in emergencies it was just the safety net we needed to have the confidence to go with it. Wide eyed (or maybe wild eyed), work on Treasuremytext started.

I worked my way through Ravi’s book, joined a rather lonely Yahoo WebObjects newbies group and built myself a hacky Treasuremytext all in about 6 months. Behind the scenes it was messy but it worked. Most of it still does and has been running Treasuremytext since with a surprising amount of reliability and little maintenance. Its testament to WebObjects and the Development Tools that came with it that it made such weird and wonderful things like database modeling, request response loops, object relational mapping and session management understandable and possible for a complete newcomer.

Since then we’ve been building web apps for ourselves, clients and employers in WebObjects and become hugely more experienced with it and become even more impressed with it in the process. It also turns out we actually happen to be in pretty good company. There are other people around using WebObjects including the BBC, Banking and Financial institutions and of course Apple themselves. From a rather haphazard beginning we’ve been lucky to build our product on what turns out to be considered the gold standard in Web application frameworks and a technology that after 10 years since its inception continues to be the inspiration and model for nearly all other web frameworks including Apache Tapestry, Seaside and to some extent the popular Ruby on Rails.

It’s a WOnderful WOrld

WebObjects V RailsWhen it came to redeveloping Treasuremytext into a modern Web 2.0 application we had a few more choices than we had a couple of years ago. Ruby on Rails and Django are very popular web frameworks with a lot of momentum in the Web 2.0 set. So did we think about switching away from our curiosity of a web framework to something more mainstream? Not really. Since the time we began out with WebObjects it’s come a long way and there is a sense of a resurgent new appreciation for its technology and ongoing developments that means it can more than hold its own against these new imitators challengers.

Notable developments over recent years which have made this decision easy is the addition of support for WO development in Eclipse a real Java IDE, replacing the Cocoa/Objective-C centric XCode. This is made possible through WOProject/WOLips which has essentially replaced all the slightly long in the tooth Apple tools with modern day equivalents integrated within Eclipse. There is also Project Wonder, an open source collaboration that builds upon the WebObjects frameworks, improves them, fixes them, fills in the gaps and brings it right up to date with things like Ajax. These initiatives have matured greatly and are making WebObjects an even more attractive platform for rapidly developing a modern day web site with all the bells and whistles you could hope for. Add to that WebObjects robust and scalable J2EE deployment options and your in heaven. Most importantly there is an organized, resourceful, and incredibly helpful and supportive community surrounding the platform that are continually providing additional documentation, resources, support and help for new and experienced developers alike.

WebObjects still remains a niche curiosity to most web developers. Rather than anything to do with the technology this mostly is to do with it’s Apple centricity, dependence upon Java and its closed nature in a time where open source is all the rage. People just starting out tend to follow the current buzz and that was once with Java (remember that) but is now things such as Ruby and Python. Regardless the WebObjects platform is stronger than ever and remains unparalleled. Its continued evolution is virtually guaranteed by Apple’s dependence upon it and is coupled with a solid community surrounding it that continues to carry it forward.

Erm so what?

When you use a website you really don’t care about the technology that’s underneath it right? As a user you only really care that it’s fast, it works, has got the features you want and if possible does it all within a slick and modern interface afforded by today’s browsers. All we can say is as users ourselves the new Treasuremytext 2 built in WebObjects is shaping up pretty nicely. We think it’s going to deliver on all of those things.

Next time I’ll talk about what’s changing, some of the other technologies we’re using and what kinds of features you can expect to see in the completely new and rewritten Treasuremytext 2 made of course in WebObjects.

2 Responses to “The Treasuremytext Story - Part 1 (the technical stuff)”


  1. 1 Samuel

    Coming from a more interface-based background (and, being generally more interested in having a working product than developing it) I have been working mainly in Rails for the last eighteen months. For me, Rails was an obvious choice because at the time I had a couple of projects with very tight deadlines, and having such a small knowledge of PHP/MySQL I needed a framework - something that would let me get deep into the application, but give me that structure.

    I recently embarked on another project with a Java developer, and working on a project-by-project basis I’m looking around for an alternative, and from what you say about WebObjects I think this might be the time to get out the 10.4 DVD and give it a blast.

    Great article, and if you ever get the time, I’d like to hear about your deployment. My initial instinct is to grab a credit card and hit Media Temple…

  2. 2 Paul

    When I started out RoR wasn’t around but I imagine I may well have gone that route if it had. Hoping to do a post about deployment soon. P.S. WebObjects can be fairly daunting to begin with and Apples docs are sparse. For a really great and comprehensive tutorial to get going you should take a look at http://wotutorial.furfly.com/

Leave a Reply