Cappuccino 0.6 Released(cappuccino.org)
cappuccino.org
Cappuccino 0.6 Released
http://cappuccino.org/discuss/2008/12/11/cappuccino-06-available-today/
20 comments
Did you see this previous blog post? It talks a little about the "why":
http://cappuccino.org/discuss/2008/12/08/on-leaky-abstractio...
http://cappuccino.org/discuss/2008/12/08/on-leaky-abstractio...
That was the major "why" I saw.
What kind of technical information are you looking for? There are tutorials and documentation for learning how to use Objective-J and Cappuccino on the site.
If you're looking for details on how we built it, there best available information is the source code :). I don't believe we've published a lot of in depth material on specific technical developments, though if I had the time I think it would be a great thing to do.
If you're looking for details on how we built it, there best available information is the source code :). I don't believe we've published a lot of in depth material on specific technical developments, though if I had the time I think it would be a great thing to do.
"best available information is the source code"
That's what I was afraid of :-)
I'm not building a big serious web app, so I have no real reason to learn Cappuccino that deeply. I also have no end of curiosity, so I am explicitly avoiding downloading the source code for fear of the time sink that would cause.
I was hoping for a blog post or two detailing some of the techniques and machinery involved with creating the compile-free Objective-J constructs. It would also be really interesting to hear what sort of effort was required in porting Cocoa. I'm not looking for "talk to me like I'm a 3 year old". I'm looking for "here's the gist of it", hacker to hacker. From where I am sitting now Objective-J is a pretty freaking impressive magic trick. I'd just like a peek behind the curtain, but I don't really want to see the schematics.
I'm sure you guys are even busier than I am, but if you do get a spare moment, I'd really appreciate it if you shared. I think it would probably also drive adoption. If it seems like an impressive magic trick to me, it probably seems like evil black magic and sorcery to others.
That's what I was afraid of :-)
I'm not building a big serious web app, so I have no real reason to learn Cappuccino that deeply. I also have no end of curiosity, so I am explicitly avoiding downloading the source code for fear of the time sink that would cause.
I was hoping for a blog post or two detailing some of the techniques and machinery involved with creating the compile-free Objective-J constructs. It would also be really interesting to hear what sort of effort was required in porting Cocoa. I'm not looking for "talk to me like I'm a 3 year old". I'm looking for "here's the gist of it", hacker to hacker. From where I am sitting now Objective-J is a pretty freaking impressive magic trick. I'd just like a peek behind the curtain, but I don't really want to see the schematics.
I'm sure you guys are even busier than I am, but if you do get a spare moment, I'd really appreciate it if you shared. I think it would probably also drive adoption. If it seems like an impressive magic trick to me, it probably seems like evil black magic and sorcery to others.
[deleted]
I found a lot of the copy on the site was geared toward people very familiar with javascript and js frameworks, and that a lot of assumptions were made about the skill level of your visitors.
I have been doing web app dev for quite a while now and never took time to learn javascript outside of using tutorials and jquery.
What are the requirements or good-to-knows before beginning to learn objective-j? Also, more tutorials on working with rails would be nice.
I have been doing web app dev for quite a while now and never took time to learn javascript outside of using tutorials and jquery.
What are the requirements or good-to-knows before beginning to learn objective-j? Also, more tutorials on working with rails would be nice.
Since Objective-J is JavaScript (plus a few features) then by learning one you'll learn a good portion of the other.
All JavaScript code is valid in Objective-J, but typically you won't use the prototypal inheritance stuff, since Objective-J adds classical inheritance (which is entirely what Cappuccino uses). Likewise, a large portion of the Objective-J language is just JavaScript (all of the operators, variables semantics, built in types and functions, etc).
The major additions are code importing (@import <FrameworkName/FileName.j> or @import "relativePath/FileName.j"), class definitions (the "@implemention" keyword and method declarations like "-(ReturnType)methodName:(ArgumentType)argument"), and method calls/message sending ("[myObject methodName:argument]")
My suggestion for learning Objective-J would be to pick up Crockford's book, "JavaScript: The Good Parts", and skip the parts about inheritance (unless you also want to learn that). It's a short book anyway. The nice thing about this particular book for learning Objective-J is it only covers the language, not the browser's APIs like the DOM, which you should never really need to know when using Cappuccino. (though I would recommend "JavaScript: The Definitive Guide", aka "The Rhino Book", as well to anyone doing JavaScript in browsers)
Once you have a feel for the core of the JavaScript language then it's just a few more syntax additions for the main features of Objective-J I listed above.
All JavaScript code is valid in Objective-J, but typically you won't use the prototypal inheritance stuff, since Objective-J adds classical inheritance (which is entirely what Cappuccino uses). Likewise, a large portion of the Objective-J language is just JavaScript (all of the operators, variables semantics, built in types and functions, etc).
The major additions are code importing (@import <FrameworkName/FileName.j> or @import "relativePath/FileName.j"), class definitions (the "@implemention" keyword and method declarations like "-(ReturnType)methodName:(ArgumentType)argument"), and method calls/message sending ("[myObject methodName:argument]")
My suggestion for learning Objective-J would be to pick up Crockford's book, "JavaScript: The Good Parts", and skip the parts about inheritance (unless you also want to learn that). It's a short book anyway. The nice thing about this particular book for learning Objective-J is it only covers the language, not the browser's APIs like the DOM, which you should never really need to know when using Cappuccino. (though I would recommend "JavaScript: The Definitive Guide", aka "The Rhino Book", as well to anyone doing JavaScript in browsers)
Once you have a feel for the core of the JavaScript language then it's just a few more syntax additions for the main features of Objective-J I listed above.
Awesome job guys. This is fantastic.
I'm curious about payload. Looked to be close to 160K for the "runtime"? How is the objective-j parser done?
I'm curious about payload. Looked to be close to 160K for the "runtime"? How is the objective-j parser done?
Objective-J (the "runtime") is 76k, 13k gzipped (which is smaller than jQuery).
The two frameworks that make up Cappuccino weigh in at about 800k uncompressed, and about 150k total compressed. It's not a trivial amount, but its equally not very unusual. We're also not adding any html or css size to that, since you don't use either when using Cappuccino.
The two frameworks that make up Cappuccino weigh in at about 800k uncompressed, and about 150k total compressed. It's not a trivial amount, but its equally not very unusual. We're also not adding any html or css size to that, since you don't use either when using Cappuccino.
So this is sort of like Flex, but uses JavaScript modeled after Objective-C?
Edit: I'm checking out the demos... this is sick. Silverlight won't kill Flash/Flex, Cappuccino will.
Edit: I'm checking out the demos... this is sick. Silverlight won't kill Flash/Flex, Cappuccino will.
This is just JavaScript, you know.
Here's the Flickr demo shown on the Cappuccino site reimplemented using jQuery, with improvements to boot: http://www.brokendigits.com/2008/09/05/cappucinos-flickrdemo...
Here's the Flickr demo shown on the Cappuccino site reimplemented using jQuery, with improvements to boot: http://www.brokendigits.com/2008/09/05/cappucinos-flickrdemo...
[deleted]
Um... I think GWT will kill them all.
http://google-code-updates.blogspot.com/2008/12/google-web-t...
http://google-code-updates.blogspot.com/2008/12/google-web-t...
[deleted]
I tried running 280slides on IE 7.0 and it loaded 100% and waited for 15 seconds and nothing
Then I tried hitting refresh and hanged the instance. When I checked the memory it was leaking.
*update: if it's helpful, the exact version is 7.05730.11 running on Windows x64
Then I tried hitting refresh and hanged the instance. When I checked the memory it was leaking.
*update: if it's helpful, the exact version is 7.05730.11 running on Windows x64
hmmm... I tried the 280slides demo, it seems only for English. I can't type in Japanese and Chinese.
Probably because it's not trivial to support i18n in Cappucino?
Try GWT, it has wonderful i18n support.
Try GWT, it has wonderful i18n support.
It's actually a 280 Slides issue, not a Cappuccino issue. The text editor (custom for 280 Slides) doesn't support entry of non-Latin characters.
However, if you copy and paste from another application you'll see the underlying framework handles it fine.
However, if you copy and paste from another application you'll see the underlying framework handles it fine.
This has nothing to do with the framework. Javascript supports unicode characters, and so anything built on top of it for displaying strings will too.
The reason 280 Slides doesn't do this correctly is because it implements its own text editor by intercepting all keypresses. Unfortunately, there's not enough information in the JavaScript key event mechanism to properly handle internationalization this way. We'll eventually be removing this custom text editor in favor of a more standard approach.
Separately, while there's not currently anything built in for localization in Cappuccino, there will eventually be the same system that exists in Cocoa, which makes it trivial to do "i18n" with little or no actual coding.
The reason 280 Slides doesn't do this correctly is because it implements its own text editor by intercepting all keypresses. Unfortunately, there's not enough information in the JavaScript key event mechanism to properly handle internationalization this way. We'll eventually be removing this custom text editor in favor of a more standard approach.
Separately, while there's not currently anything built in for localization in Cappuccino, there will eventually be the same system that exists in Cocoa, which makes it trivial to do "i18n" with little or no actual coding.
Unfortunately, I haven't really found any deep technical information about Objective-J or Cappuccino. I've read about the what and the why, but I'm really curious about the how. Anyone know of any resources?