Many tech pundits and non developers are all a-Twitter over the article over at RoughlyDrafted. It’s understandable. At a 10,000 foot view, it’s another player in the RIA marketplace. Cool! However, let’s not all start high five-ing ourselves just yet. A pundit’s view is not shard by clients and developers. Of course, when a company like Apple, Adobe or Microsoft puts its’ weight behind a technology or development platform, it’s worthwhile investigating.
A little background on my experience in the matter. As a multi-platform development house, we build on LAMP stacks, IIS stacks and build HTML/CSS/JS sites and Flash sites. We recently have been begun deploying RIAs built on the Flash platform using a combination of Flash and Flex. We have used Prototype/Scriptaculous and JQuery/Interface and I dabbled a bit with Spry when it was first unveiled by
Adobe. We’re no strangers to new and exciting tools and technologies. Really, the client need and the project requirements define the tool or platform we deploy in.
For us, the use of frameworks for the behavior layer of a standards based site is indispensible. Writing the JS in JQuery by hand on a site by site custom basis would be spaghetti code suicide for our development budget. No doubt about that. We haven’t wrote a lot of custom JS from the ground up for a couple of years really without relying on one framework or another.
Some things to consider though. With the creation of intranet or specific target audience sites or apps, development using a framework is simple. The need for cross-broswer testing is virtually eliminated. However, expand that idea to building a consumer site or a very heterogeneous corporate climate where people may be using Safari, IE6, IE7, IE8 beta, FF2, FF3, Opera, on and on. You get the idea. Debugging and testing becomes a killer. No matter how easy writing the code is, extending, revising and testing it becomes time consuming and expensive. I actually think the next project that comes along may get a separate time tracking activity for “cross browser test functionality” for any JS required to perform functionality.
This is where the concept of SproutCore or any other JS framework being called a “platform” kinda gets thrown out the window. Without the dependability of rendering, behavior and developer creature comforts afforded by a binary compiled file that runs in a plug-in ala Flash or Silverlight, there is no platform. Now, does SproutCore offer a significant upgrade over JQuery or Prototype for RIA development? With built in data binding tools and a respect for the MVC design pattern, I’d say yes. It’s a bit onerous for a little JCarousel style menu or a thickbox gallery, but I’m pretty sure everyone knows that already. Now SproutCore apps may render and perform admirably on Safari, but what happens in an heterogeneous deployment? More than likely, a developer will be losing sleep and a Project Manager will be counting pennies as the ink starts to turn red.
Until IE8, Safari 3-4 and FF3 rule the roost, and we can fully abandon legacy support for IE6,7 and older Firefox versions, I don’t think I could seriously recommend building any application of importance or scale with a JS framework. Even then, it might be a stretch. With SilverLight and Flash/Flex you get innovative controls, layout containers that behave uniformly (unlike shoddy CSS rendering from browser to browser), media handling and a lot lot more.
Now, I am as much in favor of web standards as the next guy. I teach a class every semester on Designing with Web Standards, and use the Zeldman book for one of the texts. I firmly believe that CSS is the right way for adding style to your markup. I stress that writing HTML/XHTML that validates is the only way to go. I advocate using JS versus ActiveX or other nonstandard behavior layers is the only acceptable way to add interactivity to your site. That said, when the client is footing the bill and time is on the line, only a true platform will do for making an app that must behave dependably and uniformly.
I am a Mac user. I work on a Macbook Pro. We own a MacBook for our home use. I own an iPhone. I have a couple other iPods in my house used by other members of the family… I like Apple. I don’t buy Microsoft stuff. I don’t own a single Windows PC or an XBox. So, you can’t cast me as a Apple hater at all… But given the choices between building a Silverlight app and a SproutCore app, I would definitely take the Silverlight app. Probably.
Posted on June 16, 2008