Cappuccino (software)

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Developer(s)Cappuccino Core Developers and community.
Stable release
1.0.0 / September 4, 2018; 2 years ago (2018-09-04)
Written inJavaScript/Objective-J
Operating systemCross-platform

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 founders of 280 North, Inc. It is primarily targeted towards 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.


Objective-J adds traditional inheritance and Smalltalk/Objective-C message calls to JavaScript. Objective-J compiles to, and is a strict superset of, JavaScript. This means that all valid JavaScript code is also valid Objective-J code (this is the same relationship that Objective-C has to the C language). Objective-J and JavaScript may be freely mixed within the same source file (suffixed with ".j" file extension) and many framework classes are "toll-free-bridged" to their JavaScript counterparts. For example, CPArray (equivalent to Cocoa's NSArray) and native JavaScript arrays are bridged and may be used interchangeably.

Programs written in Objective-J look very similar to their counterparts written in Objective-C. There are significant differences, however: for example, Objective-J has no header files, and local variables are declared with the JavaScript "var" keyword rather than a type declaration. Most of the Cappuccino framework's classes are named identically to their Cocoa counterparts, except with a "CP" class prefix instead of "NS", and the majority of API's function identically or very similarly. The Objective-J compiler is written in JavaScript and programs written in Objective-J may be directly compiled on the client side (typically in the web browser) by the Objective-J compiler through the Objective-J runtime. The framework also embeds a tool that can perform this compilation ahead of time, such that only regular JavaScript is sent to the client; this is significantly more performant and generally preferable. The on-the-fly compilation option, however, is convenient for development purposes.

Features and advantages[edit]

Even though the Cappuccino framework uses standard web technologies for web page rendering, such as JavaScript, the browser Document Object Model, 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, Python, PHP or Ruby, for instance, may be used for the back-end logic of an application.


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[edit]

Cappuccino differs from other frameworks as it provides a complete abstraction from the DOM (Document Object Model), 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, abstracted through a Cocoa-like API. Views are manipulated using an API that doesn't require CSS or DOM manipulation.


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 OpenDocument 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, Akshell, a cloud-based JavaScript development platform, and R.W. Elephant, a cloud based inventory management system for rental businesses.

External links[edit]