Wednesday, September 15, 2010

Rich client web apps: playing with SproutCore, jQuery, and HTML5

In the last 14 years I have worked on two very different types of tasks: AI and textmining, and on (mostly server side) web applications. Putting aside the AI stuff (not the topic for today), I know that I need to make a transition to developing rich clients applications. This is not such an easy transition for me because I feel much more comfortable with server side development using Java, Ruby on Rails, Sinatra, Merb, etc. On the client side, I just use simple Javascript for AJAX support, HTML and CSS.

As background learning activities I have been working through Bear Bibeault's and Yehuda Katz's jQuery in Action and Mark Pilgrim's HTML5 books. Good learning material.

When I read that Yehuda Katz is leaving Engine Yard to work on the SproutCore framework I took another good look at SproutCore last night, worked through parts of the tutorial with Ruby + Sinatra, and Clojure + Compojure server backends. I find Javascript development to be awkward, but OK. I need to spend some time getting setup using IntelliJ on both jQuery and SproutCore learning projects. If anyone has any development environment suggestions, I am listening.

4 comments:

garyblomquist said...

You might want to take a look at GWT if you haven't already.

Mark Watson, author and consultant said...

Hello Gary,

I have tried to get into GWT at least twice, but never found it as convenient/agile as Rails. I like the SproutCore idea of splitting off the client and server portions of web apps, but I am not very experienced with it yet so this may be a short experiment.

Marco Fabbri said...

For what concerns TDD, automation and (eventually) continuos integration I suggest you to have a look at JsTestDriver, it's pretty neat stuff.

Mark Watson, author and consultant said...

Thanks Marco, I just bookmarked JsTestDriver and looked through the wiki. I have to admit though that I never use Hudson or any other continuos integration server unless someone else sets it up. RSpec and JUnit tests are good enough for what I do.