SlideShare une entreprise Scribd logo
1  sur  8
Télécharger pour lire hors ligne
Choosing a JavaScript library

Intro
One of Kauri1's goals is not to reinvent the wheel until necessary. A modern web application framework
these days needs a JavaScript library to provide common, reusable functionality and save us from writing
lots of repetitive code. Libraries also provide a layer of abstraction, thus hiding browser differences.
We do not want to write one ourselves because it saves time to use an existing one, plus these libraries are
more likely to contain fewer bugs because of the significant user base.
Because of the multitude of Javascript libraries, we started our search by selecting only the most-used, most-
popular and up-to-date Ajax-enabled libraries.


The contestants
                      Latest (non-                Size        the good         the bad       Licence      Browser
                      beta) release                                                                     compatibility


Dojo2                 1.0.2                50kb+          •     OOP        •    buggy      modified     Safari 3.0.x
                      (12/15/07)                          •     CSS3       •    ugly       BSD or       Opera 9.0+
                                                                                code       Academic     IE 6.0+
                                                          •     buildsystem
                                                                                           Free 2.1     FF1.5+
                                                                with       •    big
                                                                                                        Konqueror
                                                                compression
                                                                                                        3.5+
                                                          •     unittest
                                                          •     widgets
                                                                (Dijit)
Prototype3            1.6.0.2              ~120kb         •     support    •    poor      MIT           IE 6.0+
                      (01/25/08)                          •     Script.aculo.us4documentation           FF1.0+/
                                                                for UI      • extends                   Mozilla 1.7+
                                                                                Object.prototype        Safari 1.2+
                                                          •     OOP
                                                                                (*5, *6)
                                                                                not since
                                                                                1.4
                                                                            • extends
                                                                                js built-
                                                                                in
                                                                                objects
jQuery7               1.2.3                ~29kb          •     documentation
                                                                            •   only       MIT or GPL   FF1.5+
                      (02/08/08)                          •     easy to         selector                IE 6+
                                                                use             +effects                Safari 2.0.2+
                                                                                +some-                  Opera 9+
                                                          •     fast
                                                                                XHR
                                                          •     CSS 1-3,
                                                                            •   only for
                                                                basic
                                                                                simple
                                                                xpath
                                                                                and
                                                          •     CSS             small
                                                                selector        projects
                                                          •     lightweight


1.   http://www.kauriproject.org/wiki/65-kauri.html (The Kauri Project)



Choosing a JavaScript library                                                                                           1
ID: 69-kauri | Version: 21 | Date: 3/21/08 6:56:17 PM
•   chainable
                                                        •   plugins
                                                        •   namespaced
                                                        •   jQuery
                                                            UI for
                                                            widgets
                                                        •   cross site
                                                            Ajax
                                                        •   compatible
                                                            with
                                                            others
                                                            (trough
                                                            jQuery.noConflict())
                                                        •   xml as
                                                            context
                                                            object
                                                            (if($("status",xml).text()
                                                            ==
                                                            "2")...)
Ext JS8               2.0.1                500kb        •   support    •    big10        LGPL 3.0   IE 6+
                      (01/23/08)                        •   good                                    FF1.5+
                                                            collection                              Safari 2+
                                                            of                                      Opera 9+
                                                            widgets
                                                        •   UI-
                                                            centric
                                                            (+ or -)
                                                        •   on top of
                                                            jquery/
                                                            yui/
                                                            prototype
                                                            or
                                                            standalone
                                                        •   fast
                                                        •   client-
                                                            side data
                                                            model
                                                            (*9)
                                                        •   CSS 3
                                                        •   xpath
Yahoo UI              2.4.1                29kb+        •   history   •     slow    BSD             IE 6+
Library11             (12/19/07)                            manager •       big                     FF1.5+
                                                        •   documentation                           Safari 2+
                                                                      •     complex
                                                                                                    Opera 9+
                                                        •   modular •       verbose
                                                            (fetch
                                                            what you
                                                            need)
                                                        •   event
                                                            driven



Choosing a JavaScript library                                                                                   2
ID: 69-kauri | Version: 21 | Date: 3/21/08 6:56:17 PM
•   namespaced
                                                        •   CSS
                                                            framework
                                                        •   Skins
                                                        •   YUILoader12
MooTools13            1.1                  9kb+         •   lightweight •   extends    MIT          IE 6+
                      (05/07/07)                        •   fast            many                    FF
                                                                            of js                   Safari
                                                        •   easy
                                                                            built-in                Opera
                                                        •   modular         objects                 Camino
                                                        •   Object
                                                            Oriented
                                                        •   chainable
                                                        •   dynamic
                                                            loading
                                                            for
                                                            images,
                                                            css and
                                                            javascript
                                                            files
qooxdoo14             0.7.3                             •   buildsystem• non-          LGPL or EPL IE 5.5+
                      (01/14/08)                            for           CSS-                     FF 1.0+/
                                                            optimazing    based                    Mozilla 1.3+
                                                             and          styling                  Opera 8+
                                                            packaging                              Safari 3
                                                        •   namespaced
                                                        •   event
                                                            binding
                                                        •   cross-
                                                            browser
                                                            back
                                                            button
                                                            support
                                                        •   bookmarkability
                                                        •   AOP
                                                        •   IFrame
                                                            IO15
GWT16                 1.4.61                            •   browser                    Apache 2.0   IE
                      (11/03/07)                            history                                 Firefox
                                                        •   JUnit                                   Mozilla
                                                                                                    Safari
                                                        •   i18n
                                                                                                    Opera
                                                        •   Java
                                                            compiled
                                                            to
                                                            javascript

The pros and cons are (possibly biased) opinions collected from blogs and fora, or features promoted on the
homepages.
Disqualified:



Choosing a JavaScript library                                                                                     3
ID: 69-kauri | Version: 21 | Date: 3/21/08 6:56:17 PM
•    MochiKit17: seems to be deserted
 •    Rico18: dying community, low support


Our requirements for a JS library within Kauri
 1.   base for client-side restletport
 2.   cross-browser issues:
       • syntax
       • DOM model
       • event model
 3.   dynamic loading of js-files
 4.   event binding
 5.   unit testing
 6.   (widgets, effects)
 7.   integration of external widgets (Simile)
 8.   size, stability, maturity
 9.   compression
10.   i18n, L10n


Popularity (by number of searches)




The qooxdoo framework didn't have enough search volume to show up on the graph.




Choosing a JavaScript library                                                     4
ID: 69-kauri | Version: 21 | Date: 3/21/08 6:56:17 PM
Language
                          Custom                  OO          namespaced Namespacing             Chaining          Modular
                          event-                                 API
                          binding
Prototype                               19               20                                 21


Dojo                                    22               23                                 24


jQuery                                  25                                                  26


MooTools                                28               29
                                                                                                                                 (at
                                                                                                                   build-time)
ExtJS                                   31                                                  32


qooxdoo                                 33               34                                 35


YUI                                     36               37                                 38



There are arguments why a js framework should not try to be an OO programming language (see *39,*40 and
*41).


XmlHttpRequest
All libraries contain specialized methods for Ajax calls, with support for GET and POST requests,
parameters and callback functions. IFrame I/O is mostly used for file upload.

   XHR API                custom              Callback          Error          Cross-site        IFrame IO        Synchronous
                           HTTP                                handling        scripting
                          request
                          headers
Prototype42

Dojo43 *44                                                                                                   45


jQuery46

MooTools47

ExtJS48                                                                                     49               50


qooxdoo51                                                                                                    52


YUI53                                                                     54                                 55




39. http://mattsnider.com/javascript/prototype-vs-yui-round-1-oop-architecture/
40. http://www.geoffreymoller.com/2007/05/15/when-javascript-libraries-attack/
41. http://foohack.com/2007/08/yui-crockford-module-pattern-vs-prototypes-class-function/



Choosing a JavaScript library                                                                                                    5
ID: 69-kauri | Version: 21 | Date: 3/21/08 6:56:17 PM
CSS Framework integration
 •     jQuery + Blueprint56


GWT wrappers
GWT + ExtJS: gwt-ext57, MyGWT58
GWT + Dojo: Tatami59
GWT + Script.aculo.us: Script.aculo.us integration60
Java + qooxdoo: QWT61
JavaScript Native Interface (JSNI)62


Test 1: GWT Integration
 •     jQuery: Google Maps the jQuery Way63
 •     YUI: Google Maps + Yahoo UI Lib (YUI) = Mashup fun64
 •     qooxdoo: Google Maps widget65
 •     ExtJS: Adding a Google Map to a Tab or Window66
 •     MooTools: GMapsOverlay67, google-maps-lightbox68
 •     Prototype: gplotter69


Test 2: Simile
Simile Timeline and Timeplot are based on jQuery 1.2.1, which could cause conflicts.
 •     Dojo: Dojo and TimeLine70
 •     jQuery: How to make Timeline not conflict with jQuery71
 •     GWT: gwtsimiletimeline72
 •     Prototype: Timeline73


Test 3: i18n support
 •     Dojo: has a specific i18n module (*74).
 •     jQuery: no built-in i18n support. Localization is available for the datepicker-widget
 •     Prototype: no built-in i18n support.
 •     ExtJS: localization support (*75, *76).
 •     YUI: no built-in i18n support, there is however an internationalization plugin (*77).
 •     MooTools: no built-in i18n support.
 •     qooxdoo: i18n and L10n are fully supported (*78).
 •     GWT: internationalization support (*79).



57.   http://code.google.com/p/gwt-ext/
58.   http://mygwt.net/
59.   http://code.google.com/p/tatami/
60.   http://gwt.components.googlepages.com/script.aculo.usintegration
61.   http://qooxdoo.org/documentation/contrib/contributions/qwt/about
62.   http://code.google.com/webtoolkit/documentation/com.google.gwt.doc.DeveloperGuide.JavaScriptNativeInterface.html



Choosing a JavaScript library                                                                                            6
ID: 69-kauri | Version: 21 | Date: 3/21/08 6:56:17 PM
Test 4: Support for Unit testing
 •     qooxdoo: testrunner80
 •     Prototype: there's a test framework that can be extended for custom unit tests (*81).
 •     jQuery: internal test framework
 •     Dojo: has a unit testing harness, D.O.H.82
 •     MooTools: no unit testing
 •     Ext JS: no unit testing (*83, *84)
 •     YUI: YUI Test85
 •  GWT: JUnit integration86
Standalone js unit test tools:
 •     Crosscheck87
 •     Testcase88 (Prototype-based)
 •     Selenium89
 •     JsUnit90


Test 5: Building a custom widget
jQuery: Writing your own plugins91
Dojo: Creating new Dojo Widget92, Dojo Custom Widget Tutorial93, Create a Custom Javascript/AJAX
Widget with Dojo94
ExtJS: Writing Ext 2 Plugins95
Dojo, MooTools, jQuery, prototype: Creating an AJAX Rating Widget96


The first 3 losers
 •     MooTools:
        • extends many of js built-in objects
        • lack of namespace
 •     Prototype:
        • extends js built-in objects
        • no namespacing
 •     qooxdoo
        • not mature enough (still beta)


The final 4 contenders
 •     jQuery
        • blooming community
        • beautiful and concise language


91.   http://jquery.bassistance.de/jquery-getting-started.html#plug
92.   http://www.alexatnet.com/node/14
93.   http://www.coachwei.com/blog/_archives/2007/3/28/2841519.html
94.   http://taubler.com/articles/article_Create_a_Custom_Javascript_AJAX_Widget_with_Dojo?id=5
95.   http://extjs.com/learn/Tutorial:Writing_Ext_2_Plugins
96.   http://www.progressive-coding.com/tutorial.php?id=6



Choosing a JavaScript library                                                                      7
ID: 69-kauri | Version: 21 | Date: 3/21/08 6:56:17 PM
• lightweight
 •    Dojo
       • most powerful
 •    Ext JS
       • possibility to combine with JUI or jQuery
 •    YUI
       • modular
       • docmentation
       • CSS framework included


Our Winner
The JS framework we'll use and support in Kauri97 will be jQuery98.


Links
JavaScript Frameworks Compared
http://www.zenperfect.com/2007/08/11/javascript-frameworks-compared/
Top 5 javascript frameworks
http://www.whenpenguinsattack.com/2007/04/24/top-5-javascript-frameworks/
JavaScript Libraries By Comparison
http://javascriptant.com/articles/24/javascript-libraries-by-comparison
Javascript Toolkit Comparison
http://www.ja-sig.org/wiki/display/UP3/Javascript+Toolkit+Comparison
Why I’m moving from jQuery to ExtJs
http://coderseye.com/2007/why-im-moving-from-jquery-to-extjs.html
2007 Ajax Tools Usage Survey Results
http://www.surveymonkey.com/sr.aspx?
sm=fXLiKcnKlD6cO5bRe961aBB6NCCWytRyY3rParAYmwA_3d
A Mootools Tutorial
http://clientside.cnet.com/wiki/mootorial
Choosing a JavaScript library
http://www.b-list.org/weblog/2007/jan/22/choosing-javascript-library/
Prototype and jQuery: A code comparison
http://ajaxian.com/archives/prototype-and-jquery-a-code-comparison
Simplify Ajax development with jQuery
http://www.ibm.com/developerworks/library/x-ajaxjquery.html
Easy Ajax with jQuery
http://www.sitepoint.com/article/ajax-jquery
Survey of js frameworks
http://zhenhua-guo.blogspot.com/2007/12/karajan-workflow-composition.html




97. http://www.kauriproject.org/wiki/65-kauri.html (The Kauri Project)
98. http://jquery.com/



Choosing a JavaScript library                                               8
ID: 69-kauri | Version: 21 | Date: 3/21/08 6:56:17 PM

Contenu connexe

Tendances

MariaDB: The 2012 Edition
MariaDB: The 2012 EditionMariaDB: The 2012 Edition
MariaDB: The 2012 EditionColin Charles
 
MariaDB 10: The Complete Tutorial
MariaDB 10: The Complete TutorialMariaDB 10: The Complete Tutorial
MariaDB 10: The Complete TutorialColin Charles
 
MariaDB - a MySQL Replacement #SELF2014
MariaDB - a MySQL Replacement #SELF2014MariaDB - a MySQL Replacement #SELF2014
MariaDB - a MySQL Replacement #SELF2014Colin Charles
 
MariaDB 10: A MySQL Replacement - HKOSC
MariaDB 10: A MySQL Replacement - HKOSC MariaDB 10: A MySQL Replacement - HKOSC
MariaDB 10: A MySQL Replacement - HKOSC Colin Charles
 
JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]
JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]
JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]Malin Weiss
 
Your backend architecture is what matters slideshare
Your backend architecture is what matters slideshareYour backend architecture is what matters slideshare
Your backend architecture is what matters slideshareColin Charles
 
MariaDB 10 Tutorial - 13.11.11 - Percona Live London
MariaDB 10 Tutorial - 13.11.11 - Percona Live LondonMariaDB 10 Tutorial - 13.11.11 - Percona Live London
MariaDB 10 Tutorial - 13.11.11 - Percona Live LondonIvan Zoratti
 
Running your Java EE applications in the Cloud
Running your Java EE applications in the CloudRunning your Java EE applications in the Cloud
Running your Java EE applications in the CloudArun Gupta
 
The Dolphins Leap Again
The Dolphins Leap AgainThe Dolphins Leap Again
The Dolphins Leap AgainIvan Zoratti
 
Ora mysql bothGetting the best of both worlds with Oracle 11g and MySQL Enter...
Ora mysql bothGetting the best of both worlds with Oracle 11g and MySQL Enter...Ora mysql bothGetting the best of both worlds with Oracle 11g and MySQL Enter...
Ora mysql bothGetting the best of both worlds with Oracle 11g and MySQL Enter...Ivan Zoratti
 
How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...
How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...
How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...Malin Weiss
 
Odnoklassniki.ru Architecture
Odnoklassniki.ru ArchitectureOdnoklassniki.ru Architecture
Odnoklassniki.ru ArchitectureDmitry Buzdin
 
Free Software and the Future of Database Technology
Free Software and the Future of Database TechnologyFree Software and the Future of Database Technology
Free Software and the Future of Database Technologyelliando dias
 
MariaDB 10.0 - SkySQL Paris Meetup
MariaDB 10.0 - SkySQL Paris MeetupMariaDB 10.0 - SkySQL Paris Meetup
MariaDB 10.0 - SkySQL Paris MeetupMariaDB Corporation
 
The Complete MariaDB Server tutorial
The Complete MariaDB Server tutorialThe Complete MariaDB Server tutorial
The Complete MariaDB Server tutorialColin Charles
 
MariaDB 5.5 and what comes next - Percona Live NYC 2012
MariaDB 5.5 and what comes next - Percona Live NYC 2012MariaDB 5.5 and what comes next - Percona Live NYC 2012
MariaDB 5.5 and what comes next - Percona Live NYC 2012Colin Charles
 
Technology Day 2011 MySQL & MariaDB
Technology Day 2011 MySQL & MariaDBTechnology Day 2011 MySQL & MariaDB
Technology Day 2011 MySQL & MariaDBDan-Claudiu Dragoș
 
Scotas - Oracle Open World Sao Pablo
Scotas - Oracle Open World Sao PabloScotas - Oracle Open World Sao Pablo
Scotas - Oracle Open World Sao PabloJulian Arocena
 

Tendances (18)

MariaDB: The 2012 Edition
MariaDB: The 2012 EditionMariaDB: The 2012 Edition
MariaDB: The 2012 Edition
 
MariaDB 10: The Complete Tutorial
MariaDB 10: The Complete TutorialMariaDB 10: The Complete Tutorial
MariaDB 10: The Complete Tutorial
 
MariaDB - a MySQL Replacement #SELF2014
MariaDB - a MySQL Replacement #SELF2014MariaDB - a MySQL Replacement #SELF2014
MariaDB - a MySQL Replacement #SELF2014
 
MariaDB 10: A MySQL Replacement - HKOSC
MariaDB 10: A MySQL Replacement - HKOSC MariaDB 10: A MySQL Replacement - HKOSC
MariaDB 10: A MySQL Replacement - HKOSC
 
JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]
JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]
JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]
 
Your backend architecture is what matters slideshare
Your backend architecture is what matters slideshareYour backend architecture is what matters slideshare
Your backend architecture is what matters slideshare
 
MariaDB 10 Tutorial - 13.11.11 - Percona Live London
MariaDB 10 Tutorial - 13.11.11 - Percona Live LondonMariaDB 10 Tutorial - 13.11.11 - Percona Live London
MariaDB 10 Tutorial - 13.11.11 - Percona Live London
 
Running your Java EE applications in the Cloud
Running your Java EE applications in the CloudRunning your Java EE applications in the Cloud
Running your Java EE applications in the Cloud
 
The Dolphins Leap Again
The Dolphins Leap AgainThe Dolphins Leap Again
The Dolphins Leap Again
 
Ora mysql bothGetting the best of both worlds with Oracle 11g and MySQL Enter...
Ora mysql bothGetting the best of both worlds with Oracle 11g and MySQL Enter...Ora mysql bothGetting the best of both worlds with Oracle 11g and MySQL Enter...
Ora mysql bothGetting the best of both worlds with Oracle 11g and MySQL Enter...
 
How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...
How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...
How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...
 
Odnoklassniki.ru Architecture
Odnoklassniki.ru ArchitectureOdnoklassniki.ru Architecture
Odnoklassniki.ru Architecture
 
Free Software and the Future of Database Technology
Free Software and the Future of Database TechnologyFree Software and the Future of Database Technology
Free Software and the Future of Database Technology
 
MariaDB 10.0 - SkySQL Paris Meetup
MariaDB 10.0 - SkySQL Paris MeetupMariaDB 10.0 - SkySQL Paris Meetup
MariaDB 10.0 - SkySQL Paris Meetup
 
The Complete MariaDB Server tutorial
The Complete MariaDB Server tutorialThe Complete MariaDB Server tutorial
The Complete MariaDB Server tutorial
 
MariaDB 5.5 and what comes next - Percona Live NYC 2012
MariaDB 5.5 and what comes next - Percona Live NYC 2012MariaDB 5.5 and what comes next - Percona Live NYC 2012
MariaDB 5.5 and what comes next - Percona Live NYC 2012
 
Technology Day 2011 MySQL & MariaDB
Technology Day 2011 MySQL & MariaDBTechnology Day 2011 MySQL & MariaDB
Technology Day 2011 MySQL & MariaDB
 
Scotas - Oracle Open World Sao Pablo
Scotas - Oracle Open World Sao PabloScotas - Oracle Open World Sao Pablo
Scotas - Oracle Open World Sao Pablo
 

En vedette

Functional Java Script - Webtechcon 2009
Functional Java Script - Webtechcon 2009Functional Java Script - Webtechcon 2009
Functional Java Script - Webtechcon 2009wolframkriesing
 
Studi di settore. Le novità intervenute con i provvedimenti legislativi emana...
Studi di settore. Le novità intervenute con i provvedimenti legislativi emana...Studi di settore. Le novità intervenute con i provvedimenti legislativi emana...
Studi di settore. Le novità intervenute con i provvedimenti legislativi emana...gianlkr
 
Cambridge ielts-5
Cambridge ielts-5Cambridge ielts-5
Cambridge ielts-5sphonix63
 
Trabalho académico "Estudo sobre o impacto da implementação de uma extranet n...
Trabalho académico "Estudo sobre o impacto da implementação de uma extranet n...Trabalho académico "Estudo sobre o impacto da implementação de uma extranet n...
Trabalho académico "Estudo sobre o impacto da implementação de uma extranet n...Cláudia Samouqueiro e Vasconcellos
 
Anthony's Certificate
Anthony's CertificateAnthony's Certificate
Anthony's CertificateAnthony Wah
 
<img src="../i/r_14.png" />
<img src="../i/r_14.png" /><img src="../i/r_14.png" />
<img src="../i/r_14.png" />tutorialsruby
 
photoshop-scanlines-patterns-tutorial-rev
photoshop-scanlines-patterns-tutorial-revphotoshop-scanlines-patterns-tutorial-rev
photoshop-scanlines-patterns-tutorial-revtutorialsruby
 
TurboCAD%20Pro%20V15.2%20Heritage%20High%20Rise%20SAMPLE
TurboCAD%20Pro%20V15.2%20Heritage%20High%20Rise%20SAMPLETurboCAD%20Pro%20V15.2%20Heritage%20High%20Rise%20SAMPLE
TurboCAD%20Pro%20V15.2%20Heritage%20High%20Rise%20SAMPLEtutorialsruby
 

En vedette (20)

bestpractices
bestpracticesbestpractices
bestpractices
 
handout
handouthandout
handout
 
flex_4_tutorials
flex_4_tutorialsflex_4_tutorials
flex_4_tutorials
 
User_Manual
User_ManualUser_Manual
User_Manual
 
javascript2
javascript2javascript2
javascript2
 
blank-edelman
blank-edelmanblank-edelman
blank-edelman
 
rubyonrails
rubyonrailsrubyonrails
rubyonrails
 
INLS890_ProjectPlan
INLS890_ProjectPlanINLS890_ProjectPlan
INLS890_ProjectPlan
 
Functional Java Script - Webtechcon 2009
Functional Java Script - Webtechcon 2009Functional Java Script - Webtechcon 2009
Functional Java Script - Webtechcon 2009
 
perl-pocket
perl-pocketperl-pocket
perl-pocket
 
Studi di settore. Le novità intervenute con i provvedimenti legislativi emana...
Studi di settore. Le novità intervenute con i provvedimenti legislativi emana...Studi di settore. Le novità intervenute con i provvedimenti legislativi emana...
Studi di settore. Le novità intervenute con i provvedimenti legislativi emana...
 
Cambridge ielts-5
Cambridge ielts-5Cambridge ielts-5
Cambridge ielts-5
 
TPP3_3
TPP3_3TPP3_3
TPP3_3
 
Trabalho académico "Estudo sobre o impacto da implementação de uma extranet n...
Trabalho académico "Estudo sobre o impacto da implementação de uma extranet n...Trabalho académico "Estudo sobre o impacto da implementação de uma extranet n...
Trabalho académico "Estudo sobre o impacto da implementação de uma extranet n...
 
Anthony's Certificate
Anthony's CertificateAnthony's Certificate
Anthony's Certificate
 
Presentacion de verdad y falacia
Presentacion de verdad y falaciaPresentacion de verdad y falacia
Presentacion de verdad y falacia
 
<img src="../i/r_14.png" />
<img src="../i/r_14.png" /><img src="../i/r_14.png" />
<img src="../i/r_14.png" />
 
Trains
TrainsTrains
Trains
 
photoshop-scanlines-patterns-tutorial-rev
photoshop-scanlines-patterns-tutorial-revphotoshop-scanlines-patterns-tutorial-rev
photoshop-scanlines-patterns-tutorial-rev
 
TurboCAD%20Pro%20V15.2%20Heritage%20High%20Rise%20SAMPLE
TurboCAD%20Pro%20V15.2%20Heritage%20High%20Rise%20SAMPLETurboCAD%20Pro%20V15.2%20Heritage%20High%20Rise%20SAMPLE
TurboCAD%20Pro%20V15.2%20Heritage%20High%20Rise%20SAMPLE
 

Similaire à 69-kauri

Introduction to Napa.js
Introduction to Napa.jsIntroduction to Napa.js
Introduction to Napa.jsDaiyi Peng
 
T4T Training day - NodeJS
T4T Training day - NodeJST4T Training day - NodeJS
T4T Training day - NodeJSTim Sommer
 
Introduction To NetBeans IDE
Introduction To NetBeans IDEIntroduction To NetBeans IDE
Introduction To NetBeans IDEMuhammad Ghazali
 
01/2009 - Portral development with liferay
01/2009 - Portral development with liferay01/2009 - Portral development with liferay
01/2009 - Portral development with liferaydaveayan
 
Angular 2 overview
Angular 2 overviewAngular 2 overview
Angular 2 overviewJesse Warden
 
Talk Paris Infovis 091207132953 Phpapp01(2)
Talk Paris Infovis 091207132953 Phpapp01(2)Talk Paris Infovis 091207132953 Phpapp01(2)
Talk Paris Infovis 091207132953 Phpapp01(2)johnnybiz
 
Using Web Standards to create Interactive Data Visualizations for the Web
Using Web Standards to create Interactive Data Visualizations for the WebUsing Web Standards to create Interactive Data Visualizations for the Web
Using Web Standards to create Interactive Data Visualizations for the Webphilogb
 
Social Connections 2015 CrossWorlds and Domino
Social Connections 2015 CrossWorlds and DominoSocial Connections 2015 CrossWorlds and Domino
Social Connections 2015 CrossWorlds and DominoPaul Withers
 
Frameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic ReviewFrameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic Reviewnetc2012
 
OSGi and JavaScript - Simon Kaegi
OSGi and JavaScript - Simon KaegiOSGi and JavaScript - Simon Kaegi
OSGi and JavaScript - Simon Kaegimfrancis
 
End to-end W3C - JS.everywhere(2012) Europe
End to-end W3C - JS.everywhere(2012) EuropeEnd to-end W3C - JS.everywhere(2012) Europe
End to-end W3C - JS.everywhere(2012) EuropeAlexandre Morgaut
 
Tips For Maintaining OSS Projects
Tips For Maintaining OSS ProjectsTips For Maintaining OSS Projects
Tips For Maintaining OSS ProjectsTaro L. Saito
 
JavaScript Libraries (Ajax Exp 2006)
JavaScript Libraries (Ajax Exp 2006)JavaScript Libraries (Ajax Exp 2006)
JavaScript Libraries (Ajax Exp 2006)jeresig
 

Similaire à 69-kauri (20)

Introduction to Napa.js
Introduction to Napa.jsIntroduction to Napa.js
Introduction to Napa.js
 
T4T Training day - NodeJS
T4T Training day - NodeJST4T Training day - NodeJS
T4T Training day - NodeJS
 
Introduction To NetBeans IDE
Introduction To NetBeans IDEIntroduction To NetBeans IDE
Introduction To NetBeans IDE
 
01/2009 - Portral development with liferay
01/2009 - Portral development with liferay01/2009 - Portral development with liferay
01/2009 - Portral development with liferay
 
Angular 2 overview
Angular 2 overviewAngular 2 overview
Angular 2 overview
 
Talk Paris Infovis 091207132953 Phpapp01(2)
Talk Paris Infovis 091207132953 Phpapp01(2)Talk Paris Infovis 091207132953 Phpapp01(2)
Talk Paris Infovis 091207132953 Phpapp01(2)
 
Using Web Standards to create Interactive Data Visualizations for the Web
Using Web Standards to create Interactive Data Visualizations for the WebUsing Web Standards to create Interactive Data Visualizations for the Web
Using Web Standards to create Interactive Data Visualizations for the Web
 
Social Connections 2015 CrossWorlds and Domino
Social Connections 2015 CrossWorlds and DominoSocial Connections 2015 CrossWorlds and Domino
Social Connections 2015 CrossWorlds and Domino
 
Working and Features of HTML5 and PhoneGap - An Overview
Working and Features of HTML5 and PhoneGap - An OverviewWorking and Features of HTML5 and PhoneGap - An Overview
Working and Features of HTML5 and PhoneGap - An Overview
 
Frameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic ReviewFrameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic Review
 
Rails 3.1
Rails 3.1Rails 3.1
Rails 3.1
 
OSGi and JavaScript - Simon Kaegi
OSGi and JavaScript - Simon KaegiOSGi and JavaScript - Simon Kaegi
OSGi and JavaScript - Simon Kaegi
 
Be faster then rabbits
Be faster then rabbitsBe faster then rabbits
Be faster then rabbits
 
java completed units.docx
java completed units.docxjava completed units.docx
java completed units.docx
 
java full 1.docx
java full 1.docxjava full 1.docx
java full 1.docx
 
java full.docx
java full.docxjava full.docx
java full.docx
 
End to-end W3C - JS.everywhere(2012) Europe
End to-end W3C - JS.everywhere(2012) EuropeEnd to-end W3C - JS.everywhere(2012) Europe
End to-end W3C - JS.everywhere(2012) Europe
 
Tips For Maintaining OSS Projects
Tips For Maintaining OSS ProjectsTips For Maintaining OSS Projects
Tips For Maintaining OSS Projects
 
JavaScript Libraries (Ajax Exp 2006)
JavaScript Libraries (Ajax Exp 2006)JavaScript Libraries (Ajax Exp 2006)
JavaScript Libraries (Ajax Exp 2006)
 
java full 1 (Recovered).docx
java full 1 (Recovered).docxjava full 1 (Recovered).docx
java full 1 (Recovered).docx
 

Plus de tutorialsruby

<img src="../i/r_14.png" />
<img src="../i/r_14.png" /><img src="../i/r_14.png" />
<img src="../i/r_14.png" />tutorialsruby
 
TopStyle Help & <b>Tutorial</b>
TopStyle Help & <b>Tutorial</b>TopStyle Help & <b>Tutorial</b>
TopStyle Help & <b>Tutorial</b>tutorialsruby
 
The Art Institute of Atlanta IMD 210 Fundamentals of Scripting <b>...</b>
The Art Institute of Atlanta IMD 210 Fundamentals of Scripting <b>...</b>The Art Institute of Atlanta IMD 210 Fundamentals of Scripting <b>...</b>
The Art Institute of Atlanta IMD 210 Fundamentals of Scripting <b>...</b>tutorialsruby
 
<img src="../i/r_14.png" />
<img src="../i/r_14.png" /><img src="../i/r_14.png" />
<img src="../i/r_14.png" />tutorialsruby
 
<img src="../i/r_14.png" />
<img src="../i/r_14.png" /><img src="../i/r_14.png" />
<img src="../i/r_14.png" />tutorialsruby
 
Standardization and Knowledge Transfer – INS0
Standardization and Knowledge Transfer – INS0Standardization and Knowledge Transfer – INS0
Standardization and Knowledge Transfer – INS0tutorialsruby
 
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa0602690047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269tutorialsruby
 
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa0602690047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269tutorialsruby
 
BloggingWithStyle_2008
BloggingWithStyle_2008BloggingWithStyle_2008
BloggingWithStyle_2008tutorialsruby
 
BloggingWithStyle_2008
BloggingWithStyle_2008BloggingWithStyle_2008
BloggingWithStyle_2008tutorialsruby
 
cascadingstylesheets
cascadingstylesheetscascadingstylesheets
cascadingstylesheetstutorialsruby
 
cascadingstylesheets
cascadingstylesheetscascadingstylesheets
cascadingstylesheetstutorialsruby
 

Plus de tutorialsruby (20)

<img src="../i/r_14.png" />
<img src="../i/r_14.png" /><img src="../i/r_14.png" />
<img src="../i/r_14.png" />
 
TopStyle Help & <b>Tutorial</b>
TopStyle Help & <b>Tutorial</b>TopStyle Help & <b>Tutorial</b>
TopStyle Help & <b>Tutorial</b>
 
The Art Institute of Atlanta IMD 210 Fundamentals of Scripting <b>...</b>
The Art Institute of Atlanta IMD 210 Fundamentals of Scripting <b>...</b>The Art Institute of Atlanta IMD 210 Fundamentals of Scripting <b>...</b>
The Art Institute of Atlanta IMD 210 Fundamentals of Scripting <b>...</b>
 
<img src="../i/r_14.png" />
<img src="../i/r_14.png" /><img src="../i/r_14.png" />
<img src="../i/r_14.png" />
 
<img src="../i/r_14.png" />
<img src="../i/r_14.png" /><img src="../i/r_14.png" />
<img src="../i/r_14.png" />
 
Standardization and Knowledge Transfer – INS0
Standardization and Knowledge Transfer – INS0Standardization and Knowledge Transfer – INS0
Standardization and Knowledge Transfer – INS0
 
xhtml_basics
xhtml_basicsxhtml_basics
xhtml_basics
 
xhtml_basics
xhtml_basicsxhtml_basics
xhtml_basics
 
xhtml-documentation
xhtml-documentationxhtml-documentation
xhtml-documentation
 
xhtml-documentation
xhtml-documentationxhtml-documentation
xhtml-documentation
 
CSS
CSSCSS
CSS
 
CSS
CSSCSS
CSS
 
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa0602690047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
 
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa0602690047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
 
HowTo_CSS
HowTo_CSSHowTo_CSS
HowTo_CSS
 
HowTo_CSS
HowTo_CSSHowTo_CSS
HowTo_CSS
 
BloggingWithStyle_2008
BloggingWithStyle_2008BloggingWithStyle_2008
BloggingWithStyle_2008
 
BloggingWithStyle_2008
BloggingWithStyle_2008BloggingWithStyle_2008
BloggingWithStyle_2008
 
cascadingstylesheets
cascadingstylesheetscascadingstylesheets
cascadingstylesheets
 
cascadingstylesheets
cascadingstylesheetscascadingstylesheets
cascadingstylesheets
 

Dernier

[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 

Dernier (20)

[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 

69-kauri

  • 1. Choosing a JavaScript library Intro One of Kauri1's goals is not to reinvent the wheel until necessary. A modern web application framework these days needs a JavaScript library to provide common, reusable functionality and save us from writing lots of repetitive code. Libraries also provide a layer of abstraction, thus hiding browser differences. We do not want to write one ourselves because it saves time to use an existing one, plus these libraries are more likely to contain fewer bugs because of the significant user base. Because of the multitude of Javascript libraries, we started our search by selecting only the most-used, most- popular and up-to-date Ajax-enabled libraries. The contestants Latest (non- Size the good the bad Licence Browser beta) release compatibility Dojo2 1.0.2 50kb+ • OOP • buggy modified Safari 3.0.x (12/15/07) • CSS3 • ugly BSD or Opera 9.0+ code Academic IE 6.0+ • buildsystem Free 2.1 FF1.5+ with • big Konqueror compression 3.5+ • unittest • widgets (Dijit) Prototype3 1.6.0.2 ~120kb • support • poor MIT IE 6.0+ (01/25/08) • Script.aculo.us4documentation FF1.0+/ for UI • extends Mozilla 1.7+ Object.prototype Safari 1.2+ • OOP (*5, *6) not since 1.4 • extends js built- in objects jQuery7 1.2.3 ~29kb • documentation • only MIT or GPL FF1.5+ (02/08/08) • easy to selector IE 6+ use +effects Safari 2.0.2+ +some- Opera 9+ • fast XHR • CSS 1-3, • only for basic simple xpath and • CSS small selector projects • lightweight 1. http://www.kauriproject.org/wiki/65-kauri.html (The Kauri Project) Choosing a JavaScript library 1 ID: 69-kauri | Version: 21 | Date: 3/21/08 6:56:17 PM
  • 2. chainable • plugins • namespaced • jQuery UI for widgets • cross site Ajax • compatible with others (trough jQuery.noConflict()) • xml as context object (if($("status",xml).text() == "2")...) Ext JS8 2.0.1 500kb • support • big10 LGPL 3.0 IE 6+ (01/23/08) • good FF1.5+ collection Safari 2+ of Opera 9+ widgets • UI- centric (+ or -) • on top of jquery/ yui/ prototype or standalone • fast • client- side data model (*9) • CSS 3 • xpath Yahoo UI 2.4.1 29kb+ • history • slow BSD IE 6+ Library11 (12/19/07) manager • big FF1.5+ • documentation Safari 2+ • complex Opera 9+ • modular • verbose (fetch what you need) • event driven Choosing a JavaScript library 2 ID: 69-kauri | Version: 21 | Date: 3/21/08 6:56:17 PM
  • 3. namespaced • CSS framework • Skins • YUILoader12 MooTools13 1.1 9kb+ • lightweight • extends MIT IE 6+ (05/07/07) • fast many FF of js Safari • easy built-in Opera • modular objects Camino • Object Oriented • chainable • dynamic loading for images, css and javascript files qooxdoo14 0.7.3 • buildsystem• non- LGPL or EPL IE 5.5+ (01/14/08) for CSS- FF 1.0+/ optimazing based Mozilla 1.3+ and styling Opera 8+ packaging Safari 3 • namespaced • event binding • cross- browser back button support • bookmarkability • AOP • IFrame IO15 GWT16 1.4.61 • browser Apache 2.0 IE (11/03/07) history Firefox • JUnit Mozilla Safari • i18n Opera • Java compiled to javascript The pros and cons are (possibly biased) opinions collected from blogs and fora, or features promoted on the homepages. Disqualified: Choosing a JavaScript library 3 ID: 69-kauri | Version: 21 | Date: 3/21/08 6:56:17 PM
  • 4. MochiKit17: seems to be deserted • Rico18: dying community, low support Our requirements for a JS library within Kauri 1. base for client-side restletport 2. cross-browser issues: • syntax • DOM model • event model 3. dynamic loading of js-files 4. event binding 5. unit testing 6. (widgets, effects) 7. integration of external widgets (Simile) 8. size, stability, maturity 9. compression 10. i18n, L10n Popularity (by number of searches) The qooxdoo framework didn't have enough search volume to show up on the graph. Choosing a JavaScript library 4 ID: 69-kauri | Version: 21 | Date: 3/21/08 6:56:17 PM
  • 5. Language Custom OO namespaced Namespacing Chaining Modular event- API binding Prototype 19 20 21 Dojo 22 23 24 jQuery 25 26 MooTools 28 29 (at build-time) ExtJS 31 32 qooxdoo 33 34 35 YUI 36 37 38 There are arguments why a js framework should not try to be an OO programming language (see *39,*40 and *41). XmlHttpRequest All libraries contain specialized methods for Ajax calls, with support for GET and POST requests, parameters and callback functions. IFrame I/O is mostly used for file upload. XHR API custom Callback Error Cross-site IFrame IO Synchronous HTTP handling scripting request headers Prototype42 Dojo43 *44 45 jQuery46 MooTools47 ExtJS48 49 50 qooxdoo51 52 YUI53 54 55 39. http://mattsnider.com/javascript/prototype-vs-yui-round-1-oop-architecture/ 40. http://www.geoffreymoller.com/2007/05/15/when-javascript-libraries-attack/ 41. http://foohack.com/2007/08/yui-crockford-module-pattern-vs-prototypes-class-function/ Choosing a JavaScript library 5 ID: 69-kauri | Version: 21 | Date: 3/21/08 6:56:17 PM
  • 6. CSS Framework integration • jQuery + Blueprint56 GWT wrappers GWT + ExtJS: gwt-ext57, MyGWT58 GWT + Dojo: Tatami59 GWT + Script.aculo.us: Script.aculo.us integration60 Java + qooxdoo: QWT61 JavaScript Native Interface (JSNI)62 Test 1: GWT Integration • jQuery: Google Maps the jQuery Way63 • YUI: Google Maps + Yahoo UI Lib (YUI) = Mashup fun64 • qooxdoo: Google Maps widget65 • ExtJS: Adding a Google Map to a Tab or Window66 • MooTools: GMapsOverlay67, google-maps-lightbox68 • Prototype: gplotter69 Test 2: Simile Simile Timeline and Timeplot are based on jQuery 1.2.1, which could cause conflicts. • Dojo: Dojo and TimeLine70 • jQuery: How to make Timeline not conflict with jQuery71 • GWT: gwtsimiletimeline72 • Prototype: Timeline73 Test 3: i18n support • Dojo: has a specific i18n module (*74). • jQuery: no built-in i18n support. Localization is available for the datepicker-widget • Prototype: no built-in i18n support. • ExtJS: localization support (*75, *76). • YUI: no built-in i18n support, there is however an internationalization plugin (*77). • MooTools: no built-in i18n support. • qooxdoo: i18n and L10n are fully supported (*78). • GWT: internationalization support (*79). 57. http://code.google.com/p/gwt-ext/ 58. http://mygwt.net/ 59. http://code.google.com/p/tatami/ 60. http://gwt.components.googlepages.com/script.aculo.usintegration 61. http://qooxdoo.org/documentation/contrib/contributions/qwt/about 62. http://code.google.com/webtoolkit/documentation/com.google.gwt.doc.DeveloperGuide.JavaScriptNativeInterface.html Choosing a JavaScript library 6 ID: 69-kauri | Version: 21 | Date: 3/21/08 6:56:17 PM
  • 7. Test 4: Support for Unit testing • qooxdoo: testrunner80 • Prototype: there's a test framework that can be extended for custom unit tests (*81). • jQuery: internal test framework • Dojo: has a unit testing harness, D.O.H.82 • MooTools: no unit testing • Ext JS: no unit testing (*83, *84) • YUI: YUI Test85 • GWT: JUnit integration86 Standalone js unit test tools: • Crosscheck87 • Testcase88 (Prototype-based) • Selenium89 • JsUnit90 Test 5: Building a custom widget jQuery: Writing your own plugins91 Dojo: Creating new Dojo Widget92, Dojo Custom Widget Tutorial93, Create a Custom Javascript/AJAX Widget with Dojo94 ExtJS: Writing Ext 2 Plugins95 Dojo, MooTools, jQuery, prototype: Creating an AJAX Rating Widget96 The first 3 losers • MooTools: • extends many of js built-in objects • lack of namespace • Prototype: • extends js built-in objects • no namespacing • qooxdoo • not mature enough (still beta) The final 4 contenders • jQuery • blooming community • beautiful and concise language 91. http://jquery.bassistance.de/jquery-getting-started.html#plug 92. http://www.alexatnet.com/node/14 93. http://www.coachwei.com/blog/_archives/2007/3/28/2841519.html 94. http://taubler.com/articles/article_Create_a_Custom_Javascript_AJAX_Widget_with_Dojo?id=5 95. http://extjs.com/learn/Tutorial:Writing_Ext_2_Plugins 96. http://www.progressive-coding.com/tutorial.php?id=6 Choosing a JavaScript library 7 ID: 69-kauri | Version: 21 | Date: 3/21/08 6:56:17 PM
  • 8. • lightweight • Dojo • most powerful • Ext JS • possibility to combine with JUI or jQuery • YUI • modular • docmentation • CSS framework included Our Winner The JS framework we'll use and support in Kauri97 will be jQuery98. Links JavaScript Frameworks Compared http://www.zenperfect.com/2007/08/11/javascript-frameworks-compared/ Top 5 javascript frameworks http://www.whenpenguinsattack.com/2007/04/24/top-5-javascript-frameworks/ JavaScript Libraries By Comparison http://javascriptant.com/articles/24/javascript-libraries-by-comparison Javascript Toolkit Comparison http://www.ja-sig.org/wiki/display/UP3/Javascript+Toolkit+Comparison Why I’m moving from jQuery to ExtJs http://coderseye.com/2007/why-im-moving-from-jquery-to-extjs.html 2007 Ajax Tools Usage Survey Results http://www.surveymonkey.com/sr.aspx? sm=fXLiKcnKlD6cO5bRe961aBB6NCCWytRyY3rParAYmwA_3d A Mootools Tutorial http://clientside.cnet.com/wiki/mootorial Choosing a JavaScript library http://www.b-list.org/weblog/2007/jan/22/choosing-javascript-library/ Prototype and jQuery: A code comparison http://ajaxian.com/archives/prototype-and-jquery-a-code-comparison Simplify Ajax development with jQuery http://www.ibm.com/developerworks/library/x-ajaxjquery.html Easy Ajax with jQuery http://www.sitepoint.com/article/ajax-jquery Survey of js frameworks http://zhenhua-guo.blogspot.com/2007/12/karajan-workflow-composition.html 97. http://www.kauriproject.org/wiki/65-kauri.html (The Kauri Project) 98. http://jquery.com/ Choosing a JavaScript library 8 ID: 69-kauri | Version: 21 | Date: 3/21/08 6:56:17 PM