Przejdź do treści

ECMAScript 5. Kiedy będzie codziennością?

Gdyby programista korzystał na co dzień tylko z najnowszych technologii świat byłby "zbyt" idealny. Niestety, ale zdarza się ciągle bardzo często kiedy to klienci do listy kompatybilnych przeglądarek naszego oprogramowania nadal dodają tak stare przeglądarki jak Internet Explorer 6.x, 7.x oraz 8.x.

Baner promujący artykuł

A teraz trochę historii. Przeglądarka Internet Explorer 6.0 została wydana 27 sierpnia 2001, krótko po wydaniu Windows XP. Czyli ponad 10 lat temu! I teraz pytanie, dlaczego są jeszcze ludzie którzy korzystają z tak "doświadczonej" przeglądarki?! Popularność tej przeglądarki to nie cały 1% całej Polski internautów.

Z kolei przeglądarka Internet Explorer 7.0 została wydana pod koniec 2006 roku. Popularność tej przeglądarki wynosi lekko ponad 3%. Jedynym plusem tego browsera, moim zdaniem, jest to, że wreszcie przeglądarki z Redmond mają wsparcie dla "PNG alpha channel". Bez tego obchodzenie się z obrazkami w formacie *.png jest bardzo niewygodne dla specjalnie dedykowanej przeglądarki IE6. Trzeba stosować JavaScript'owe hacki, które nakładają obrazek półprzezroczysty na element, który to ma tło w formie obrazka `*.png`.

Wersja 8.x przeglądarki Internet Explorer już wspiera niewielką część specyfikacji, ale nie jest to na tyle pomocne przy tworzeniu aplikacji aby można było się tym chwalić. IE8 również wrzucamy do kosza z "odpadkami". Niestety, ale popularność tej przeglądarki plasuje się na 3 miejscu wśród przeglądarek polskich internautów. Albowiem wynosi ona lekko ponad 15%.

Wymieniłem te przeglądarki gdyż "jeszcze" mają one wpływ na użycie standardów w naszych aplikacjach, ale nie oferują żadnego z elementów nowego standardu ES5 według kangax.github.com.

Godne polecenia są najnowsze wersje Firefox 8.x oraz Chrome 15.x które mają zaimplementowaną pełną specyfikację ECMAScript 5! Należą się gromkie brawa dla programistów z Mozilla Corporation oraz Google Inc.

Najnowsza wersja specyfikacji 5.1 ujrzała światło dzienne w czerwcu 2011. Zawiera ona 258 stron w których opisuje takie cuda jak m. in:

Object.getPrototypeOf,
Object.getOwnPropertyDescriptor,
Object.getOwnPropertyNames,
Object.create,
Object.defineProperty,
Object.defineProperties,
Object.seal,
Object.freeze,
Object.preventExtensions,
Object.isSealed,
Object.isFrozen,
Object.isExtensible,
Object.keys,

Function.prototype.bind,

Array.prototype.indexOf,
Array.prototype.lastIndexOf,
Array.prototype.every,
Array.prototype.some,
Array.prototype.forEach,
Array.prototype.map,
Array.prototype.filter,
Array.prototype.reduce,
Array.prototype.reduceRight,

String.prototype.trim,

Date.now,
Date.prototype.toISOString,
Date.prototype.toJSON
Ciekawa prezentacja:
slideshare.net/fgalassi/javascript-the-new-parts
Kompatybilność przeglądarek oraz silników w ramach ES 5:
kangax.github.com/es5-compat-table/
Strona główna specyfikacji:
ecma-international.org/publications/standards/Ecma-262.htm
Dobrzy ludzie postanowili napisać skrypt który emuluje obecność standardu ES5 w przeglądarce.
github.com/kriskowal/es5-shim/blob/master/es5-shim.js
Dane statystyczne pochodzą z 2011 roku z serwisu:
ranking.pl/