From 38e8c8244dbfcde70f55da8e3d567c7b5f02fd82 Mon Sep 17 00:00:00 2001 From: Mike Gerwitz Date: Wed, 21 Sep 2011 12:01:00 -0400 Subject: [PATCH] README update to reflect design alterations and present additional project information --- README.md | 52 +++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 43 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index aca334f..0f05734 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,8 @@ # ease.js -ease.js is a basic collection of CommonJS modules intended to "ease" the -transition into JavaScript from other Object-Oriented languages. It provides an -intuitive means of achieving classical inheritance and has planned support -traits/mixins. +ease.js is a collection of CommonJS modules intended to "ease" the transition +into JavaScript from other Object-Oriented languages. It provides an intuitive +means of achieving classical inheritance and has planned support traits/mixins. Current support includes: @@ -20,6 +19,13 @@ that ease.js will expand to other paradigms in the future. **This project is still under development. Please read the manual for more information.** +**Release/npm Note:** The first release of ease.js (and subsequently, +availability on npm) will come once the features are solidified and committed +to. This is to ensure adoption is not stifled by design alterations. Version +0.1.0 release is near; please see the +[v0.1.0 roadmap](http://easejs.org/bugs/roadmap_page.php?version_id=1) for +out-standing issues. + ## Full Documentation Full documentation is available at the following URL: @@ -32,11 +38,39 @@ Please direct bug reports and feature requests to the bug tracker located at http://easejs.org/bugs/ ## Why ease.js? -There are already plenty of other means of achieving each of this project's -goals, so what's the point of ease.js? The aim of the project is to provide a -lightweight library in a CommonJS format which also addresses ES5 issues and is -an all-inclusive solution to OO techniques. It satisfies primarily a personal -itch. +There are already a number of libraries/frameworks that permit basic classical +Object-Oriented development, so why ease.js? While many of the existing +solutions certainly provide viable solutions, they are largely incomplete. Until +the appearance of ECMAScript 5, many of the features enjoyed by classical OO +developers were elusive to JavaScript. The aim of this project is to provide an +intuitive framework in a CommonJS format which also addresses ES5 issues and is +an all-inclusive solution to OO techniques. + +ECMAScript reserves certain keywords that hint at classical OO in future +versions, but said features are uncertain. ease.js will satisfy the classical OO +itch until the time where ECMAScript itself includes it, at which time ease.js +will still be useful for providing a transition in order to support older +browsers. ease.js may also be useful in the future to augment the feature set of +whatever native ECMAScript implementation is decided upon. + +### Why Classical OOP in JavaScript? +ease.js was created (historically) for a number of reasons: + +* To "ease" Object-Oriented developers into JavaScript by providing a familiar + environment. +* To provide the maintenance and development benefits of classical OOP. +* To provide features missing from the language, such as proper encapsulation + through private/protected members, interfaces, traits, intuitive inheritance, + etc. +* To encapsulate the hacks commonly used to perform the above tasks. + +Many JS purists believe that classical Object-Oriented programming should be +left out of the language and one should stick strictly to prototypal +development. While the two are related (both Object-Oriented), they can be +applied to different problem domains in order to achieve results that are more +natural or intuitive to developers. ease.js works seamlessly with existing +prototypes, allowing the developer to choose whether or not they want to use +"classes". ## How to Use