views:

8216

answers:

6

I'm about to build a web app and I would like to use either SproutCore or Cappuccino. Only thing is, I can't figure out which one to use...

I've been reading about them, and they seem to share the same goals (MVC on the client, with a thin REST server). I understand that they differ in their implementation (Obj-C vs JS), but I'm having a lot of trouble quantifying the differences and weighing them.

Can I get some help solving this dillema?

+10  A: 

Dilemma indeed it is.

I personally took a chance on Cappuccino, but that is because I am currently involved in objective-c, and having the theoretical possibility to plug my code (with some adjustments) into a javascript/web environment - is tempting.

Anyway, are you doing mac development, you will be up a running in a matter of hours, but I'm sure you have already figured that out by yourself.

You will (in Cappuccino) have a very nice abstraction to work with. I think that matters.

cschreiner
+2  A: 

Yeah...I feel like if I go with SproutCore, I would have to spend some more time learning the quirks of Javascript, as opposed to Objective-J.

Since you've spent time in Obj-J...How close is it to Obj-C and how different is it than Javascript? (I ask you because I want someone's real-life experience...not what the wiki says :) )

Majd Taby
+2  A: 

The level documentation for both projects is appalling.

However, since SproutCore is now supported by Apple, and Apple are rather good at providing good documentation, I expect this to change.

Cap, however has a released real world app (280Slides) which you can have a play with to get an idea of how you should structure your application. So at this point its probably easier to get started with Cap especially since you know objective-c.

Be aware that for both projects, the number of out-of-the-box controls are very limited, so you'll find yourself implementing your own. Also, SproutCore is ugly by default!

Personally, I think that the Cap approach is excellent.

You don't need to write any HTML or CSS. It genuinely feels like you are writing a desktop app and by coding in objective-js you're essentially abstracted from the browser.

However, I'm not a fan of the language itself. I would have preferred it if they had stuck with pov JavaScript.

I understand that Mac developers will like the potential portability of the code you create with Cap however since Apple go bust in 2012, I don't really see the point :)

ListenToRick
+9  A: 

It actually isn't that much of a dilemma. It boils down to a simple question:

Do you have experience with Cocoa (Objective-C)? (Or alternatively, do you plan on using Objective-C heavily in the future by developing for OS X or iPhone?)

If so, choose Cappuccino. If not, choose SproutCore.

There is no reason to put your project behind from the start by trying to learn Objective-C and at the same time, all of the quirks and novelties of web applications and a new framework.

Mike
+1  A: 

I tried both and I must confess the two need more improvement. Just to add my points :

Sproutcore pros: - standard JS/CSS/HTML web development - Sponsored by Apple, may be better for the future cons : - Bad documentation - Not so much abstraction compared to Cappuccino

Cappuccino pros: - Objective-J (no web technologies involved, no CSS...) - Complete abstraction cons - Bad documentation - need to learn Objective-J (not so difficult) - Objective-J suck for layouts! see my post http://snurl.com/awfu2

yogsototh
A: 

Maybe take a look at JavaScriptMVC (http://javascriptmvc.com).

Justin Meyer