Ajax Bestiary: A Javascript Field Guide
 
Ajax Bestiary: A Javascript Field Guide
 
 

Prototype Framework Profile

Posted by Don Albrecht
Name: prototype JavaScript framework
URL: http://www.prototypejs.org
Native Server Environment: Ruby
Included Widgets: None
Download Size: 96 KB (uncompressed)

Although originally part of the Ruby on Rails project. Prototype is a standalone javascript framework with a simple goal: make javascript suck less. Prototype provides basic object oriented, Remote Procedure Call & Dom manipulation support and thats it.

The code is small and fast with a simple syntax. What it lacks in bells & whistles it makes up for in clarity, size & flexibility.

Some Highlights
  • Tiny download size
  • Highly flexible
  • Provides RPC, JSON, DOM enhancements & Objects

Some Drawbacks

  • Very light weight.
  • No Advanced widgets.
  • No Manipulation API’s or data types
  • Requires significant additional code to be useful
  • Download isn’t compressed by default


GWT (Google Web Toolkit)

Posted by Don Albrecht
Name: GWT (Google Web Toolkit)
URL: http://code.google.com/webtoolkit/
Native Server Environment: JAVA
Included Widgets: Button, RadioButton, CheckBox, TextBox, PasswordTextBox, TextArea, Hyperlink, Listbox, MenuBar, Tree, Table, TabBar, Popup Panel, DialogBox, StackPanel, LayoutPanels
Download Size: Varies

GWT is definitely the odd one out when it comes to Javascript toolkits. Primarily because of the unique way in which it attempts to circumvent the fundamental shortcomings of the language. Rather than being written in Javascript, all GWT apps are written in the more robust JAVA programming language and then compiled into JS code by a set of development tools. Since this exposes the developer to many of the fundamental strengths and useful features of JAVA during the development process such as strong typing, date & math manipulation tools, Object inheritance, abstract typing & clean OO development. Similarly, since the code is compiled before deployment, there is a level of efficiency gained in limiting the produced JS files to only those resources absolutely necessary for the given application.

Google provides special development and testing harnesses to streamline this process. Designed to work with the popular Eclipse development environment. These tools can also be utilized with Sun’s NetBeans IDE as well. API’s are provided to integrate legacy JS tools & components with GWT applications.

Some Highlights
  • Ability to share code between AJAX interface & JAVA backend of application
  • Useful development tools included
  • Bypasses fundamental shortcomings of JS
  • Powerful Server Communication tools
  • Browser History Management / Back Button support
  • Unit Testing Framework
  • Straightforward Custom Widget & Compound Widget Creation
  • Google Gears Integration

Some Drawbacks

  • Google doesn’t extensively use its own framework
  • Limited Basic Widget Set
  • Lack of Drag & Drop Support (available through addons to framework)
  • GWT isn’t Javascript and requires learning a new language
  • Development tools don’t work for every dev environment

Dojo Toolkit Profile

Posted by Don Albrecht
Name: Dojo Toolkit
URL: http://dojotoolkit.org
Native Server Environment: none
Included Widgets: Fisheye, TabPanels, Containers, Title Panels, Menus, Buttons, Form Elements, Rich Text Editor, Data tables, Trees, Layout Widgets,
Download Size: 6.5 mb (build directory)

YUI or the Yahoo! User Interface Libary. Is one of the most used toolkits on the market today. Because free hosting for the toolkit is provided by Yahoo on its content distribution network, download times can be dramatically reduced for end users. This is especially true if the user already has a copy of the toolkit cached from visiting one of the myriad of Yahoo or third party sites that use the library.

The library itself is capable and easy to work with. It doesn’t go to great effort to abstract away core javascript functionality. It also does a remarkable job of providing complex capabilities with a reasonably simple and fine grained approach. The library doesn’t rely on monolithic JS files or complex syntax and there for is highly approachable for the novice developer.

Some Highlights
  • Incredibly Rich Widget set available
  • Capable of converting static html to dhtml widgets on the fly
  • Amazing Graphic capabilities with SVG & Charting support
  • Allows JS applications to be built without coding html layouts.
  • Powerful system for deploying custom widgets
  • Data abstraction tools
  • Offline Storage capability

Some Drawbacks

  • Skinning may require creation of custom widgets
  • Dependence on 3rd party software for some libraries (Flash widgets, Dojo Offline uses Google Gears)
  • Large library size on initial download
  • Compression & packaging tools can be cumbersome.
  • Steep Learning Curve & Occaisonally unique syntax

YUI (The Yahoo! User Interface Library) Profile

Posted by Don Albrecht
Name: YUI (The Yahoo! User Interface Library)
URL: http://developer.yahoo.com/yui/
Native Server Environment: none
Included Widgets: AutoComplete, Button, Calendar, Color Picker, Container, DataTable, Logger, Menu, Rich Text Editor, Slider, TabView, TreeView
Download Size: 6.5 mb (build directory)

YUI or the Yahoo! User Interface Libary. Is one of the most used toolkits on the market today. Because free hosting for the toolkit is provided by Yahoo on its content distribution network, download times can be dramatically reduced for end users. This is especially true if the user already has a copy of the toolkit cached from visiting one of the myriad of Yahoo or third party sites that use the library.

The library itself is capable and easy to work with. It doesn’t go to great effort to abstract away core javascript functionality. It also does a remarkable job of providing complex capabilities with a reasonably simple and fine grained approach. The library doesn’t rely on monolithic JS files or complex syntax and there for is highly approachable for the novice developer.

Some Highlights
  • CSS resources empowering css-resets, fonts, & layout grids
  • Effects & animation tools
  • Rapidly Growing Widget Set
  • Dramatic bandwidth and caching improvements due to Yahoo!’s hosting of library files
  • Powerful server communication tools including asset management functions
  • Big name industry backing
  • Cached library can be utilized between sites.
  • Yahoo uses its own library

Some Drawbacks

  • Skinning System still in its infancy
  • Many Widgets still in beta
  • Large library size on initial download
  • Lack of compressed download requires dependence on Yahoo hosting for efficiency in many situations

mootools Profile

Posted by Don Albrecht
Name: mootools
URL: http:///mootools.net
Native Server Environment: none
Included Widgets: Accordion, slider, tooltips, Group
Download Size: 44 KB Compressed

Mootools is a popular and streamlined toolkit. The custom download builder, powerful compression tools and general maturity of the tookit make it an excellent choice for many projects.

The Joomla team’s decision to include mootools in Joomla 1.5 is testament to the flexibility and efficiency of the system. It will also lead to an explosion of mootools developers as people rapidly work to integrate AJAX capability into Joomla plugins & components.

Some Highlights

  • A custom download profiler allows the creation of small, focused downloads customized to your deployment
  • Powerful Style manipulation tools
  • Powerful effects & animation tools
  • Element Abstraction & Custom Syntax
  • Useful Object Prototypes for Array, String, Function & Number
  • Object Oriented / Classes Support
  • Powerful Server communication tools including asset management functions
  • Cookie Manipulation

Some Drawbacks

  • Custom Syntax for Element manipulation
  • Limited Widget Support

MochiKit Profile

Posted by Don Albrecht
Name: MochiKit
URL: http:///Mochikit.com
Native Server Environment: Python
Included Widgets: None
Download Size: 112 KB Compressed

Mochikit is a powerful set of libraries for streamlining the development and implementation of AJAX applications. MochiKit adds to the normal Event Handling, DOM manipulation & Communication tools with remarkable Visual Manipulation tools.

Some Highlights

  • A unique color library empowers the use of HSL colors, Color manipulation, Color Abstraction & CSS3 support
  • Powerful Style manipulation tools
  • Logging & Logging pane, powerful debugging tools without the need for alert();
  • Sorting & Iteration tools

Some Drawbacks

  • Relatively large download size for library
  • Lack of Widget Support
  • Lack of Support for Custom Widgets