I’ve been toying with the idea of learning SproutCore for a while now as a way to learn more formal development skills than the PHP scripting I’ve been accustomed to. I like the idea of an application that it more formally structured than the build-it-as-you-go-by-the-seat-of-your-pants approach that PHP pushes, and learning proper MVC structure. I also love the concept of an application that runs on the client side and only calls back to the server when it needs data. This strikes me as being a much more efficient and high performance way to do web applications. I see a lot of benefit in this approach as I work on writing a replacement for our flagship app at work.
However, I’m increasingly struck by feeling that SproutCore isn’t quite sure what it wants to be. For the last year, SproutCore’s direction seems to be blowing around in the breeze. They appear to have obsoleted the Greenhouse interface builder they were working on; they introduced a templating system that bypasses the traditional way that Views were handled; they introduced a way to run apps based off of something called state charts but I haven’t seen much to officially sanction this on the website. Now, at least as far as the 2.0 developer preview is concerned, they seem to be doing away with most all of the meat that made SproutCore itself, and making it an MVC layer optimized for jQuery. I get the feeling that the entire framework is a boiling mish mosh and the developers are trying to figure out what kind of stew it’s going to be.
I’m sure I’m wrong in this characterization, but the point is that I’m now quite hesitant to put forth serious effort to learn SproutCore. I can’t invest my time in something that I’m unsure will even be there in 6 weeks. What’s more, the documents that are supposed to be teaching me how to code on the platform can’t keep up with the fervent pace with which the developers are changing the direction of the project. I need a book, filled with official best practices on how to accomplish tasks and code examples leading up to the construction of a fully fledged app with user authentication.
I don’t know a lick of Objective-C or its style of development, but maybe it’s time to jump in with some Cappuccino and learn Objective-J instead? However, something doesn’t feel quite right about Cappuccino’s approach of shoehorning applications onto the web while ignoring some of the web’s core features like HTML, CSS, and the DOM, but at least that way I could take my experience and perhaps back port it to writing proper Objective-C apps. Maybe a shoe in the door to scratching the itch of writing the genealogy management app I’ve always wanted to write and take over the world.