Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Spor o budoucnost JavaScriptu vyřešen

V posledních letech se jednalo o návrhu nové verze skriptovacího jazyka JavaScript. Proces byl provázený kritikou a spory nastaly i uvnitř pracovní skupiny u ECMA. K řešení se došlo teprve nedávno. O které problémy se jednalo a proč vznikly? Jaká budoucnost JavaScript v následujících letech čeká?

Tweetni to Twitter Jaggni to! Jagg Del.icio.us Delicious

Programovací jazyk JavaScript si zaslouží řadu přívlastků. Je to jazyk nenáviděný i milovaný, nedotažený i nepochopený. Jazyk, který byl ještě před několika lety považován na webu za zbytečnost a čisté zlo, se s rozvojem webových aplikací pomalu zařazuje mezi nejdůležitější programovacích jazyky současnosti.

Poslední široce používaná verze ECMAScript 3 pochází z roku 1999, kdy se o současných webových aplikacích a JavaScriptových frameworcích nikomu nesnilo. Není proto divu, že vývojáři i implementátoři přemýšlí o budoucnosti a hledají cesty, jak JavaScript zmodernizovat, aby vyhovoval současným potřebám.

Pozn.: Název JavaScript je ochrannou známkou společnosti Sun Microsystem, proto standardizační proces používá termín ECMAScript. Pro účely tohoto článku si dovolíme oba termíny zaměňovat.

Odvážný ECMAScript 4

V roce 2007 byl představen návrh jazyka ECMAScript 4, označovaný též JavaScript 2, tedy JavaScript budoucnosti. Na návrh dohlížel mj. Brendan Eich, duchovní otec JavaScriptu a CTO Mozilla Corporation.

A návrh to byl odvážný. Nejednalo se o drobné úpravy a rozšíření, ale o velký skok, téměř o vytvoření nového jazyka. Návrh přidával mj. jmenné prostory, rozhraní, objekty a třídy s klasickou dědičností, konstanty, gettery, settery a proměnné s typy. A to vše při udržení zpětné kompatibility s původním jazykem, takže vedle klasické dědičnosti šlo používat i původní dědičnost prototypovou, vedle proměnných s typy zároveň proměnné bez typů atd. Více najdete v samotném návrhu nebo v prezentaci Johna Resiga.

ECMAScript 4 sklidil rozporuplné reakce. Hlavní výtkou byla jeho složitost a rychlý skok oproti stávající verzi. Volání po evoluci JavaScriptu namísto revoluce se objevilo i na blogu vývojářů Internet Exploreru. Chris Wilson (architekt IE) si s Brendanem Eichem ohledně ECMAScriptu otevřeně vyměňovali nesouhlasné reakce (Chrisovo vyjádření, Brendanův otevřený dopis a Chrisova odpověď).

Rozpory uvnitř ECMA

Problém nastal i v samotné pracovní skupině TC39 u ECMA. V březnu 2007 podali zástupci Yahoo a Microsoftu návrh na vytvoření nové verze ECMAScriptu, která by nebyla tolik revoluční a místo kompletního předělání jazyka se soustředila na základní problémy.

Poté se skupina rozštěpila. Zatímco část jejích členů (převážně zástupci Mozilly, Adobe, Opery a Googlu) pracovala na revolučním ECMAScriptu 4, další členové (převážně zástupci Yahoo a Microsoftu) začali práci na ECMAScriptu 3.1, který měl být toliko revizí a evolucí stávajícího ECMAScriptu 3.

Takové tříštění sil bylo neproduktivní pro obě strany. Jelikož specifikace vznikaly nezávisle, nebyla verze 4 kompatibilní se vznikající verzí 3.1, implementátoři zainteresovaní na tvorbě jedné specifikace neměli zájem na implementaci druhé atd. Problém trval déle jak rok.

Teprve nedávno, koncem července, bylo nalezeno kompromisní řešení. Na setkání v Oslu na půdě Opera Software se všem stranám podařilo na budoucnosti ECMAScriptu dohodnout. Řešení je označováno názvem Harmony.

Harmony – nalezený kompromis

Všichni zástupci pracovní skupiny se nyní spojí na tvorbě ECMAScriptu 3.1, který bude evolucí stávajícího ECMAScriptu 3. Začátkem roku 2009 budou hotovy jeho dvě nezávislé implementace.

Přitom se bude pomalu připravovat i další verze (její označení není určeno, možná to bude ECMAScript 3.2, možná ECMAScript 3.5 nebo ECMAScript 4, zatím je ale označována jako ECMAScript post-3.1 nebo prostě Harmony). Ačkoliv by měla přinést jistou revoluci, bude výrazně skromnější, než byl původní návrh ECMAScriptu 4.

Brendan Eich poznamenává: Je to dobrá správa pro všechny, jak pro ty, kdo dávají přednost menším změnám v jazyku, tak pro ty, kdo obhajují pokračující evoluci, která si žádá novou syntaxi, pokud ne rovnou novou sémantiku.

Co nás čeká v ECMAScriptu 3.1

Podívejme se zběžně na současný ECMAScript 3.1, ze kterého se bude vycházet. Velmi se podobá ECMAScriptu, který známe dnes (najdeme v něm např. pouze prototypovou dědičnost), ale obsahuje několik zajímavých rozšíření. Zlepšena je práce s objekty a důraz je kladen na bezpečnost při spolupráci skriptů z různých zdrojů (mashupy).

Najdeme zde mj. konstanty, gettery, settery, metody Object.freeze, Object.seal, Object.preven­tExtention a Object.clone, dlouho chybějící metodu String.trim, metody pro práci s JSON a funkcionální práce s poli z JavaScriptu 1.6. Je možné, že budou zahrnuta i některá další rozšíření JavaScriptu 1.6 a JavaScriptu 1.7 z Mozilly.

Čeho se v JavaScriptu nedočkáme

Ačkoliv podoba Harmony nám není jasná, je známo, že některé části se zahodí. John Resig (JavaScript evangelist Mozilla Corporation) upozorňuje: Zapomeňte na řadu věcí, které jste o ECMAScriptu 4 dosud slyšeli. Mnoho komplikovaných konceptů jsme zahodili.

Jedná se o jmenné prostory, mechanismus balíčků (packages) a early binding. Podle návrhářů tyto principy na Web nepatří a navíc zpomalují interpretaci jazyka. Brendan Eich prohlásil: Jedná se o finální rozhodnutí, nebudou zvažovány ani do budoucna.

Návrháři zároveň nehodlají slepě kopírovat současné trendy ale budují vlastní vizi. Brendan Eich říká: Hlavním bodem, podle mě stejně důležitým jako je vyřazení jmenných prostorů, je že komise má vizi pro rozšiřování jazyka a nebude se jen snažit naroubovat novou sémantiku na kombinaci existujících syntaxí ‚tří ze čtyř hlavních prohlížečů‘ a běžných rozšiřujících knihoven.

Stanovisko Adobe

Adobe, které se na ECMAScriptu 4 rovněž podílelo, se nechce některých odvážnějších myšlenek vzdát. Proto ačkoliv bude nadále spolupracovat na vývoji společného ECMAScriptu, do jeho ActionScriptu 3 se nejspíš dostanou i některá ze zavržených rozšíření. Adobe je na rozdíl od ostatních implementátorů ve specifické pozici. Zatímco pro výrobce prohlížečů je otázka interoperability klíčová, u ActionScriptu ji není třeba řešit, protože je používán pouze v produktech Adobe (Adobe Flash, Adobe Flex); navíc Adobe již některé z vlastností implementovalo a vzít vše zpět by pro ně bylo zbytečnou komplikací.

Závěr

Původní ECMAScript 4 se zařadil mezi odvážné návrhy (slůvko „odvážné“ je skutečně namístě), které nejspíš nebudou nikdy v praxi realizovány (maximálně částečně u Adobe), ale měl vliv na zrání nové vize a pomohl tak jistým způsobem při vytváření dalších verzí ECMAScriptu.

Je dobře, že se obě strany na budoucím vývoji ECMAScriptu dohodly, jinak konflikt mohl trvat mnohem déle se všemi negativními následky, které by mohl přinést. Pokud budou na novém návrhu pracovat všichni implementátoři, je velká šance, že se jej v příštích letech dočkáme ve všech prohlížečích.

Odkazy k tématu

Martin Hassman

Martin Hassman

Martin Hassman vymyslel a založil projekt Zdroják. Absolvoval Vysokou školu chemicko-technologickou v Praze. Pracoval jako webový vývojář a specialista na technologie Mozilla.org.

Školení: Pokročilejší kurz jazyka Java

Java je multiplatformní programovací jazyk, který vytvořila a vyvíjí společnost Sun. Java je silný, objektově orientovaný jazyk se širokou komunitou, nabízející především vysokou produktivitu vývoje.

  • Práce s řetězci
  • Regulární výrazy
  • Kolekce
  • Generiky
  • Smyčka typu "for" ve verzi Java 1.5
  • Výčty
  • Vlákna, synchronizace
  • Polymorfismus, RTTI
  • Java Beany
  • JDBC (práce s databázemi)
  • GUI (knihovny AWT a Swing)
  • Java na serveru (servlety, JSP)

Podrobnější informace a přihláška

Ohodnoťte jako ve škole:
Průměrná známka 2,94

Přehled názorů

a co tak python
peter 2. 9. 2008 01:01
Nový
├ 
Re: a co tak python
Samuel Kupka 2. 9. 2008 01:05
Nový
│
└ 
Re: a co tak python
Tomas Novella 2. 9. 2008 09:10
Nový
│
 
└ 
Re: a co tak python
anonymní uživatel 2. 9. 2008 14:44
Nový
│
 
 
└ 
Re: a co tak python
Tomas "sQuo" Novella 2. 9. 2008 15:19
Nový
│
 
 
 
├ 
Re: a co tak python
Radovan 2. 9. 2008 15:37
Nový
│
 
 
 
│
└ 
Re: a co tak python
Jakub Šťastný 2. 9. 2008 16:35
Nový
│
 
 
 
│
 
└ 
Re: a co tak python
Radovan 2. 9. 2008 20:12
Nový
│
 
 
 
├ 
Re: a co tak python
maks 2. 9. 2008 15:39
Nový
│
 
 
 
│
└ 
Re: a co tak python
Tomas "sQuo" Novella 2. 9. 2008 17:15
Nový
│
 
 
 
│
 
├ 
Re: a co tak python
Inkvizitor 2. 9. 2008 17:22
Nový
│
 
 
 
│
 
│
└ 
Re: a co tak python
Tomas "sQuo" Novella 2. 9. 2008 17:43
Nový
│
 
 
 
│
 
│
 
└ 
Re: a co tak python
Inkvizitor 2. 9. 2008 17:59
Nový
│
 
 
 
│
 
│
 
 
└ 
Re: a co tak python
Tomas "sQuo" Novella 2. 9. 2008 18:09
Nový
│
 
 
 
│
 
│
 
 
 
└ 
Re: a co tak python
mm 4. 9. 2008 13:31
Nový
│
 
 
 
│
 
├ 
Re: a co tak python
Pavel Císař 2. 9. 2008 17:50
Nový
│
 
 
 
│
 
│
└ 
Re: a co tak python
maks 2. 9. 2008 21:15
Nový
│
 
 
 
│
 
└ 
Re: a co tak python
Radovan 2. 9. 2008 21:29
Nový
│
 
 
 
└ 
Re: a co tak python
cortex.sk 2. 9. 2008 20:39
Nový
├ 
Re: a co tak python
Radovan 2. 9. 2008 01:13
Nový
│
└ 
Re: a co tak python
xxx 2. 9. 2008 13:15
Nový
│
 
└ 
Re: a co tak python
N 2. 9. 2008 13:51
Nový
│
 
 
└ 
Re: a co tak python
ldx 3. 9. 2008 20:11
Nový
├ 
Re: a co tak python
Inkvizitor 2. 9. 2008 02:12
Nový
├ 
Re: a co tak python
Trm 2. 9. 2008 04:47
Nový
│
└ 
Re: a co tak python
benzin 2. 9. 2008 08:09
Nový
│
 
├ 
Re: a co tak python - joke
Pavel Botoš 2. 9. 2008 14:09
Nový
│
 
│
└ 
Re: a co tak python - joke
krabik 2. 9. 2008 19:07
Nový
│
 
│
 
└ 
Re: a co tak python - joke
George 2. 9. 2008 19:41
Nový
│
 
└ 
Re: a co tak python
Trm 3. 9. 2008 07:06
Nový
│
 
 
└ 
Re: a co tak python
ldx 4. 9. 2008 10:07
Nový
├ 
Re: a co tak python
antipython 2. 9. 2008 08:55
Nový
│
├ 
Re: a co tak python
anonymní uživatel 2. 9. 2008 09:14
Nový
│
│
├ 
Re: a co tak python
anonymní uživatel 2. 9. 2008 09:33
Nový
│
│
│
├ 
Re: a co tak python
anonymní uživatel 2. 9. 2008 12:24
Nový
│
│
│
│
└ 
Re: a co tak python
anonymní uživatel 2. 9. 2008 13:35
Nový
│
│
│
│
 
├ 
Re: a co tak python
anonymní uživatel 2. 9. 2008 15:02
Nový
│
│
│
│
 
│
└ 
Re: a co tak python
Petr 2. 9. 2008 17:30
Nový
│
│
│
│
 
│
 
└ 
Re: a co tak python
maks 2. 9. 2008 21:26
Nový
│
│
│
│
 
└ 
Re: a co tak python
lol 2. 9. 2008 15:02
Nový
│
│
│
└ 
Re: python si bere mene pameti java
anonymní uživatel 3. 9. 2008 10:00
Nový
│
│
└ 
Re: a co tak python
anonymní uživatel 2. 9. 2008 12:19
Nový
│
│
 
├ 
Re: a co tak python
anonymní uživatel 2. 9. 2008 12:28
Nový
│
│
 
│
└ 
Re: a co tak python
anonymní uživatel 2. 9. 2008 12:32
Nový
│
│
 
│
 
└ 
Re: a co tak python
anonymní uživatel 2. 9. 2008 13:21
Nový
│
│
 
└ 
Pište prosím přezdívky, kdo má luštit kdo komu na co odpovídá
Inkvizitor 2. 9. 2008 12:29
Nový
│
│
 
 
├ 
Re: Pište prosím přezdívky, kdo má luštit kdo komu na co odpovídá
atarist 2. 9. 2008 13:26
Nový
│
│
 
 
│
└ 
Re: Pište prosím přezdívky, kdo má luštit kdo komu na co odpovídá
BlackRider 2. 9. 2008 15:19
Nový
│
│
 
 
│
 
├ 
Re: Pište prosím přezdívky, kdo má luštit kdo komu na co odpovídá
Pichi 2. 9. 2008 16:24
Nový
│
│
 
 
│
 
├ 
Re: Pište prosím přezdívky, kdo má luštit kdo komu na co odpovídá
Jakub Šťastný 2. 9. 2008 16:40
Nový
│
│
 
 
│
 
│
└ 
Re: Pište prosím přezdívky, kdo má luštit kdo komu na co odpovídá
BlackRider 2. 9. 2008 17:39
Nový
│
│
 
 
│
 
│
 
└ 
Re: Pište prosím přezdívky, kdo má luštit kdo komu na co odpovídá
Jakub Šťastný 2. 9. 2008 21:47
Nový
│
│
 
 
│
 
│
 
 
└ 
Re: Pište prosím přezdívky, kdo má luštit kdo komu na co odpovídá
BlackRider 3. 9. 2008 14:08
Nový
│
│
 
 
│
 
├ 
Re: Pište prosím přezdívky, kdo má luštit kdo komu na co odpovídá
Messa 2. 9. 2008 17:43
Nový
│
│
 
 
│
 
│
├ 
Re: Pište prosím přezdívky, kdo má luštit kdo komu na co odpovídá
maks 2. 9. 2008 21:31
Nový
│
│
 
 
│
 
│
└ 
Re: Pište prosím přezdívky, kdo má luštit kdo komu na co odpovídá
BlackRider 3. 9. 2008 14:01
Nový
│
│
 
 
│
 
└ 
Re: Pište prosím přezdívky, kdo má luštit kdo komu na co odpovídá
Guss 3. 9. 2008 08:58
Nový
│
│
 
 
└ 
Re: Pište prosím přezdívky, kdo má luštit kdo komu na co odpovídá
Pichi 2. 9. 2008 15:21
Nový
│
│
 
 
 
└ 
Re: Pište prosím přezdívky, kdo má luštit kdo komu na co odpovídá
Inkvizitor 2. 9. 2008 15:40
Nový
│
│
 
 
 
 
└ 
Re: Pište prosím přezdívky, kdo má luštit kdo komu na co odpovídá
Pichi 2. 9. 2008 16:25
Nový
│
│
 
 
 
 
 
├ 
Re: Pište prosím přezdívky, kdo má luštit kdo komu na co odpovídá
Inkvizitor 2. 9. 2008 16:42
Nový
│
│
 
 
 
 
 
│
└ 
Re: Pište prosím přezdívky, kdo má luštit kdo komu na co odpovídá
Pichi 2. 9. 2008 16:55
Nový
│
│
 
 
 
 
 
├ 
Re: Pište prosím přezdívky, kdo má luštit kdo komu na co odpovídá
Inkvizitor 2. 9. 2008 16:44
Nový
│
│
 
 
 
 
 
└ 
Re: Pište prosím přezdívky, kdo má luštit kdo komu na co odpovídá
eee 3. 9. 2008 16:38
Nový
│
├ 
Re: a co tak python
Peter Helcmanovsky 2. 9. 2008 09:17
Nový
│
│
└ 
Re: a co tak python
BlackRider 2. 9. 2008 15:31
Nový
│
└ 
Re: a co tak python
Radovan 2. 9. 2008 09:20
Nový
│
 
└ 
Re: a co tak python
eee 3. 9. 2008 16:46
Nový
│
 
 
└ 
Re: a co tak python
Radovan 3. 9. 2008 18:04
Nový
├ 
Re: a co tak python
O Simaban Lidan 2. 9. 2008 10:30
Nový
└ 
Re: a co tak python
Jakub Šťastný 2. 9. 2008 16:29
Nový
microshit zase jednou brzdí vývoj
بطر 2. 9. 2008 07:34
Nový
├ 
Re: microshit zase jednou brzdí vývoj
Petr 2. 9. 2008 09:12
Nový
│
├ 
Re: microshit zase jednou brzdí vývoj
Petr Je Mamrd 2. 9. 2008 09:38
Nový
│
│
├ 
Re: microshit zase jednou brzdí vývoj
Petr 2. 9. 2008 09:51
Nový
│
│
└ 
Re: microshit zase jednou brzdí vývoj
mofo 2. 9. 2008 09:59
Nový
│
├ 
Re: microshit zase jednou brzdí vývoj
Maverick 2. 9. 2008 10:37
Nový
│
└ 
Re: microshit zase jednou brzdí vývoj
Inkvizitor 2. 9. 2008 11:01
Nový
│
 
└ 
Re: microshit zase jednou brzdí vývoj
Petr 2. 9. 2008 13:25
Nový
│
 
 
└ 
Re: microshit zase jednou brzdí vývoj
Inkvizitor 2. 9. 2008 14:13
Nový
│
 
 
 
├ 
Re: microshit zase jednou brzdí vývoj
Petr 2. 9. 2008 14:40
Nový
│
 
 
 
│
├ 
Re: microshit zase jednou brzdí vývoj
anonymní uživatel 2. 9. 2008 15:18
Nový
│
 
 
 
│
└ 
Re: microshit zase jednou brzdí vývoj
JavaJava 4. 9. 2008 08:18
Nový
│
 
 
 
└ 
Re: microshit zase jednou brzdí vývoj
Podhy 2. 9. 2008 14:44
Nový
│
 
 
 
 
├ 
Re: microshit zase jednou brzdí vývoj
Inkvizitor 2. 9. 2008 14:56
Nový
│
 
 
 
 
└ 
Re: microshit zase jednou brzdí vývoj
eee 3. 9. 2008 16:52
Nový
└ 
Re: microshit zase jednou brzdí vývoj
Jakub Šťastný 2. 9. 2008 16:47
Nový
otazka
Peter 2. 9. 2008 13:22
Nový
├ 
Re: otazka
anonymní uživatel 2. 9. 2008 13:40
Nový
│
└ 
Re: otazka
Peter 2. 9. 2008 13:50
Nový
│
 
└ 
Re: otazka
Petr 2. 9. 2008 14:33
Nový
│
 
 
└ 
Re: otazka
Peter 2. 9. 2008 14:42
Nový
│
 
 
 
└ 
Re: otazka
anonymní uživatel 2. 9. 2008 14:58
Nový
│
 
 
 
 
└ 
Re: otazka
Peter 2. 9. 2008 15:11
Nový
│
 
 
 
 
 
└ 
Re: otazka
anonymní uživatel 2. 9. 2008 15:32
Nový
│
 
 
 
 
 
 
└ 
Re: otazka
Robert-Antonio 3. 9. 2008 11:36
Nový
│
 
 
 
 
 
 
 
└ 
Re: otazka
Radovan 3. 9. 2008 13:10
Nový
│
 
 
 
 
 
 
 
 
└ 
Re: otazka
maks 3. 9. 2008 14:53
Nový
│
 
 
 
 
 
 
 
 
 
└ 
Re: otazka
Radovan 3. 9. 2008 18:06
Nový
├ 
Re: otazka
anonymní uživatel 2. 9. 2008 14:54
Nový
├ 
Re: otazka
Palo 2. 9. 2008 15:50
Nový
└ 
Re: otazka
Peter Kuma 4. 9. 2008 20:04
Nový
chybka
lnx_bfu 2. 9. 2008 17:18
Nový
google chrome on the way
mw 2. 9. 2008 18:37
Nový
patlalove
LENIN POWER! 2. 9. 2008 20:13
Nový
├ 
Re: patlalove
anonymní uživatel 3. 9. 2008 10:58
Nový
├ 
Re: patlalove
eee 3. 9. 2008 16:55
Nový
│
└ 
Re: patlalove
Yaroukh 12. 2. 2009 19:51
Nový
└ 
Re: patlalove
anonymní uživatel 12. 2. 2009 15:46
Nový
ECMA4 a actionscript3
fo-ol 21. 9. 2008 01:23
Nový
       

Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.

Zasílat nově přidané příspěvky e-mailem