mirror of
https://github.com/cappuccino/cappuccino.git
synced 2026-09-18 08:31:28 +00:00
Update README.markdown
mistype (LTS → Node.js), typography (- → –) and slight presentation change (bullet list).
This commit is contained in:
+12
-14
@@ -12,7 +12,7 @@ Introduction
|
||||
Cappuccino is an open-source framework in continuous development since 2008 and released under the LGPL2 license. It implements as much of the proven NeXTStep/Apple Cocoa API as practicable in the modern web browser environment. Resulting applications are served as HTML, JavaScript, and CSS, allowing deployment from any web host.
|
||||
|
||||
Benefits of Cappuccino's Cocoa implementation:
|
||||
* Cross-platform development - any programmer's text editor or IDE is sufficient. The compiler and other parts of the toolchain required to prepare applications for deployment are hosted by Node.js.
|
||||
* Cross-platform development – any programmer's text editor or IDE is sufficient. The compiler and other parts of the toolchain required to prepare applications for deployment are hosted by Node.js.
|
||||
* Cocoa's rich range of interface controls are abstracted to HTML, CSS, and JavaScript. These go well beyond the functionality provided by current browser standards, and only require minimal HTML5 support.
|
||||
* These design patterns and APIs provide a solid foundation for application development. The APIs have been proven over forty years and provide browser-independent functionality which is a superset of current browser capabilities.
|
||||
* Custom interface controls can reliably build on basic Cocoa controls if extended or new functionality is required.
|
||||
@@ -21,7 +21,7 @@ Benefits of Cappuccino's Cocoa implementation:
|
||||
* Consistent and predictable behavior across different platforms enhances reliability and user experience.
|
||||
* Objective-J's [message-passing architecture](https://en.wikipedia.org/wiki/Message_passing), which the Cocoa APIs leverage, promote loose coupling of an app's component functionality — making large scale development more managable.
|
||||
* Comprehensive documentation for Objective-J is supplemented by over two decades of resources for Objective-C and Cocoa. Additionally, a large public catalog of Objective-C Cocoa applications offers valuable guidance for development. Translation of such sample code to Objective-J is often trivial.
|
||||
* Toolchain stability - use of time-tested APIs means an absense of the churn which is all too common in the current generic browser-app ecosystem.
|
||||
* Toolchain stability – use of time-tested APIs means an absense of the churn which is all too common in the current generic browser-app ecosystem.
|
||||
* The first web browser and server were written in 1990 by a single person using the APIs which Apple later re-branded and extended as Cocoa. Beyond being a testament to their productivity, it doesn't seem out of place to write application software using the same APIs.
|
||||
|
||||
Check out a [live demo of the standard interface controls provided by Cappuccino](https://cappuccino-testbook.5apps.com/#ThemeKitchenSink)
|
||||
@@ -34,18 +34,16 @@ For more information, see the
|
||||
- [Github Wiki](https://github.com/cappuccino/cappuccino/wiki)
|
||||
- [FAQ](http://cappuccino.dev/support/faq.html)
|
||||
- [Documentation](http://cappuccino.dev/learn/)
|
||||
- [Mailing list (inactive - for historical purposes only)](http://groups.google.com/group/objectivej)
|
||||
- [Mailing list (inactive – for historical purposes only)](http://groups.google.com/group/objectivej)
|
||||
|
||||
Bugs and enhancement requrests can be reported by [creating a Github issue](http://github.com/cappuccino/cappuccino/issues).
|
||||
|
||||
System Requirements
|
||||
-------------------
|
||||
A minimally HTML5-compliant web browser is the only requirement for running Cappuccino applications.
|
||||
* A minimally HTML5-compliant web browser is the only requirement for running Cappuccino applications.
|
||||
They are served as standard HTML, Javascript, CSS and images from any web server.
|
||||
|
||||
Any programmer's editor can be used for coding.
|
||||
|
||||
macOS users can use Xcode - which leverages the visual development tools from Apple for creation of complex applications with minimal coding.
|
||||
* Any programmer's editor can be used for coding.
|
||||
* macOS users can use Xcode - which leverages the visual development tools from Apple for creation of complex applications with minimal coding.
|
||||
|
||||
Notes on the transition of Cappuccino from the Narwhal Javascript engine to Node.js
|
||||
------------------
|
||||
@@ -53,7 +51,7 @@ Notes on the transition of Cappuccino from the Narwhal Javascript engine to Node
|
||||
Cappuccino compiles source code files written in Objective-J or Javascript to pure HTML/Javascript/CSS.
|
||||
A desktop Javascript engine with CommonJS for accessing local resources is required for the compilation phase.
|
||||
Historically, this engine was [Narwhal](https://narwhaljs.org/).
|
||||
A transition to [Node.js](https://nodejs.org) is being finalized..
|
||||
A transition to [Node.js](https://nodejs.org) is being finalized.
|
||||
The results of this transition are available as a Release Candidate.
|
||||
While a formal production release is scheduled for early-autumn 2024, it should be considered production-ready as-is. Multiple production deployments over the last twelve months have confirmed this.
|
||||
In addition to the Node.js-based toolchain, the next formal release will include multiple maintenance improvements and enhancements to the API.
|
||||
@@ -80,7 +78,7 @@ this is outlined in the section about permission issues below.
|
||||
|
||||
By default npm uses `/usr/local/lib/node_modules` as the install location for globally installed packages. This causes
|
||||
problems since users typically lack write permissions there. It is therefore recommended to either use a version
|
||||
manager, or change npm's default install location manually (which is what we did above). For more details see [this article](https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally).
|
||||
manager, or change npm's default install location manually (which is what we did above with the `npm set prefix…` command). For more details see [this article](https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally).
|
||||
|
||||
### Basic usage
|
||||
|
||||
@@ -93,7 +91,7 @@ On successful installation, follow these steps to create a basic and fully-funct
|
||||
|
||||
### Building Cappuccino from source
|
||||
|
||||
To build Cappuccino from source clone the GitHub repository at
|
||||
To build Cappuccino from source clone the GitHub repository at
|
||||
https://github.com/cappuccino/cappuccino/ and checkout the `main` branch. Use the command
|
||||
`jake install` to install the Cappuccino frameworks and toolchain locally.
|
||||
|
||||
@@ -122,16 +120,16 @@ simply run `npm install -g @objj/cappuccino` again.
|
||||
FAQs
|
||||
----
|
||||
**Q: Can I use Cappuccino on Windows/Linux?**
|
||||
**A:** Yes, Cappuccino can be used on Windows or Linux. While Cappuccino technology is inspired by Apple's Cocoa framework, it is designed to be platform-independent. As long as you have a modern web browser and a compatible development environment (An LTS version of LTS and an http server), you can develop and deploy Cappuccino applications on other operating systems without any issues.
|
||||
**A:** Yes, Cappuccino can be used on Windows or Linux. While Cappuccino technology is inspired by Apple's Cocoa framework, it is designed to be platform-independent. As long as you have a modern web browser and a compatible development environment (An LTS version of Node.js and an http server), you can develop and deploy Cappuccino applications on other operating systems without any issues.
|
||||
|
||||
**Q: Has Apple not moved away from Objective-C and Cocoa, making this a dead end?**
|
||||
**A:** While Apple has introduced Swift as a modern language and shifted focus to frameworks like SwiftUI, Objective-C and Cocoa remain widely used and supported. Cappuccino leverages the mature and proven Cocoa architecture, which continues to be relevant for many applications. Additionally, Cappuccino’s design abstracts these technologies to the web, ensuring that developers can create robust web applications regardless of Apple’s evolving ecosystem.
|
||||
|
||||
**Q: What is with the funny syntax of Objective-J and its brackets? I've never seen a language like this - how can anyone be productive with something so strange?**
|
||||
**Q: What is with the funny syntax of Objective-J and its brackets? I've never seen a language like this – how can anyone be productive with something so strange?**
|
||||
**A:** Objective-J’s syntax, with its brackets, is inspired by Objective-C, which has been used for decades in developing macOS and iOS applications. While it may seem unusual initially, it provides a powerful way to structure code and manage objects. Developers familiar with Objective-C will find it intuitive, and those new to it can leverage extensive documentation and community resources. The initial learning curve is offset by the productivity gains in building complex, maintainable web applications.
|
||||
|
||||
**Q: I have my own HTML, JavaScript, and CSS I'd like to use in a larger app. I don't see any JavaScript, HTML, or CSS in the sample code available. How do I modify the DOM?**
|
||||
**A:** Cappuccino abstracts much of the DOM to align with Cocoa's model. Existing Cocoa controls can be extended or new ones built from scratch to meet specific requirements. The Cocoa APIs follow a classic object-oriented programming model - most necessary functionality will be inherited from the Cappuccino base class one is starting with. The [CPWebView](https://www.cappuccino.dev/learn/documentation/interface_c_p_web_view.html) control can also be used to embed either HTML/Javascript/CSS fragments or entire web pages.
|
||||
**A:** Cappuccino abstracts much of the DOM to align with Cocoa's model. Existing Cocoa controls can be extended or new ones built from scratch to meet specific requirements. The Cocoa APIs follow a classic object-oriented programming model – most necessary functionality will be inherited from the Cappuccino base class one is starting with. The [CPWebView](https://www.cappuccino.dev/learn/documentation/interface_c_p_web_view.html) control can also be used to embed either HTML/Javascript/CSS fragments or entire web pages.
|
||||
|
||||
**Q: What are the advantages of Cappuccino over libraries and frameworks like React and Vue?**
|
||||
**A:** Cappuccino offers several advantages:
|
||||
|
||||
Reference in New Issue
Block a user