Cappuccino - The Node.js Project
cappuccino-project.org
cappuccino-project.org
Sigh. No prizes for guessing what will happen in two years' time when node.js is no longer the shiny new hotness.
You can't blame them for not staying with narwhal. And I'm sure you are not suggesting that they should switch back to ant or rake.
Honestly, I don't understand the unnecessary snarkiness of some people on this site.
I wonder if Cappuccino has considered using make. make is maintained. make works on Windows. make is unglamorous but it works and it has worked for decades.
* nmake, bsdmake, and gnumake are all slightly incompatible with each other if you want to do something smart.
And yes, we tried Nailgun (http://www.martiansoftware.com/nailgun/) but I don't recall why that didn't work out.
Perhaps there were better solutions, just pointing out it wasn't completely NIH syndrome.
Reflexive negativity is a problem, pg is aware of it. Hiding comment karma score was one attempt at mitigating it, hopefully he's got some more ideas as well. Definitely one of those big problems, with the Internet in general, looking for a solution.
It's merely pointing out what seems to be a trend with this project and the build systems it uses. If there's any negativity involved, it's with how much time and effort (and donations...) the Cappuccino crew wastes with all of this repeated switching to the most-hyped software of the day.
If they hadn't switched people would be complaining that they use such an outdated system as jake.
There are benefits when the entire community standardizes on something. I know I will frequently pass looking at a Python module that won't easily fit into my build system, which, conveniently, is the build system mostPython scripts use.
The fact that Cappuccino pre-dated the de facto standard should not be held against them.
Do you honestly think there will be anything out in the JavaScript world that will replace node.js within the next 2 years?
Please think before you snark.
The project began with a Java-based system to a Ruby one to a JavaScript one. I appreciate things weren't as developed back in the day, but it appears the project uses what's best, regardless of the language. That, to me, is the epitome of being language agnostic and it's not a bad thing.
Works on Linux, Mac, Windows, BSD, probably others.
Language-agnostic (and build-system agnostic) so if your project ends up depending on bindings to a specific version of libjpeg or some other C library, you won't be stuck. Likewise if you have perl/ruby glue scripts in your project (which is bound to happen), their dependencies can be properly modeled too.
make etc will realise a build target doesnt need recompiled because nothing has changed, this lets you recompile fairly large projects where only a single file has changed reasonably quickly
The lack is not a great reason to write yet another build system.
I believe the lack of conditional execution as a result of the kind of tasks javascript programmers encounter. I'm currently building a 125k sloc js app and the most expensive step (minification) takes less time than firing up the jvm on my machine and a clean build is 4s total. There are potentially more expensive things a build system could do but I think that's fairly representative and can see how saving a second or two off a build wouldn't be a priority.
The library implements most CommonJS proposals on top of Node.js using node-fibers making it possible to run RingoJS and Narwhal code on Node as is. I'm using it in production on https://starthq.com/.
http://store-news-app.com/web/
Edit: We made this nearly 2 years ago without updating it. It has some flaws now which should be fixed. :/
Cappuccino is a rather big framework and it needs more time to load on the first run than a web app which is not using Cappuccino. But as I mentioned: I haven't touched this little app for years so there may be something wrong with it.
(Haven't we all sort of agreed that the best way to do UI is largely declarative, and then we wire things together with a selector based library? Why go through the pain of having to write code just to describe static UI resources?)
I've programmed both. Have you?
Let's see if you can tell which of these snippets is GWT and which is Swing (I've renamed JButton to Button to not make it trivially easy for you):
Button b = new Button("Click me", new ClickHandler() {
public void onClick(ClickEvent event) {
//do something
}
});
vs Button b = new Button("Click Me");
b.addActionListener(new ActionListener(){
void actionPerformed(ActionEvent e){
//do something
}
});It's more targeted at a specific niche, the far end of the static website -> web application spectrum. So it's not a large audience, but for its target audience it does it exceptionally well.
I started translating it to English for http://dailyjs.com but never had the time to finish it. If this comment gets enough votes I'll do it ;)
And here I could see some inroads for Cappuccino, if it were targeted in that direction. Lots of companies are making their own business iOS applications, so having browser-based systems with a similar UX and API would be worth it. But to gain enterprise customers, you'd probably need more marketing in that direction and paid support.
...
Registrant ID:mmr-117754
Registrant Name:Domain Administrator
Registrant Organization:Motorola Trademark Holdings, LLC
Registrant Street1:600 North US Highway 45
Registrant Street2:Attn: Law Department
...
When 280North sold to Motorola, they got the domain too.
It seemed clear to me that it needed an Interface Builder equivalent, but Atlas was in perpetual beta and ignored for years, motorola bought them and the 280 north guys went to "hot" startups.
I was really interested in Cappuccino for quite awhile, still would be if it could deliver a working system that was in reasonably good shape. (I'm not saying it can't, but it's apparently being abandoned years ago made me believe I shouldn't invest time into it.)
As you are aware, Atlas is dead and has been for some time. But Cappuccino has always been valuable without it -- virtually everything ever built with Cappuccino was not built with Atlas. Instead, the community poured a lot of resources into improving compatibility with Xcode and Interface Builder, getting many (if not all) of the benefits Atlas would have brought to the table.