Ima li smisla koristiti CoffeeScript?

javascriptprogramiranje

CoffeeScript mi je prilikom prvog susreta ostavio WTF dojam. Kod koji nakom pretvorbe rezultira JavaScriptom?! Ima li to smisla? I zašto se uopće gnjaviti s učenjem nove gramatike, novog jezika kad se može pisati JavaScript i izbjeći jedan dodatni korak i još jedan sloj u zeljastoj strukturi web aplikacije?


CoffeeScript je inspiriran dvojcem Ruby-Python, kod je čitljiviji i kraći, najpopularniji je u Ruby zajedinici, u produkciji ga koristi ekipa iz 37signala i podrška za njega će biti uključena u inačici 3.1 Ruby on Railsa. Tu su vam se već stvari vjerojatno malo posložile. CoffeeScript je c00l ninja jezik kojeg svaki digitalni samuraj ili superheroj mora znati jer on je jedan od izvora njegove moći.


Bez obzira na magična svojstva kako CoffeeScript može biti bolji od JavaScripta kad se sva magija gubi njegovom pretvorbom? I kako to debugirati (ili razgodniti kao što to profesor Lászlo reče)? Kod klasičnih jezika, koji se prevode, razgodnik (a može i razbubnik) vas neće baciti u strojni kod već će vam ukazati na grešku u retku vašeg koda (budimo iskreni i priznajmo da prečesto promaši pa ukaže na pogrešan redak). U CoffeeScript slučaju greške morate natjeravati u generiranom JavaScript kodu. Ima li to smisla? Želite li pobjeći od ružnog JavaScript koda i uživati u prekrasnom CoffeeScriptu ipak ćete na kraju završiti s prljavim rukama u ružnom kodu onog prvog. Ne možete pobjeći od njega. Ne želite učiti JavaScript, CoffeeScript vam je puno zgodniji i njega bi mogli naučiti? Prije ili kasnije bi se mogli naći u nerješivim problemima. Zlatno pravilo CoffeeScripta je: "To je samo JavaScript".


Ima li onda CoffeeScript smisla? Za dva-tri reda JavaScripta koji nadopunjavaju funkcionalnost nekog dijela web stranice sigurno ne. Za veliku aplikaciju gdje bi trebalo napisati brdo JavaScript koda, i na kojoj surađuje više programera, ipak vrijedi razmisliti. CoffeeScript, osim što dodaje sloj kompleksnosti, dodaje i novi način kontrole i provjere koda. Dodajte još jedan plus ukoliko je riječ o kodu na stranicu poslužitelja (npr. nešto vezano uz Node.js). Dodajte veliki minus ukoliko na raspolaganju imate programere koji rade od 8-16, ne vole učiti nove stvari i njima je to samo posao. Rails vam je u krvi? Kako ste uopće pročitali ovaj tekst kad za vas nema dvojbe. ;-)



Komentari

27. travnja 2011. 07:37

Koristim coffeescript već duže vrijeme na aplikaciji koja sadrži dosta javascripta i mogu reći da sam samo i isključivo oduševljen. Iako je prvih 2, 3 dana prošlo uglavnom u onoj live konzoli "try coffeescript" gdje sam natjeravao kod tako da dobijem željeni javascript :), sada mi je ovo jednostavno milina. Istina, uklapam se ovaj profil "rails vam je u krvi", ali i u onaj "programer 8-16", a rekao bih da je coffeescript spas svakome tko misli pisati više od 5 redaka javascripta, pogotovo kad se dođe do pisanja razreda, nasljeđivanja i sličnih "divota" koje nam nudi javascript, a ljepši i čišći kod (bez suvišnih zagrada i vitica) je uvijek lakše i pisati i održavati. Istina jest da se sva magija gubi pretvorbom, ali tada nam magija više nije ni bitna jer smo mi svoj posao obavili (brže i jednostavnije). Iako je točno da debugiramo generirani javascript, uz coffeescript sigurno neće biti sintaksnih pogrešaka u generiranom javascriptu, a logičke je prilično lako uhvatiti jer je generirani kod vrlo čitljiv i jasan. S druge strane, još nisam došao do toga da moram nešto ozbiljno debugirati, a mislim da je to dobrim dijelom i zbog coffeescripta.

Eto, po meni definitivno nešto što treba koristiti, nisam još naletio na lošu stranu :)

28. travnja 2011. 20:08

@Josip: programer od "8-16" se ne odnosi na radno vrijeme već na stanje svijesti - mislio sam na programere koji se isključe nakon što napuste radno mjesto i ne razmišljaju o poslu tj. o programiranju do ponovnog povratka na psoao.