Cappuccino (Application Development Framework)
Encyclopedia
Cappuccino is an open source application development framework for developing web applications that look and feel like desktop applications on Mac OS X. Cappuccino was developed by University of Southern California graduates Francisco Tolmasky, Tom Robinson and Ross Boucher, who are also the three founders of 280 North, Inc.
It is primarily targeted towards high-end web applications developers.
Cappuccino consists of two distinct components: a programming language called Objective-J
and an object-oriented library which is the Objective-J port of several of the Cocoa
frameworks, namely Foundation Kit
, Application Kit
, CoreGraphics, and CoreAnimation.
adds traditional inheritance and Smalltalk
/Objective-C
message calls to JavaScript
. Objective-J shares the same relationship with JavaScript as Objective-C shares with C, so it is a strict superset of JavaScript. Programs written in Objective-J are almost identical to their counterpart written in Objective-C and simple Objective-C programs compile correctly as Objective-J programs. The Objective-J compiler is totally written in JavaScript and programs written in Objective-J do not need any server side compilation, as they are directly compiled on the client side by the Objective-J compiler.
, and Cascading Style Sheets
, it is not a classical JavaScript widget library such as ExtJs
, jQuery
or Prototype
. Cappuccino developers never need to directly manipulate the DOM or design CSS documents. Instead, those tasks are handled by Cappuccino, permitting the application developer to focus on the implementation of application features without being distracted by specifics of the rendering mechanism. Cappuccino, being compiled directly in the web browser
, is agnostic of the server-side logic. As such, PHP
or Ruby
, for instance, may be used for the back-end logic of an application.
), whereas other frameworks and libraries rely on the user understanding the DOM, and traditional web technologies. Cappuccino doesn't require previous knowledge about web technologies. Cappuccino implements the latest HTML5 features while still abstracting out the less than pretty parts through a Cocoa-like API. Views are manipulated using an API that doesn't require CSS or DOM manipulation.
formats, and has a wide range of themes.
Since then, numerous other applications have been built on the Cappuccino framework. Notable examples include Mockingbird, a collaborative online wireframing tool, PicsEngine, a personal photo library on the web, GitHub issues, a front-end to GitHub's issues tracker, Spot Specific Apps a la Carte, an online mobile app authoring tool, Archipel, a XMPP orchestrator to manage virtualization, and Akshell, a cloud-based JavaScript development platform.
280 North, Inc.
280 North is a web software development startup company formed in 2008 by college friends Tom Robinson, Francisco Tolmasky, and Ross Boucher. Tolmasky and Boucher both previously worked for Apple, on the iPhone and iTunes respectively....
It is primarily targeted towards high-end web applications developers.
Cappuccino consists of two distinct components: a programming language called Objective-J
Objective-J
Objective-J is a programming language developed as part of the Cappuccino web development framework. Its syntax is nearly identical to the Objective-C syntax and it shares with JavaScript the same relationship that Objective-C has with the C programming language: that of being a strict, but small,...
and an object-oriented library which is the Objective-J port of several of the Cocoa
Cocoa (API)
Cocoa is Apple's native object-oriented application programming interface for the Mac OS X operating system and—along with the Cocoa Touch extension for gesture recognition and animation—for applications for the iOS operating system, used on Apple devices such as the iPhone, the iPod Touch, and...
frameworks, namely Foundation Kit
Foundation Kit
The Foundation Kit, or just Foundation for short, is an Objective-C framework in the OpenStep specification. It provides basic classes such as wrapper classes and data structure classes. This framework uses the prefix NS .-NSObject:...
, Application Kit
Application Kit
The Application Kit is a collection of classes within the OpenStep specification and provided by such operating systems as OPENSTEP, GNUstep, and Mac OS X under Cocoa, providing classes oriented around graphical user interface capabilities...
, CoreGraphics, and CoreAnimation.
Objective-J
Objective-JObjective-J
Objective-J is a programming language developed as part of the Cappuccino web development framework. Its syntax is nearly identical to the Objective-C syntax and it shares with JavaScript the same relationship that Objective-C has with the C programming language: that of being a strict, but small,...
adds traditional inheritance and Smalltalk
Smalltalk
Smalltalk is an object-oriented, dynamically typed, reflective programming language. Smalltalk was created as the language to underpin the "new world" of computing exemplified by "human–computer symbiosis." It was designed and created in part for educational use, more so for constructionist...
/Objective-C
Objective-C
Objective-C is a reflective, object-oriented programming language that adds Smalltalk-style messaging to the C programming language.Today, it is used primarily on Apple's Mac OS X and iOS: two environments derived from the OpenStep standard, though not compliant with it...
message calls to JavaScript
JavaScript
JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles....
. Objective-J shares the same relationship with JavaScript as Objective-C shares with C, so it is a strict superset of JavaScript. Programs written in Objective-J are almost identical to their counterpart written in Objective-C and simple Objective-C programs compile correctly as Objective-J programs. The Objective-J compiler is totally written in JavaScript and programs written in Objective-J do not need any server side compilation, as they are directly compiled on the client side by the Objective-J compiler.
Features and advantages
Even though the Cappuccino framework uses standard web technologies for web page rendering, such as JavaScript, the browser Document Object ModelDocument Object Model
The Document Object Model is a cross-platform and language-independent convention for representing and interacting with objects in HTML, XHTML and XML documents. Aspects of the DOM may be addressed and manipulated within the syntax of the programming language in use...
, and Cascading Style Sheets
Cascading Style Sheets
Cascading Style Sheets is a style sheet language used to describe the presentation semantics of a document written in a markup language...
, it is not a classical JavaScript widget library such as ExtJs
Ext (javascript library)
Ext JS is a JavaScript library for building interactive web applications using techniques such as Ajax, DHTML and DOM scripting.Originally built as an add-on library extension of YUI by Jack Slocum, Ext includes interoperability with jQuery and Prototype...
, jQuery
JQuery
jQuery is a cross-browser JavaScript library designed to simplify the client-side scripting of HTML. It was released in January 2006 at BarCamp NYC by John Resig...
or Prototype
Prototype Javascript Framework
The Prototype JavaScript Framework is a JavaScript framework created by Sam Stephenson in February 2005 as part of the foundation for Ajax support in Ruby on Rails. It is implemented as a single file of JavaScript code, usually named prototype.js...
. Cappuccino developers never need to directly manipulate the DOM or design CSS documents. Instead, those tasks are handled by Cappuccino, permitting the application developer to focus on the implementation of application features without being distracted by specifics of the rendering mechanism. Cappuccino, being compiled directly in the web browser
Web browser
A web browser is a software application for retrieving, presenting, and traversing information resources on the World Wide Web. An information resource is identified by a Uniform Resource Identifier and may be a web page, image, video, or other piece of content...
, is agnostic of the server-side logic. As such, PHP
PHP
PHP is a general-purpose server-side scripting language originally designed for web development to produce dynamic web pages. For this purpose, PHP code is embedded into the HTML source document and interpreted by a web server with a PHP processor module, which generates the web page document...
or Ruby
Ruby (programming language)
Ruby is a dynamic, reflective, general-purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features. Ruby originated in Japan during the mid-1990s and was first developed and designed by Yukihiro "Matz" Matsumoto...
, for instance, may be used for the back-end logic of an application.
Compatibility
Cappuccino is compatible with many of the latest browsers, including: Internet Explorer 7+, Firefox 2+, Safari 3+, Opera 9+, and Google Chrome.Differences from other frameworks
Cappuccino differs from other frameworks as it provides a complete abstraction from the DOM (Document Object ModelDocument Object Model
The Document Object Model is a cross-platform and language-independent convention for representing and interacting with objects in HTML, XHTML and XML documents. Aspects of the DOM may be addressed and manipulated within the syntax of the programming language in use...
), whereas other frameworks and libraries rely on the user understanding the DOM, and traditional web technologies. Cappuccino doesn't require previous knowledge about web technologies. Cappuccino implements the latest HTML5 features while still abstracting out the less than pretty parts through a Cocoa-like API. Views are manipulated using an API that doesn't require CSS or DOM manipulation.
Applications
The first widely known web application written in Objective-J/Cappuccino was 280 Slides, an online presentation preparation system. 280 Slides features the ability to import existing documents, an autosave recovery, is able to save documents as Microsoft PowerPoint, PDF, and OpenDocumentOpenDocument
The Open Document Format for Office Applications is an XML-based file format for representing electronic documents such as spreadsheets, charts, presentations and word processing documents....
formats, and has a wide range of themes.
Since then, numerous other applications have been built on the Cappuccino framework. Notable examples include Mockingbird, a collaborative online wireframing tool, PicsEngine, a personal photo library on the web, GitHub issues, a front-end to GitHub's issues tracker, Spot Specific Apps a la Carte, an online mobile app authoring tool, Archipel, a XMPP orchestrator to manage virtualization, and Akshell, a cloud-based JavaScript development platform.
External links
- http://cappuccino.org/
- http://280slides.com/
- http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino
- http://arstechnica.com/journals/apple.ars/2008/06/26/cocoa-on-the-web-280-north-objective-j-and-cappuccino
- http://cappuccino.org/discuss/2008/12/08/on-leaky-abstractions-and-objective-j/
- http://cappuccinocasts.com/