Cocoa-Like JavaScript Framework Announced 188
TwilightSentry writes "Ars Technica reports that a group of developers has created an Objective-C-like extension to JavaScript along with a class library mirroring Cocoa. They've used these to release an impressive demo app called 280 Slides. The article notes, 'Whereas SproutCore seeks to "embrace the platform" by giving a Cocoa-like development model for developers already using HTML, CSS, and JavaScript to make a web app, Cappuccino and Objective-J take an entirely different approach. "Since Cappuccino runs entirely on the client, at run time, we're never actually generating HTML or CSS," says Boucher. "When you build an application in Cappuccino, you don't need to ever deal with HTML or CSS. All of your interface is designed in Objective-J and Cappuccino. Cappuccino focuses on application architecture more than anything else, like building applications that know how to save and open documents, or copy and paste. We also built a powerful graphics engine into Cappuccino, so you can make rich applications like 280 Slides."' The developers plan to release the framework and preprocessor as open source. No mention is made of a specific license."
Podcast interview with the developers (Score:5, Informative)
Re:Caffeine Theme (Score:2, Informative)
And where are my mod points when I need them!
+1 Funny (Unofficial). FurtiveGlancer FTW.
Re:Feh (Score:4, Informative)
I agree with you: Javascript is not technically the best solution to write such an application (for now, let's see when JS2 comes out and will be implemented by all major browsers).
It would be much better written with a non-HTML GUI toolkit, but porting all kind of applications to the Web has some advantages that locally executed apps don't have. Thus we have to see if the benefits outweight the downcomes, and for some the "bloat" is acceptable if the application is online, does not need to be installed and so on.
One of the other, not so obvious benefits (imho) of having all kinds of apps online in javascript is that those applications usually are cross-platform, pushing the OS every day a bit more in the background, and forcing windows on less and less people (if you remember the Netscape days, that was exactly the reason Microsoft tried (and succeeded) to crush them - or at least that was what the press was saying at the time). I think most people that run windows still have to run it because of some arcane app that only runs on that platform, and locking that user right in. If this becomes a trend, more and more applications will become cross-platform and less and less users will be forced to use one specific platform. And if that day comes, maybe javascript v3 will become better suited for rich GUI Apps.
Re:SproutCore - it relies on ruby (Score:5, Informative)
Re:Feh (Score:5, Informative)
Re:Caffeine Theme (Score:3, Informative)
You'll never know until you try one. Good luck ordering one at Starbucks, Caribou, etc.
Re:Feh (Score:2, Informative)
Re:280 slides (Score:2, Informative)
Re:Feh (Score:3, Informative)
Re:SproutCore - it relies on ruby (Score:3, Informative)
i was disappointed to find out that SproutCore projects are created with RUBY and that you touch javascript very little, if at all.
You don't need ruby when deploying, and the code you write is javascript. Sproutcore uses ruby to make life more convenient while developing, but it is a pure-javascript framework.
Re:Stolen graphics? (Score:2, Informative)
Re:Impressive, but broken (Score:3, Informative)
It's a proof of concept. Give them some slack!
Re:Impressive, but broken (Score:4, Informative)
Re:Feh (Score:3, Informative)
I assume you're one of the authors? Just thought I'd add a comment that the performance must be fairly variable between OS/browsers at the current stage. I have absolutely no complaints under Safari and Webkit nightlies (which stands to reason I suppose)--seems fast.
Win2k3 IE7 took substantially longer to load initially, but then seemed fairly fast (not quite as fast as safari it seems)
Win2k3 FF2 was in between IE7 and Safari.
Really awesome app--I'm inspired to finally pick up some more Cocoa!
Re:Impressions (Score:3, Informative)
It's not new (it predates Java), and it wasn't implemented by Apple. It is technology that Apple inherited when they bought NeXT Computer, and it is arguably one of the most important factors in the resurgence of the Mac platform.
You're just not familiar with Smalltalk syntax yet. I went through the same process; it's a seemingly big deal that melts away pretty quickly. You'll come to appreciate the syntax once you start passing around method selectors like textView:willDisplayToolTip:forCharacterAtIndex:. Of course, you don't pass around method selectors in C++ and Java, but it's absolutely key to way things are done in Cocoa. The big stumbling block, especially for C++ developers, is to understand Cocoa design and how to take advantage of Cocoa's and Objective-C's unique features. You have to unlearn C++, and if you happen to like (or think you like) C++ then that can be a frustrating but ultimately rewarding and enlightening process. And then you'll understand why someone would create "Objective-J" for Javascript.
It was Mac developers who ultimately decided to adopt Cocoa. Back in 2000 one of the open questions with OS X was whether developers would adopt Cocoa and Objective-C. Apple offered their C-based Mac APIs for existing Mac developers, they offered Cocoa bindings for Java developers, and they offered plain old Cocoa. Despite its learning curve, Cocoa eventually won over the existing Mac developers. Most importantly, Mac users have come to demand Cocoa applications and are generally hostile towards most Carbon apps (as well as Qt and Java Swing apps, of course).
I can't help but think of .NET in same context, a development platform I generally like. Will Windows users ever demand .NET applications in the way Mac users demand Cocoa applications? (Windows users will never demand WinForms apps, but if Windows developers embrace WPF, another unique approach to GUI development with a significant learning curve, then I think the answer will be yes).