The most recent buzz on the web has been about Ajax and improved user experiences. Looking to the future, some suggest that the "old" client-server model will be the way to meet users expectations and demands. Could Client-Server computing be the follow-on to Web 2.0 technologies?
Last year InfoQ's Shane Witbeck wrote about SproutCore and described it as,
...a new full MVC application framework for JavaScript.Charles Jolley, President and CEO of Sproutit, wrote an article providing his reason about Why Client-Server is the Future of the Web which briefly mentions SproutCore as being one framework to help in that area. Since InfoQ's original post last year Sproutit has been busy working on the 1.0 release which includes new features, bug fixes and overall polishing of the API.
Recently, InfoQ had the opportunity to interview Charles about the current and future state of SproutCore.
InfoQ: What is the expected release date for 1.0?
Charles Jolley: June, 2008. We'll be showing some close to the final version at WWDC in early June.
InfoQ: You had previously mentioned you really wanted to complete a few tutorials and example applications. I see there is a hello world tutorial and a getting started guide as well as two demo applications. Do you expect to add more tutorials (covering more advanced features and usage) by the 1.0 release?
Charles Jolley: Right now I'm working on finishing the code for SproutCore 1.0 in time for the June release, but I do hope to slip in one more tutorial by then as well that covers building a full application. In the mean time, you can also checkout the source for the photos demo app, which contains a lot of fairly advanced features. There is a link to the source code and the app on the demos page (http://www.sproutcore.com/demos/).
Later this summer after 1.0 goes out I plan to spend a lot of my time documenting the framework and adding more tutorials as well.
InfoQ: Is SproutCore totally disabled if a user has javascript turned off in their browser?
Charles Jolley: Basically, yes. The kinds of apps SproutCore makes possible are so dynamic they would not be very useful without JavaScript anyway. By embracing this constraint we were able to make SproutCore do a lot more with less code so it really pays off.
For those times when you want to target both clients with and without JS, I generally recommend you setup your app to send non-JS-capable browsers to a simplified, page-driven version of your app. This is what a lot of SC users currently do.
InfoQ: Is SproutCore completely browser independent? (i.e. works consistently from IE 5/6/7, Firefox 2/3, Safari, Opera, etc)?
Charles Jolley: SproutCore will support IE7, Firefox 2, 3 and Safari 2,3 for 1.0. IE6 support is coming soon. (It actually used to work, but we won't have time to get the new features IE6 ready in the 1.0 timeframe.) Opera is not currently on the schedule but it should be easy to add if anyone needs it.
InfoQ: What do you see down the road for SproutCore post 1.0?
Charles Jolley: SproutCore 1.0 is about delivering the core functionality needed to build a full client-side application in the web browser. Post 1.0 we'll be focused on polishing the rough edges through better tools and improved documentation. We've already started some preliminary work on a visual interface builder, for example, and some large tutorials are in the works.
Long term I'm most excited to see the kinds of apps developers create with this new framework. I think we'll find a lot of very useful common components we can build as a community.
InfoQ: Have you ever given any thought to enabling the design of SproutCore to be implemented in something other than Javascript? (i.e Flex, Silverlight, JavaFX)? I gather "no" based on the "about" page on your site. Just curious about what additional thoughts you might have here.
Charles Jolley: Long term, I really think the future of web client applications lies with JavaScript and DOM scripting. As browsers integrate rich media features such as CSS transforms, SVG, and HTML5 movie and audio tags, the benefits of using a proprietary plugin are really diminished.
That said, I think those writing apps with those plugins today could really benefit from having a client-side framework like SproutCore available to them and I would be happy to support anyone that wanted to work on it.
SproutCore aims to address the client side of the client-server model which provides one step in developing applications for the "future of the web". Perhaps Apple is on to something since they brought Charles onto their team to help develop the .Mac Web Gallery using SproutCore. What do you think the future web will look like?