Hi,

I'd like to announce the 0.9 (API stable) release of the Concrete
(http://github.com/hafriedlander/jquery.concrete) and Selector (http://
github.com/hafriedlander/jquery.selector) libraries for jQuery.

Concrete provides a brand new model of javascript code organisation –
a replacement for Object Oriented programming that is focused on
adding functions to DOM elements based on their structure and content.
It’s a merging of the model and view layer that initially seems weird,
but can give very powerful results.

We’re standing on the shoulders of giants here, taking ideas from
Prototype’s behaviour & lowpro and jQuery’s effen & livequery.
Concrete extends these concepts to provide a complete alternative to
traditional OO design - self-aware methods, inheritance, polymorphism,
constructors and destructors, namespacing and getter/setter style
properties, all without a single class definition.

Compared to jQuery.plugins and jQuery.UI widgets, Concrete provides:

 * code clarity - the code structure leads to more readable code
 * extensibility - specificity based method selection allows the
injection of logic almost anywhere without monkey patching
 * greater organisational capabilities - syntax promotes modularity
 * reduced name clashes - powerful refactoring-free namespacing
eliminates name pollution

A key component of Concrete is Selector - a css selector engine
developed in conjunction with Concrete to give it maximum performance.
For the use patterns is it designed for, it can out-perform jQuery's
native Sizzle selector engine by an order of magnitude.

Developed by me, Hamish Friedlander, and partially sponsored by
SilverStripe (http://www.silverstripe.org/), Concrete is in use in
several projects internally, and is a key component of the CMS
redevelopment for the next version of SilverStripe.

A taste:

$('div').concrete({
        highlight: function(){
                this.effect('bounce');
        }
});

$('div.important').concrete({
        highlight: function(){
                this._super();
                this.animate({background: 'white'});
        }
});

$('#namediv').highlight();

In addition to the source (http://github.com/hafriedlander/
jquery.concrete), a tutorial (http://hafriedlander.github.com/
jquery.concrete/tutorial/) and a screencast (http://www.vimeo.com/
6353390) are available to help introduce the new concepts.

Hamish Friedlander
SilverStripe

Reply via email to