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

Hlavní navigace

CoffeeScript po devíti měsících

Před tři čtvrtě rokem, v prosinci 2010, jsme si na stránkách Zdrojáku představili CoffeeScript – nový jazyk, postavený nad JavaScriptem, který akcentuje třídy, lambda funkce a podobné rysy. Pojďme se podívat, jak se za tu dobu CoffeScript ujal (či neujal) a jak se proměnilo jeho vnímání.

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

Prostý výčet novinek a nových nástrojů pro CoffeeScript by byl poměrně nudný, proto jsem se tentokrát zeptal na názor lidí, co CoffeeScript používají. A myslím, že nejlepší bude dát si na úvod rovnou jeden citát:

Pochybuji, že se CoffeeScript ujme. Vlastně nepochybuji, jsem si zcela jist, neujme se, protože ekosystém. Široká audience nikdy CoffeeScript nepřijme, protože nejsou příklady, nejsou editory, nejsou code syntax highlightery, nejsou debuggery, nejsou přátelé na IM, prostě CoffeeScript je v ekosystému RIA aplikací vetřelec. Syntax pro rychlejší a přehlednější psaní js není to podstatné, ač jsem si sám dlouho myslel opak, co rozhoduje. Je smutné, když někdo investuje svůj čas do reimplementace ko­la…

psal Daniel Steigerwald v prosinci 2010. Jeho názor byl tehdy logický a samozřejmý. CoffeeScript ale prodělal intenzivní vývoj, stojí za ním jména jako 37signals, přilákal mnoho vývojářů pro Ruby, stal se součástí Rails… Zkrátka ukázal určitou životaschopnost. Po tři čtvrtě roce říká Daniel Steigerwald:

Ač jsem byl k Coffeescriptu zpočátku skeptický, dal jsem mu na pár týdnů šanci. Romantická koketérie záhy přerostla v strhující vášeň. Obavy, zda se podaří integrovat Coffeescript do již řadu měsíců běžícího projektu, se rozplynuly. Čím to?
Coffeescript je především krásný.
Whitespace syntax se s nadbytečným smetím C-like jazyků nedá srovnávat. Nejde jen o to ušetřit si pár znaků při psaní kódu, ale hlavně ulevit očím při jeho čtení. Kód se totiž násobně častěji čte, než píše. Představte si, že byste četli poezii, kde by každá řádka končila středníkem, a verše samy by byly uzavřené ve složených závorkách (tuším, že vogonská poezie se právě takhle píše).
Pominu-li syntax, co dalšího oblibuji? Coffeescript je chytrý. Není nutné psát var, deklarace jsou implicitní. Dále je tu elegantní a strohá definice třídy, skrze klíčové slovo class. Že všechno je v Coffeescriptu výraz. A že už nikdy nemusím přemýšlet, zdali iterovat pomocí for in, nebo $.each. A nikdy už volat bind jen proto, že chci užít closure a zachovat this. A lambda výrazy, must have každého funkcionálního jazyka. Taky to, že nelze (není snadné), psát dlouhé řádkové nudle usopleného kódu o > 120 znacích, tolik oblíbené ve světě jQuery.
Syntaxe Coffeescriptu je stabilní, a jeho autor natolik příčetný, aby odmítal radikálnější změny. Co ekosystém? Použitelné nástroje existují, a každý den se rodí nové. Jak už jsem psal, integrace do rozjetého projektu byla, navzdory nehostinným Windows a zkamenělému Visual Studiu, lehká.
Na závěr otázka: existují důvody, proč se Coffeescriptu vyhnout? Myslím, že ano. Například: „proto, že jsem ignorant a nové nástroje mne nezajímají, programování mě vlastně nebaví, navíc teď fakt nemám ani jeden volný den se něco učit, KTHXBY. V úctě Jaroslav Vogon“
PS: když dovolíte, jedna ukázka: https://gist.git­hub.com/969246

Obrácení svatého Šavla? Nebylo jediné, podobné diskuse probíhaly i ve světě (Diskuse: CoffeeScript a „nový JavaScript“). V lednu jsme přinesli zprávičku o nástroji Mug (Mug: kompilujte CoffeeScript do Javy (JVM)), v dubnu následovala už zmíněná integrace do Rails (Rails 3.1 s trochou kontroverze), integrace do SproutCore, vytvoření značkovacího jazyka se syntaxí CoffeeScriptu (CoffeeScript ve SproutCore i jako HTML markup), syntaktické zvýrazňovače a mnoho dalších nástrojů. Před měsícem vyšla kniha o CoffeeScriptu od Pragmatic Programmers a nic nenasvědčuje tomu, že by „hype opadal“.

Anketa

Jak to máte s CoffeeScriptem?

       

Coffee a Node.js

CoffeeScript se velmi dobře sžil s další „novinkou“, totiž javascriptovým nástrojem Node.js. Zde opět dám slovo člověku, který obojí používá – na otázku Proč právě CoffeeScript a Node.js? odpověděl Jiří Knesl:

JavaScript přehlušil Ruby, dá se říct, že lidé snad i migrují k JavaScriptu a dělají z něj jazyk budoucnosti. Pardon, z CoffeeScriptu (nestačí už jen to, že v Railsech si nenaprogramujete v JavaScriptu ani řádku, dokud ten Coffee nevypnete?). To je samo o sobě dost zvláštní, v souvislosti s rok starým Coffee obzvlášť.

Dobře si pamatuju, jak se mě i lidem okolo JavaScript roky zajídal. Na ty validace formulářů jsme ho použili s krajním zapřením, s křivou hubou jsme to odladili i pro internet průzkumník 6 a říkali si: „zlaté PHPčko“.

A najednou: Rhinoceros, V8, node.JS. Javascript je rychlý. Jako C++! Mnohdy rychlejší. Stalo se, že JavaScript přestal být nemanželským synovcem z šestého kolena s rumunskou matkou a podivným strýcem Igorem. Naopak by dnes JavaScript šel spíš přirovnat k příběhu ošklivého kačátka.

Ať už si myslíte cokoliv, ve skutečnosti je ten jazyk geniální. Funkcionální, objektový, má jen minimum funkcí v globálním namespace. Neskutečně dynamický – jde zasáhnout do globálního namespace, což ohromně zpřehlední kód (byť někteří puristé si pořád myslí, že když na svém malém webu změním globální Array, Bůh zabije koťátko).

Problém JavaScriptu je v jeho ukecanosti. Kéž by byl víc jako Listp, Smalltalk nebo Python! Uvnitř JavaScriptu tepe Scheme a Self, skvělé jazyky, s oběma bych dělal daleko radši než s čímkoli s C-čkoidní syntaxí. To je důvodem úspěchu Coffee – vytěžil z JS ohromné věci, dotáhl ho tak daleko, že když dnes píšu aplikaci v Coffee a node.js, stačí mi polovina řádků, co potřebuju v PHP. Je to jednoznačně tím, že Coffee odkrylo funkcionální část v JS, a zároveň ohromně silným návrhem, který JavaScript má, a který Coffee vytáhlo na světlo tím, že odstranilo snad 30 let zastaralou C-čkoidní syntax.

Další problém JS byl ten, že neexistovala cesta, jak ho pustit na serveru. A tento problém s příchodem node.js padl tak kolosálním způsobem, že v tom snad má prsty Chuck „Closure“ Norris. Že bude JavaScript (a tedy i Coffee) rychlejší než C++, Java, C#, Python, no to je bomba! Kdyby mi tohle někdo řekl před pěti lety, poklepu si na čelo a pošlu ho… vypnout si garbage collector.

Dnes se dá říct, že ten, kdo začne přinejmenším koukat po tom, jak psát v node.js, si do budoucna otevírá dveře pro extrémně rychlé aplikace napsané za velmi málo času.

A co vy? Dáte CoffeeScriptu šanci?

Martin Malý

Martin Maly

Začal programovat v roce 1984 s progra­movatelnou kalkulačkou. Pokračoval k BASICu, assembleru Z80, Forthu, Pascalu, Céčku, dalším assemblerům, před časem v PHP a teď je rád, že neprogramuje…

Jiří Knesl

Jiří Knesl

Jiří Knesl pořádá školení PHP, Zend Frameworku a unit testování. Získejte více informací o školení Zend Frameworku.

Daniel Steigerwald

Autor je AJAX a .NET programátor na volné noze specializující se na složité Javascriptové aplikace, které jsou mu výzvou. Je autorem služby AMapy.cz včetně API.

Školení: Návrh a používání MySQL databáze

 

Naučte se používat jednu z nejrozšířenějších databází. Dozvíte se vše potřebné od návrhu až po samotné využití MySQL v projektech.

Školení pro všechny, kteří se chtějí naučit efektivně pracovat s MySQL nebo se v práci s touto databází zlepšit.

Přihláška a podrobné informace

Přehled názorů

Re: CoffeeScript po devíti měsících
Visgean Skeloru 19. 8. 2011 02:14
Nový
Re: CoffeeScript po devíti měsících
blizz 19. 8. 2011 05:01
Nový
Re: CoffeeScript po devíti měsících
blizz 19. 8. 2011 07:13
Nový
└ 
Re: CoffeeScript po devíti měsících
Martin Malý 19. 8. 2011 09:22
Nový
Chjo...
Bronislav Klučka 19. 8. 2011 09:29
Nový
V anketě...
Filip Procházka 19. 8. 2011 09:32
Nový
└ 
Re: V anketě...
anonymní kecal 19. 8. 2011 12:59
Nový
 
└ 
Re: V anketě...
asdasd 21. 8. 2011 03:18
Nový
čtyři znaky
Čelo 19. 8. 2011 09:53
Nový
fajn, ale co takto tutorial
srigi . 19. 8. 2011 19:40
Nový
├ 
Re: fajn, ale co takto tutorial
Michal 20. 8. 2011 11:15
Nový
│
└ 
Re: fajn, ale co takto tutorial
Vojtěch Kohout 21. 8. 2011 17:53
Nový
└ 
Re: fajn, ale co takto tutorial
Martin Malý 20. 8. 2011 15:03
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