Pacific Connection(英語)

Sipping Cappuccino at 280 North

The Silicon Valley dream of young entrepreneurs starting their own company is alive and well at 280 North. Named after the highway that travels the hills above Northern California’s technology center, 280 North was launched by its three co-founders while they were still college students-which wasn’t all that long ago. The company has since developed its own language, Objective-J, a re-implementation of Objective-C written in JavaScript, and Cappuccino, a framework written in Objective-J for building Web-based applications. Cappuccino is now an open source project . The partners have used this foundation to build an application, 280 Slides, a free Web-based slide presentation program that accepts PowerPoint files. 280 Slides serves both as a proof-of-concept for Cappuccino and a potential money maker.

280 North’s ability to turn a profit is also of concern to Paul Graham of the venture capital group Y Combinator, which has provided both early funding and mentorship. Graham has written books on Lisp, and he co-founded Viaweb, which was later sold to Yahoo! When he first heard about 280 North, the tip-off was not so much the technology as the group’s raw programming talent. ⁠This is a lot of how Silicon Valley works: there is a lot of behind-the-scenes chatter. You hear: ⁠Hey, these guys are good.⁠⁠ That was the case with 280 North: they seemed not only to be good programmers, but have other qualities that are really useful in a startup. They had really good sense of design, and they were extremely determined, which is important. To be a good founder you need to keep your morale up in tough situations. We also liked that they were bold enough hackers that they were not just writing applications, but building an application platform.⁠

Like 280 North, Y Combinator is an example of America’s ever-evolving technology culture. The venture capital firm migrates like a bird, spending the summer months in Cambridge, Massachusetts, the winter in the Silicon Valley. Newly funded companies are expected to work out of either location for three months: the New York Times called Y Combinator “a hatchery for replicant hackers.” The firm funds companies in the earliest stages, rarely investing more than $20,000 for a small stake of the company. “We’re like first gear,” Graham says.

Graham thinks that 280 North is essentially following Microsoft’s model of build your own development platform, then build applications on top of it. The modern twist is that the platform, Cappuccino, is open source. The broader idea behind Cappuccino-Web-based applications that run via the browser-is also being pursued by more established companies, including Adobe and Google. But Cappuccino’s closest rival is SproutCore, another open source web application framework, which employs HTML, CSS and JavaScript, whereas Cappuccino is strictly about JavaScript. SproutCore picked up momentum when Apple used it for its MobleMe data synchronization program. SproutCore developer Charles Jolley has argued that the most successful frameworks ⁠embrace their platform instead of trying to hide it,⁠⁠ whereas 280 North talks about the reduced learning curve from not having to go beyond JavaScript.

The rivalry seems friendly enough, and ultimately, Cappuccino and SproutCore may both attract separate followings who are each pursuing the same goals. Ryan Carson of the UK’s Carsonified wrote that Cappuccino and SproutCore collectively represent a shift away from the client-server model, enabling asynchronous, offline, web applications to be launched right inside the browser, yet can work online or off. ⁠And even more interesting is this: if you use Cappuccino, those apps will automatically look and behave like OS X native desktop apps-with zero learning curve on the developer’s side.⁠⁠ Developers can concentrate on building applications ⁠instead of trying to re-invent basic UI functionality every single time. You might be saying ⁠Duh. You can already do this with [Adobe] AIR or Silverlight. What’s the big deal?⁠⁠ The answer, Carson says, is that these technologies are open source. ⁠I think this is very important as it ensures the ideas aren’t directed by one specific company or organization (and their financial goals).⁠

As for Graham, he has no illusions that all software will eventually be built on top of Cappuccino. ⁠But pretty much all software will be built on top of something like Cappuccino. Even Microsoft is gradually and grudgingly moving their applications to Web-based versions. All software data is going to live on servers and you’ll have some kind of application that is dynamically updated, and sort of runs on your computer and sort of runs on the server.⁠

That’s what 280 North’s three partners-Ross Boucher, Francisco Tolmasky and Tom Robinson-have in mind for Cappuccino: a framework for building applications that use the client and server to best advantage without relying completely on either one. Boucher, who graduated the University of Southern California in 2006, worked for Apple on back-end server technology for iTunes. Tolmasky graduated USC a year later and worked on iPhone development. Tom Robinson, who graduated in January 2008, went straight from college to entrepreneurship.

Robinson spoke with me by phone:

How did 280 North get started?
We all met at USC as undergraduates, all majoring in computer science. After graduating, my colleagues, Francisco Tolmasky and Ross Boucher, worked at Apple for a short time. I just finished school last year. But we actually began the business while we were in college with the idea of making it easier to write Web applications. Our background was mostly in building desktop applications running on Macs OS X. But when we tried to do similar things on the Web, we found it a lot harder to create real applications in HTML and CSS. It’s easy to make dynamic Web pages, but when you try to go beyond that, the model breaks down.
Isn’t this already a crowded space?
Of course there are technologies like Java and Flash that do this, but we wanted to do something with JavaScript that didn’t require any plug-ins. We also wanted to push as much application logic as possible to the client while still using the server to deploy the application and store data-as opposed to server-side web application technologies like Rails. The advantage is that you can access your application anywhere. Users don’t need to download any special plug-ins or worry about what version of Flash or Java they have, and they get instant updates. For the developer, the main benefit of Cappuccino’s being interpreted on the client side is that you don’t need to keep recompiling for every change you make. You just refresh your browser and the new version works.
You wrote Cappuccino in your own language: Objective-J. How did that project come about?
We started out by trying to create a tool to build dashboard widgets-a widget being a small application traditionally written in HTML and CSS. But soon after we started, Apple came out with Dashcode, which generates JavaScript code and did exactly what we were trying to do. Dashcode isn’t widely used, but it’s bundled with Xcode in Leopard-so it’s free. So we broadened our focus, realizing this technology would be useful for any sort of Web application, not just dashboard widgets.
We began by adding features to JavaScript. For example, in JavaScript there is no easy way to do classical inheritance-which is the main thing that Objective-C added to C. So our goal was to add the same kinds of object-oriented features, but put them on top of JavaScript. Ultimately, we decided to go all out and try to re-implement Objective-C entirely in JavaScript. We didn’t have any of the original Objective-C code, of course, so we wrote it from scratch. That project became Objective-J-⁠J⁠⁠ as in JavaScript. Objective-J code is converted to JavaScript using the browser’s own interpreter.
How does that work?
Objective-J adds a few syntax enhancements to JavaScript, which won’t be understood by the interpreter. So we preprocess the code. We convert Objective-J code, which is mostly JavaScript, into pure JavaScript. The process is seamless to the developers. There are no explicit compile steps; the conversion happens automatically when it loads into the browser.
How close is Objective-C to Objective-J?
It’s very close. If you know C and JavaScript, then it’s just a matter of understanding the differences between them. If you already know Objective-C, it’s not too difficult to learn Objective-J.
For some developers, the steepest part of the learning curve will be the Cappuccino framework, which is a re-implementation of the Cocoa APIs built with Objective-J. Those APIs began with Nextstep and OpenStep-which became Cocoa when Apple bought NeXT. But there are also some other implementations of the Cocoa APIs, such as the open source GNUstep. There’s also Cocoatron, which is essentially Cocoa on Windows. Cappuccino is Cocoa on the Web. It provides developers with a solid foundation of technologies to develop very rich web applications. It gives you features like undo, copy/paste, document management and better graphics, together with a rich set of UI widgets.
Cappuccino has been mostly compared with SproutCore. Are you saying Cappuccino’s advantage is in a faster learning curve?
Cappuccino’s learning curve is minimal for anyone who already knows Cocoa and Objective-C, but it is substantial for anyone who doesn’t-though I wouldn’t say it’s any more so than learning HTML, CSS, and JavaScript for multiple browsers. CSS, especially on different browsers, takes a while to master.
Are you suggesting that SproutCore and Cappuccino are really for two different types of developers with different kinds of background?
Yes-they both have similar ideas and goals. SproutCore still uses HTML and CSS, whereas when you write a Cappuccino application you never touch HTML or CSS. That’s an advantage for a lot of people, but if you are used to HTML and CSS, you might prefer SproutCore.
Whereas if you have an Apple development background, Cappuccino sounds like it might be a better fit.
Definitely. Even if you don’t, we still think the benefits of it are worth learning it if you are trying to make the sorts of applications that Cappuccino is useful for.
When did you decide to make Cappuccino open source?
We always knew we wanted to go open source, but we just weren’t sure when to do it. We only licensed the framework under the LGPL [GNU Lesser General Public License] in late summer. This is a very young open source project.
Is there an open source development community forming around the project?
Yes. There’s a pretty significant sized IRC chat room and mailing list that we are always hanging out in and helping people out with their problems. It gets pretty decent traffic.
There’s been quite a bit of work on JavaScript engines lately. Does that benefit the overall value proposition of Objective-J and Cappuccino?
Our overhead is fairly minimal, but it’s always great for us to have faster engines-our applications will run faster for free. Anybody who uses the new browsers gets a speed boost for free. The latest versions of Firefox and Safari are our recommended browsers.
Have you seen any boost in Google’s Chrome browser?
Chrome is also very fast, but is not, that we’ve seen, significantly faster than Safari or Firefox.
Besides 280 Slides from you, I’ve haven’t seen any other applications developed under Cappuccino. What’s in development?
There are not a lot of other applications out there right now, just because this is such a young project. But there are a few people in the open source community that are beginning to share what they are working on. We’ve seen a media player similar to iTunes, a Twitter client, and a dashboard-type home screen with a bunch of widgets. If you are doing something very simple, the overhead of Cappuccino is probably not worth it. The application needs to be sufficiently complex in order to benefit.
What about porting apps to the iPhone?
In principle, that should work because the iPhone’s browser is based on the Webkit open source browser engine. We’re still working on optimizing Cappuccino for that very limited memory, but there is definitely potential for Cappuccino on iPhone applications.
What’s the revenue model for 280 North? Do you plan to make money by developing more apps?
We’ve got several things in progress that I can’t talk about, other than to say that we think 280 Slides, which is free, has the potential for a premium, fee-based version. There are a lot of features we could add and charge for. That’s one option. Another is in building a business around Cappuccino.
You and your colleagues are part of the newest generation of Silicon Valley entrepreneurs. What’s that like?
It’s a lot of fun and a lot of hard work-but its great being here. Pretty much every week we’re going to some sort of event, whether it’s an entrepreneur meet-up or a technical talk or parties with different start-ups. Silicon Valley definitely seems like the place to be for start-ups, especially young start-ups. Y Combinator also provided a great network of people doing interesting stuff.