It is proposed that this article be deleted because of the following concern:
If you can address this concern by improving, copyediting, sourcing, renaming, or merging the page, please edit this page and do so. You may remove this message if you improve the article or otherwise object to deletion for any reason. Although not required, you are encouraged to explain why you object to the deletion, either in your edit summary or on the talk page. If this template is removed, do not replace it . The article may be deleted if this message remains in place for seven days, i.e., after 16:08, 9 May 2022 (UTC). Find sources: "Cappuccino" software – news · newspapers · books · scholar · JSTOR Nominator: Please consider notifying the author/project: {{ subst:proposed deletion notify |Cappuccino (software)|concern=Not notable. There are no independent sources}} ~~~~ |
Developer(s) | Cappuccino Core Developers and community. |
---|---|
Stable release | 1.0.0 / September 4, 2018 |
Written in | JavaScript/Objective-J |
Operating system | Cross-platform |
License | LGPL |
Website | www |
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.
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.
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.
Cocoa is Apple's native object-oriented application programming interface (API) for its desktop operating system macOS.
GNUstep is a free software implementation of the Cocoa Objective-C frameworks, widget toolkit, and application development tools for Unix-like operating systems and Microsoft Windows. It is part of the GNU Project.
KHTML is a browser engine developed by the KDE project. It is the default engine of the Konqueror browser, but it has not been actively worked on since 2016. Moreover, KHTML will be discontinued for KDE Frameworks 6.
The Prototype JavaScript Framework is a JavaScript framework created by Sam Stephenson in February 2005 as part of Ajax support in Ruby on Rails. It is implemented as a single file of JavaScript code, usually named prototype.js
. Prototype is distributed standalone, but also as part of larger projects, such as Ruby on Rails, script.aculo.us and Rico. As of March 2021, according to w3techs, Prototype is used by 0.6% of all websites.
The Yahoo! User Interface Library (YUI) is a discontinued open-source JavaScript library for building richly interactive web applications using techniques such as Ajax, DHTML, and DOM scripting. YUI includes several core CSS resources. It is available under a BSD License. Development on YUI began in 2005 and Yahoo! properties such as My Yahoo! and the Yahoo! front page began using YUI in the summer of that year. YUI was released for public use in February 2006. It was actively developed by a core team of Yahoo! engineers.
jQuery is a JavaScript library designed to simplify HTML DOM tree traversal and manipulation, as well as event handling, CSS animation, and Ajax. It is free, open-source software using the permissive MIT License. As of May 2019, jQuery is used by 73% of the 10 million most popular websites. Web analysis indicates that it is the most widely deployed JavaScript library by a large margin, having at least 3 to 4 times more usage than any other JavaScript library.
MooTools is a lightweight, object-oriented JavaScript framework. It is released under the free, open-source MIT License.
Firebug is a discontinued free and open-source web browser extension for Mozilla Firefox that facilitated the live debugging, editing, and monitoring of any website's CSS, HTML, DOM, XHR, and JavaScript. It is now inbuilt in Firefox.
Svelte is a free and open-source front end compiler created by Rich Harris and maintained by the Svelte core team members. Svelte is not a monolithic JavaScript library imported by applications: instead, Svelte compiles HTML templates to specialized code that manipulates the DOM directly, which may reduce the size of transferred files and give better client performance; application code is also processed by the compiler, inserting calls to automatically recompute data and re-render UI elements when the data they depend on is modified. This also avoids the overhead associated with runtime intermediate representations, such as virtual DOM, unlike traditional frameworks which carry out the bulk of their work at runtime, i.e in the browser. The compiler itself is written in TypeScript. Its source code is licensed under MIT License and hosted on GitHub.
This is a comparison of web frameworks for front-end web development that are heavily reliant on JavaScript code for their behavior.
A single-page application (SPA) is a web application or website that interacts with the user by dynamically rewriting the current web page with new data from the web server, instead of the default method of a web browser loading entire new pages. The goal is faster transitions that make the website feel more like a native app.
Pyjs, is a rich web application framework for developing client-side web and desktop applications in Python. The resulting applications can be run in a web browser or as standalone desktop applications.
Vaadin is an open-source web application development platform for Java. Vaadin includes a set of Web Components, a Java web framework, and a set of tools that enable developers to implement modern web graphical user interfaces (GUI) using the Java programming language only, TypeScript only, or a combination of both.
Google Closure Tools is a set of tools to help developers build rich web applications with JavaScript. It was developed by Google for use in their web applications such as Gmail, Google Docs and Google Maps.
Three.js is a cross-browser JavaScript library and application programming interface (API) used to create and display animated 3D computer graphics in a web browser using WebGL. The source code is hosted in a repository on GitHub.
MontageJS is an open-source JavaScript framework for building scalable single-page applications. Its aim is to simplify the development and maintainability of expressive HTML5 applications by employing many of the foundations of proven native application frameworks. With Montage, developers can build and extend reusable user interface components and modules, bind properties among components and controllers, and synchronize DOM updates to ensure a smooth user experience, especially on resource-constrained devices.
Web Components are a set of features that provide a standard component model for the Web allowing for encapsulation and interoperability of individual HTML elements.
React is a free and open-source front-end JavaScript library for building user interfaces based on UI components. It is maintained by Meta and a community of individual developers and companies. React can be used as a base in the development of single-page, mobile, or server-rendered applications with frameworks like Next.js. However, React is only concerned with state management and rendering that state to the DOM, so creating React applications usually requires the use of additional libraries for routing, as well as certain client-side functionality.
NativeScript is an open-source framework to develop mobile apps on the Apple iOS and Android platforms. It was originally conceived and developed by Progress. At the end of 2019 responsibility for the NativeScript project was taken over by long-time Progress partner, nStudio. In December 2020 nStudio also oversaw the induction of NativeScript into OpenJS Foundation as an Incubating Project. NativeScript apps are built using JavaScript, or by using any programming language that transpiles to JavaScript, such as TypeScript. NativeScript supports the Angular and Vue JavaScript frameworks. Mobile applications built with NativeScript result in fully native apps, which use the same APIs as if they were developed in Xcode or Android Studio. Additionally, software developers can re-purpose third-party libraries from CocoaPods, Maven, and npm.js in their mobile applications without the need for wrappers.
Vue.js is an open-source model–view–viewmodel front end JavaScript framework for building user interfaces and single-page applications. It was created by Evan You, and is maintained by him and the rest of the active core team members.