Slashdot Log In
Cocoa-Like JavaScript Framework Announced
Posted by
Soulskill
on Sun Jun 29, 2008 12:03 PM
from the more-coffee-names dept.
from the more-coffee-names dept.
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."
Related Stories
This discussion has been archived.
No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Full
Abbreviated
Hidden
Loading... please wait.
Podcast interview with the developers (Score:5, Informative)
We always find fault on /. (Score:3, Interesting)
Feh (Score:2, Interesting)
I've played with and written interpreted langaugesand for decades I've hels the fervent belief that the further away from C you go the worse the bloat.
And "hello world" is how many bytes in this pig?
Re:Feh (Score:4, Interesting)
That's probably true, but sometimes optimizing for programmers' convenience is more important than reducing every ounce of bloat to the bare minimum. RAM is cheap enough and reusable; programmers' time isn't either.
If you're not trying to write a high-performance scalable computing cluster app, or an operating system, or a fancy computer game, then bloat really isn't an issue.
Parent
Re:Feh (Score:5, Insightful)
" If you're not trying to write a high-performance scalable computing cluster app, or an operating system, or a fancy computer game, then bloat really isn't an issue."
Spend 20(+) years fixing other peoples code then get back to me on that one.
Parent
Re:Feh (Score:4, Insightful)
Did you even try the demo? On my dual-core Opteron with 4 gigs of RAM it was *painfully* slow. I can run Windows in Qemu, then run Office inside of that, and it would seem really fast compared to their demo. A little bloat here and there isn't an issue. When an app is so bloated and slow that it's unusable for anything practical, it's a real problem.
If I wanted to feel like I was building a presentation on an ancient 286, I would just dig one out of my closet
Also, until you're volunteering to buy the RAM for me, you can kindly shut the fuck up about how cheap it is. Thanks.
Parent
Re:Feh (Score:4, Insightful)
What browser I'm using shouldn't be relevant.
Well, it does. The "300% increase in javascript speed" browsers like to advertise with new versions actually means something. It's akin to a site using SVG or CSS3--except it does work with every browser, it's just slow.
Parent
Re: (Score:3, Insightful)
Re: (Score:3, Insightful)
That's probably true, but sometimes optimizing for programmers' convenience is more important than reducing every ounce of bloat to the bare minimum.
For prototypes yes. For most other things no. Depends on what you mean by a bare minimum though.
RAM is cheap enough and reusable; programmers' time isn't either.
Neither is the user's time. And there are usually a lot more users than programmers.
If you're not trying to write a high-performance scalable computing cluster app, or an operating system, or a fan
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.
Parent
Re:Feh (Score:4, Insightful)
>>I agree with you: Javascript is not technically the best solution to write such an application
And how exactly does JavaScript fall short?
A lot of programmers look down on it because of its poor start but in its current state its a perfectly capable programming language, even without superfluous v2 features. The biggest problem with web apps is supporting IE 6.
Parent
Re: (Score:3, Informative)
Re:Feh (Score:4, Insightful)
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).
Why?
Because JavaScript doesn't (yet) support classes?
If that is the answer, then with all due respect I thoroughly disagree. JavaScript is an OO language, it just uses differential (or prototype-based) inheritance, rather than class-based inheritance. It's quite possible to write fully featured GUI apps using a language that adopts a differential inheritance model. I did that for many years on the Newton, using NewtonScript.
The Newton OS APIs (object prototypes) that went with NewtonScript worked just fine, and provided a GUI that was in a number of ways more advanced than Cocoa. Gave very decent performance on an extremely limited platform.
Personally I have yet to be convinced of the wisdom of including classes in JavaScript2 - it feels unnecessary to me.
Parent
Re:Feh (Score:4, Funny)
Quick, beam me up. I want to live in your floating habitats too.
Parent
Re: (Score:3, Interesting)
This framework is all in javascript and locally executed, however; with HTML5 local storage you should be able to run it as well as any server app once it's loaded.
If you haven't tried the demo you should, it's really quite superb, just the initial load is rough now that it's been slashdotted.
Re: (Score:3, Funny)
So, in other words, I can download this app and run it locally? For free (and Free)? Wow! That really sounds just ... like ... openoffice?
The funny thing is, OpenOffice takes about the same amount of time to load.
(At first, the above sentence was intended as a joke; then I realized, sadly, that it was actually true -- at least before the site got Slashdotted.)
Re: (Score:3, Interesting)
If you have the google gears plugin installed, google docs works offline. Offline support is not an inherent advantage of native apps. The only truly insurmountable advantage native apps have over web apps is performance, but with today's vastly overpowered multi-core machines, performance has faded into the background, and it's going to become less relevant as the browser upgrades get rolled out (javascript 2, faster layout engines, hardware-accelerated graphics api's, ...).
Re:Feh (Score:5, Informative)
Parent
Re: (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!
Caffeine Theme (Score:5, Funny)
Re: (Score:2, Informative)
And where are my mod points when I need them!
+1 Funny (Unofficial). FurtiveGlancer FTW.
Re:Caffeine Theme (Score:4, Funny)
Parent
Re: (Score:2)
Re: (Score:3, Informative)
You'll never know until you try one. Good luck ordering one at Starbucks, Caribou, etc.
Mocha Theme (Score:4, Funny)
You are missing the acronym that best describes a combination of Cocoa and Java(Script):
CAFE MOCHA - Cocoa-Alike Framework Extension Mirroring Objective C for HTML Applications
Parent
Damn ... (Score:5, Funny)
Re:Damn ... (Score:4, Funny)
Don't you people have better things to do?
*holds up mirror*
Parent
RTFA (Score:2)
Anyone even remotely interested should read the article. There is some interesting discussion below it in the comments section between commenters and the developers.
Taking bets (Score:5, Insightful)
Who wants to bet how long it will be before Google buys up the guys who made that presentation app?
It could certainly be a bit faster, but it's still damn impressive.
Frighteningly good demo (Score:3, Insightful)
This is a seriously good piece of software.
If they can do the same for Word and Excel then MS is going to be out of business.
I've Got It! (Score:3, Funny)
Too slow! Already taken. [continuent.org]
Will web apps eventually dominate software? (Score:3, Insightful)
Traditional web apps are slow, because of all the chatting with a server. But well made AJAX, and frameworks like this one and OpenLazlo, http://www.openlaszlo.org/ [openlaszlo.org] are changing that.
Makes me wonder... Maybe soon(ish) a lot of apps which are now strictly in the desktop domain will really be viable through a browserlike environment?
I've been quite skeptical myself, but every time I see something like this it makes me wonder if I'm just not seeing the true possibilities...
Wow!! Just damned Wow!! (Score:4, Funny)
Just WOW!!
As someone who is just learning Cocoa, and finding it though since it's my first real programming language, I am amazed at what 3 guys in a college dorm have cooked up.
Apple need to drop that spruotCore thing like a rock and make happy with these guys. I read that they worked for Apple before spinning this out...
Perhaps if they get offered much better paid positions with Apple they might come back. This is some seriously cool shit they're doing. That web-app required no knowledge at all of HTML & CSS!!
You could even probably write code for OS X and "port" it to the web in minutes!! If Apple get in on this, they could seriously bring about a shift from Flash and horrible media plugins like that silverlight crap, to something everyone can use, even iPhones and Blackberry's.
Words fail to describe how awesome that demo app is.
I was dreading getting to the point of having to learn me some java so I can do web-apps eventually. They've actually managed to make me interested!! Programming is hard and I'm finding it tough, but now I really want to master Cocoa and start on Objective-J and Cappuccino.
WAY TO GO!!!!!
should be interesting in combo with XULRunner (Score:3, Interesting)
I've been playing with XULRunner quite a bit lately and though I haven't yet applied it to a "real" application, I have to say it's pretty nice and convenient to be able to design a cross-platform GUI for a local application using HTML and CSS. The trouble of course is that your application looks like a web page. (This is getting less important now that it supports native widgets of course.)
If this is open-sourced in a license-compatible manner with XULRunner, it might make for some very interesting, user-friendly (i.e., pretty), and completely cross-platform local applications.
Reinventing XUL... BADLY (Score:3, Insightful)
Re:Reinventing XUL... BADLY (Score:4, Interesting)
Parent
Impressive, but broken (Score:3, Interesting)
I had a quick go with 280Slides. The interface was impressively slick.
Then I tried to enter some non-English text, and it totally freaked out on me. When I pressed the keyboard combination to switch input methods, 280slides inserted three capital 'A's with acute accents. When I tried to type a simple Japanese phrase, 280slides inserted a single lower-case 'a' with a little circle over it.
This is the 21st century. We live in an increasingly globalised world. Applications that can't handle Unicode and multiple input methods have no place in this day and age. Back to the drawing board, guys, and don't come back till your nice slick interface has some basic i18n features, please.
Re: (Score:3, Informative)
It's a proof of concept. Give them some slack!
Re:Impressive, but broken (Score:4, Informative)
Parent
Re:Impressive, but broken (Score:5, Interesting)
Why would the browser need to tell you about a non-English input method? In my experience of I18N of web apps, this is completely unnecessary, since the input method is invisible to the application (rather like switching keyboard layouts) - all that's needed is for the web app to support Unicode etc. Since JavaScript uses Unicode natively, I can't quite see how 280 North has managed to break Unicode support like this.
Parent
Re:SproutCore - it relies on ruby (Score:5, Informative)
Parent
Re: (Score:3, Interesting)
Where can I download it?
I keep hearing how phenomenal this is, but I can't find it and objective-j.org says 'coming soon'.
Come, don't push a website if it doesn't exist.
Re: (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: (Score:3, Insightful)
After I closed keynote, not thinking, I hit command-n to get one more look and 280 Slides opened it's new presentation theme picker- and for a sec I thought it was keynote.
In the end I say yay for competition!
Re: (Score:3, Insightful)
Re: (Score:3, Interesting)
Re: (Score:3, Interesting)
Re:Impressions (Score:4, Interesting)
As for MFC, it's a total joke compared to what you can accomplish in Cocoa with a fraction of the code and with a result in another league in terms of stability and quality.
I'm not a rabid fanboi or whatever I'll probably get accused of, but after using a number of languages and frameworks over the years (including developing my own general purpose framework in C++ for Mac) I can tell you that in my experience Cocoa is the best there is right now, and that has been the case for a while.
Parent
Re: (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.
Re: (Score:3, Insightful)
I completely disagree with you on how readable ObjC is. I find that embedding the parameters directly within the method names to be extremely concise when trying to figure out what the call will do. Putting the parameter DIRECTLY next to the relevant descriptive text in the method name makes sense.
[containerTarget putElement: anElement intoStorageNamed: storageName];
is much clearer to me in an overview than something like:
containerTarget->putElementIntoStorageNamed( anElement, storageName );
I