Announcing SproutCore 2.0 Developer Preview
blog.sproutcore.com
blog.sproutcore.com
In my opinion, this is a brave move from the team -- acknowledging that the SproutCore approach from the past four years needs to be ditched in favor of a brand-new codebase, and one that's a small fraction of the size (both code and API-wise) of the previous SproutCore.
Even though it's not recommended right now, I imagine that in due time SC 2.0 will also be recommended for "desktop-style" web applications, and when that happens, it'll be a force to be reckoned with.
This update seems to move SproutCore away from what made it unique and towards something that mostly resembles what everyone else writing web frameworks is doing.
But from an outside perspective, I think this could make SC truly competitive, and that's going to be a good thing for JavaScript-heavy web apps in general.
I think Aristo is a great theme, and better than the default SproutCore theme, but even it is starting to look dated. Web-style apps are similarly impossible with Cappuccino; I find it hard to believe you don't think there is value in bringing Objective-J to all web developers, not just those who opt-in to your view layer. Objective-J could be filling the same role CoffeeScript is now if that was the case.
SproutCore 1.5 was certainly backwards compatible with 1.0, and will continue to be maintained by companies that together have revenue in the billions. We just realized that the path we were on forced us to cater to a small niche. When you can provide value to a market at least an order of magnitude larger, why not do it?
We're not giving up on native-style interaction, and I think people will love the stuff we're working on right now. As I said in the blog post, this is just the first milestone on the way to that release.
This is just flat out incorrect. SC 2 is a more moduler SC 1.x runtime, not an entirely new codebase. Similarly, SC 1.x apps will be able to run almost unchanged on SC 2 once their UI frameworks are updated for the changes in the SC 2 runtime.
The only "change" is that instead of making Web-app style opt-in, and Desktop-style the default, Web-app style is now the default and Desktop-style is opt-in. That change could have easily been made on the SC 1.x runtime as well, but it makes the most sense to do it on the modular, tighter SC 2 runtime for obvious reasons.
In an intranet setting (the kinda place where IE6 may still linger for 2-3 years) using standardized RIA frameworks like ExtJS help speedup the development cycle by offloading 80% of the design work from the 1000+ developers, which probably already have a handful trying to figure out in which order a certain financial transaction needs to be called on the Mainframe CICS-DB2.
However, our environment was a little unusual in that we were able to mandate reasonably modern browsers (FF 3+, Webkit).
The announcement indicates that they're releasing SproutCore 2.0 Developer Preview with the caveat: "SproutCore 2.0 is still under heavy development and APIs are likely to change."
Pure JS and drop-in integration is good too, we are a Java shop and lots of developers working on Windows, so introducing a Ruby-dependent JS framework would be hard in my case.
Previously we also considered SC as a 'heavy' JS solution - like Cappuccino, ExtJS or GWT(we used GWT for complex backends - it allowed us to share UI&server code), but now we'll have another look at it as an alternative to Backbone for frontends/mobile.
It feels like a nice fit to MVC/MS stuff (there's certainly plenty of examples of this, and Steve Sanderson now works for MS). And it's easy to bind whatever UI you want to your view models.
Personally I now use KO for even the smallest of JS/HTML 'apps'. It's lovely :)
ControllerName.FunctionName(arg0, arg1, callbackFn);
Is part of the plan to shift focus away from that UI aspect?
If not, is there a tutorial on how to put together a simple app that uses some of the available UI components?
Thanks guys, keep up the great work.
I also find the 5-layer [Model, Model-Controller, Controller, View-Controller, View] better for my OO coding style and isolation of dependencies — but that's probably more of a personal quirk.
In the next few months, we will be working on a mobile control set that allows you to create more "native-style" interactions. I think both have their place and can deliver awesome experiences to users.