My take on “What is Sproutcore?”

 

Here’s the offical line.

In short, it is a tool for building a rich desktop client application.   It communicates to the server using standard web protocols: HTTP and XML/JSON.  The server can be developed in any technology as long as it can support the HTTP and XML/JSON protocol.

How is it different from standard web apps?

Sproutcore allows ALL presentation layer process to be performed on the client side (in the browser). 

The sproutcore architectural mind-set is more like developing a WinForms or Java Swing application than a web page.

Why is it better than standard web apps?

It speeds up the application and provides a better end-user experience.

  • Eliminates post backs
  • Allows for client side business rules checking
  • Javascript files are static and can be hosted within Content Delivery Networks for speedy delivery.

Why is it better than old client-server apps?

It eliminates the client application software distribution problem.

  • Installing .NET apps requires the right version of the .NET run time
  • Installing Java Swing apps requires the right version of the Java run time
  • Installing C/C++ or old VB apps often run into DLL-hell
  • Installing run-times and DLLs often require admin rights on the PC.  This is near to impossible on in enterprise SOE environment.

Sproutcore, being based on javascript, requires the ubiquitous browser (preferably one that supports HTML5).  Javascript files are download and run locally when the user navigates to URL hosting your application.

Competing Frameworks 

 Here are some articles that provide a comparison:

I prefer Sproutcore over Cappuccino because:

  • I know Javascript/HTML/CSS
  • I like to have as much flexibility as possible.  In Sproutcore, if the framework does not support anything, I know that at worst, I can get around the problem with Javascript/HTML/CSS.  There’s not an abstraction layer in objective-j or java to get through.

I prefer Sproutcore over JavascriptMVC because:

  • I like the Views (“widgets”).
  • I want to move away form HTML templating.  In a complex app, it does get messy.
  • I like the thought of a future Sproutcore designer

Learning Curve

My biggest issue with sprout core is the learning curve.

It is a new open source framework.  It does need more documentation but here’s some that I think are very useful.

 Found the community on the Sproutcore Google Groups to be great.

Leave a comment

5 Comments.

  1. Effectively said. I in no way imagined I’d personally concur with this opinion, but I’m starting to view points from a distinct view. We’ve to investigation more on this because it looks quite intriguing. A person issue I really do not comprehend though is how anything is associated together.

    • Hi Jessia,

      What do you mean by “associated”? If you mean connection between fat javascript client and server, then the answer is via a REST style interaction.

      Veebs

  2. Hi Veebs,

    Thanks for posting this; it adds to what I know about SproutCore.

    Scott

  3. I just started a new project and, after meeting in person with Charles, decided to go down the Sproutcore path vs. another framework for many of the reasons that you posted above. General JavaScript/HTML/CSS is a cinch for me, but learning Sproutcore and sometimes getting their idioms to “just do what it should (TM)” make me pull out my hair. After stumbling on your samples today, I think I’m going to have less hair loss over the next week. Thank you helping to decrease the learning curve of this old nerd.

Leave a Reply


[ Ctrl + Enter ]