3 ms·
I evaluated both pretty extensively and eventually decided to go with sproutcore. Cappuccino is in many ways more revolutionary and the SC, as it completely th
by necubi 17y ago
I evaluated both pretty extensively and eventually decided to go with sproutcore.
Cappuccino is in many ways more revolutionary and the SC, as it completely throws out any notion of dealing with HTML and CSS. By completely abstracting the presentation some things become easier, but some things become impossible (for example: they cappuccino devs haven't implemented all of CGGraphics, and that makes some things that are trivial in CSS, like rounding the corners of an image, effectively impossible). With SC you're working with HTML and CSS, though most of the HTML is generated by JS. I found the latter approach more flexible, especially if you can target CSS3-supporting browsers.
Both are based on cocoa, though Cappuccino takes its influences much more seriously. I love cocoa but I'm not terribly enamored with Obj-C syntax, so I don't really see why someone would want to take JS's superior syntax and replace it with Obj-C's, as cappuccino has done. Cappuccino also lacks a data store framework, while SC has a very good one.
Finally, SC uses native browser rendering as much as possible, which should make SC apps faster.
That said, I think Cappuccino has a lot of potential, and 280Atlas, a visual editor for cappuccino apps written in itself shows that. As it matures and the basically non-existent docs improve I think it will become increasingly worthwhile.
- boucher 17y agoFor what it's worth, your CSS corners probably won't work in IE. One of the reasons some things are hard in Cappuccino is because they are unreliable in many browsers. We've focused more on cross platform ways of doing things. Of course there are some things we just haven't done yet too. Anything that's possible with HTML/CSS is possible in Cappuccino. There's either a different way of doing it, or you can drop down to native code if you must. The latter is just generally not a great idea. JavaScript is an OK language, but it's syntax is far from superior to Objective-C's. More importantly, syntax is irrelevant. What it lacks are features. Features like code importing, and dynamic message passing, and native classical inheritance. Those features (and more) are available at the language level in Objective-J. Not sure what you mean by "native browser rendering". The docs aren't great, for sure. But one of the advantages of using a proven set of APIs like Cocoa, rather than implement your own untested APIs, is that there's an incredible amount of quality resources out there that are almost completely applicable to Cappuccino. The APIs aren't "inspired by" Cocoa, they are the same, and so many of the books and tutorials are the same.
- jtaby 17y agoFYI, SproutCore implements classical inheritance in Javascript.
- richcollins 17y agoWhich is unfortunate on both accounts :-(
- necubi 17y agoSorry if I was unclear by my remark on rendering. What I was referring to was Cappuccino's habit of rendering a lot of stuff using canvas, which SC (at least natively; obviously developers can use whatever presentation layers they want) does not. SC also relies on the browser to do much of its work–from resizing to animation—without using any JS. As for the relative merits of Obj-c and JS, I supposed that's a matter of taste. As mentioned above, SC does implement classical inheritance, but I actually find prototypical inheritance to be very powerful. In general I find my Obj-J (and -C, for that matter) code much more verbose than my JS. Perhaps that's my failure, but still it's something to keep in mind.
- boucher 17y agoCappuccino doesn't render anything in Canvas, with the possible exception of a couple minor pieces of the tableview.