jQuery
State of the
   Union
Usage
40%
30%
20%
(23 million)   2009   2010 (116 million)
Ajax   Rails   jQuery
Growth




 Ajax   Rails   jQuery
Governance
jQuery Governance Rules
All Outlays
Require a
    Vote
So far:
Team Meetings
 Conferences
 Audio/Visual
 UI Developer
Future Outlays:
 Infrastructure
  Developers
jQuery Mobile
Team Meetings
  Conferences
Future
Outlays?
Executive
  Board
Rey Bango
  Yehuda Katz
   John Resig
Jonathan Sharp
   Leah Silber
Ralph Whitbeck
Richard D. Worth
Rey Bango
  Yehuda Katz
   John Resig
Jonathan Sharp
   Leah Silber
Ralph Whitbeck
Richard D. Worth
Conflicts of
 Interest
Other Areas:
Advance Approval
     Votes
  Membership
   Subteams
Path to
Contribution
Subteams
jQuery UI   Infrastructure   Design    Dev




 Mobile     Docs    Events    Dev. Relations
Clear
Description
Mentoring
   New
Contributors
Contributor
  License
Agreement
Finalized
The jQuery
 project will
own the code
Ownership can
 be transferred
only to an entity
 agreeing with
 the same rules
jQuery will
  always be
Open Source
jQuery will
  always be
Open Source.
Adoption
Adobe
Adobe Hearts jQuery
“
In short, we believe jQuery
has become a nearly
standard library of the
web. In many ways, it is no
longer just about one
project but really belongs
to the web as a whole.
Code
jQuery 1.4.3
JSLint
Enforce Style
$ make lint
Modularity
All jQuery can
be individually
     loaded
Script Loader?
Big win:
Test suite
without a
build step
CSS
Full rewrite of
   the CSS
   module
Purpose:
Extensibility
Purpose:
Extensibility
 (Performance)
jQuery.rotate
jQuery.cssHooks.rotate = {
  set: function( elem, value ) {
    var _support = support,
      supportTransform = _support.transform,
      cos, sin,
      centerOrigin;

    if (typeof value === 'string') {
      value = toRadian(value);
    }

    $.data( elem, 'transform', {
      rotate: value
    });
Native
Performance
   Where
  Possible
Official
Plugins
datalink
Link forms
live with JS
   Objects
Developed
  with
Microsoft
var user = new User();

$("form").link(user, {
   firstName: "first-name",
   lastName: "last-name"
})
var product = {};

$("#rank").link(product, {
  salesRank: {
    convertBack: function(val, source, target) {
      $(target).height(value * 2);
    }
  }
});

$(product).data("salesRank", 12);
alert($("#rank").height()); // 24
(general .data
improvement)
jQuery
Template
Also
developed
  with
Microsoft
$("#test").append(
  "<li><em>${name}</em> (${year})</li>",
  data
)
var data = { firstName: "Yehuda" };
$("#item").tmpl(data).appendTo("ul");

<script id="item" type="text/html">
  <li>${firstName}</li>
</script>
var lastItem = $("ul").tmplItem();
var person    = lastItem.data;
var htmlNodes = lastItem.nodes;
Plugins:
Focusing on
  full apps
jQuery Mobile
Lots of
platforms
// HANDLE: $("#id")
} else {
  elem = document.getElementById( match[2] );

 // Check parentNode to catch when Blackberry 4.6 returns
 // nodes that are no longer in the document #6963
 if ( elem && elem.parentNode ) {
Blackberry
    Opera
Windows Mobile
 Mobile Firefox
   Symbian
     etc.
Phase 1:
jQuery Core
Fix bugs in all
    major
   browsers
(A and B
  graded
browsers)
Phase 1 is a
continuing
  effort
Phase 2:
jQuery Mobile
A framework
for building
mobile web
     sites
Widgets
   +
Layout
jQuery 1.5
More Bugfixes
More Bugfixes
 (including
   mobile)
Rewrite
of .attr()
Rewrite of
 $.ajax()
jQuery.subclass
var myQuery = jQuery.subclass();

myQuery.fn.getId = function() {
  return this.id;
}
jQuery("#foo").getId() // error
myQuery("#foo").getId() // "foo"
Personally
Porting
   SproutCore
 improvements
into jQuery Core
Plus official
  plugins
Basically:
HTML5 features
Thank you!
Questions?

jQuery State of the Union - Yehuda Katz