Java Script Framework
This is a protected page.
Introduction[edit]
In the following we list criteria to take into account when choosing a JavaScript Framework for a web application project and evaluate several frameworks according to these criteria.
It must be noted though, that the choice of a JavaScript framework must be even more project specific than the choice of a web development framework. In addition, the choice of a web framework may already determine the JavaScript framework (e.g. because one comes bundled). For these reasons, we also give some general considerations:
- Will the application make use of other JavaScript libraries - e.g. googlemaps, etc.? If so, care must be taken to choose a framework that plays well with others.
- Is a heavy-weight framework acceptable, or will light-weight options do?
- Is security an issue? When sensitive data and ajax are to be used together, the framework should support secure XmlHttpRequests.
- Is accessibility an issue?
- How much and what kind of performance is needed? DOM traversals in large pages? Many event handlers attached to DOM nodes?
- Do we want to host the JavaScript framework/library on our servers or include from a hosting service (or even a content delivery network)?
It is also quite common to switch JavaScript frameworks/libraries in the course of a project, because either special functionality (e.g. make tables sortable) is no longer sufficient or a framework which was used for faster prototyping becomes a performance bottleneck and is replaced with custom code. Since this approach is common, specialized JavaScript libraries providing just a single functionality should also be taken into consideration.
Method[edit]
The criteria are sorted by order of relevance in 3 categories:
- A -> Must
- B -> Should
- C -> Nice to
Cat. A - Must[edit]
- Opensource
- Big community/support/Documentation
- Cross Browser compatibility (which browsers?)
Cat. B - Should[edit]
- Sufficient number of patterns available
- Sophisticated patterns (for scientific use)
- Fits to other JS Frameworks
- Unique coding style
- Supports CSS1-3
- Chainability (?)
- Easy to learn/adopt
- Easy to reuse, to customize and maintain
- Subversion or CVS version repository
Cat. C - Nice to[edit]
- Plugins
- Knowledge base (in house)
List of Frameworks[edit]
This list is not exhaustive, but it lists the most common frameworks.
See more framework listings/comparisons here and here or just google.
The Matrix[edit]
Criteria | Framework | ||||||
---|---|---|---|---|---|---|---|
Yahoo! UIL | | JQuery | | ExJS | | Prototype | | Scriptaculous | | Dojo | | MooTools | | |
Cat. A | |||||||
Opensource | + | + | ? | ? | ? | ? | ? |
Performance | ? | ? | ? | ? | ? | ? | ? |
Big community/support/Documentation | ? | ? | ? | ? | ? | ? | ? |
Internationalization | ? | ? | ? | ? | ? | ? | ? |
Browser compatibility | ? | ? | ? | ? | ? | ? | ? |
Cat. B | |||||||
Number of patterns | ? | ? | ? | ? | ? | ? | ? |
Sophisticated patterns | ? | ? | ? | ? | ? | ? | ? |
Fits to other JS Frameworks | ? | ? | ? | ? | ? | ? | ? |
Unique coding style | ? | ? | ? | ? | ? | ? | ? |
Supports CSS1-3 | ? | ? | ? | ? | ? | ? | ? |
Chainability (?) | ? | ? | ? | ? | ? | ? | ? |
Easy to learn/adopt | ? | ? | ? | ? | ? | ? | ? |
Easy to reuse, to customize and maintain | ? | ? | ? | ? | ? | ? | ? |
Subversion or CVS version repository | ? | + | ? | ? | ? | ? | ? |
? | ? | ? | ? | ? | ? | ? | |
? | ? | ? | ? | ? | ? | ? | |
? | ? | ? | ? | ? | ? | ? | |
? | ? | ? | ? | ? | ? | ? | |
Cat. C | |||||||
Plugins | ? | ? | ? | ? | ? | ? | ? |
Generfal Information | |||||||
Actual version | ? | ? | ? | ? | ? | ? | ? |
License | BSD | MIT/GPL | ? | ? | ? | ? | ? |
Java Web Framework[edit]
Evaluation matrix available at Java Web Framework.