Najlepsze pytania
Chronologia
Czat
Perspektywa

CoffeeScript

język programowania Z Wikipedii, wolnej encyklopedii

Remove ads

CoffeeScriptjęzyk programowania transpilowany do JavaScriptu. CoffeeScript dodaje lukier składniowy zainspirowany przez Ruby’ego i Pythona, aby zwiększyć łatwość użycia[1]. Język oferuje także bardziej wyrafinowane możliwości, takie jak przetwarzanie tablic i dopasowywanie do wzorców.

Szybkie fakty Pojawienie się, Paradygmat ...
Remove ads

CoffeeScript cieszy się stosunkowo dużą popularnością w społeczności programistów Ruby’ego. Twórcy Ruby on Rails stworzyli na jego bazie system szablonów i sam CoffeeScript był również jedną z bibliotek dostarczanych z Ruby on Rails od wersji 3.1. Brendan Eich stwierdził, że CoffeeScript miał wpływ na wersje ES6 języka JavaScript.

Remove ads

Historia

Podsumowanie
Perspektywa

W dniu 13 grudnia 2009 roku Jeremy Ashkenas(inne języki) wykonał pierwszy commit (Git) dla CoffeeScript z komentarzem: „initial commit of the mystery language[2]. Transpilator (parser i lekser) został napisany w języku Ruby[2]. Oficjalne, wstępne wydanie pojawiło się 24 grudnia tego samego roku[3].

Na początku 2010 roku Ashkenas wydał wersję 0.5, w której kluczową zmianą było zastąpienie Ruby'ego przez transpilator pisany w CoffeeScript z nakładką utworzoną za pomocą generatora parserów Jison (podobnego do Bisona)[1]. Jison tworzył kod JavaScript, więc możliwe stało się uruchomienie CS w Node.js[4]. Na tym etapie autor ostrzegał jeszcze o niestabilności CS, w szczególności o możliwych, znacznych zmianach składni CS[1].

W listopadzie 2010 twórcy Ruby on Rails wydali nowy system szablonów bazujący na CoffeScript[5]. Natomiast 24 grudnia 2010 roku Ashkenas na portalu Hacker News(inne języki) ogłosił wydanie stabilnej wersji 1.0.0[6][7]. W sierpniu 2011, wraz z wydaniem Ruby on Rails w wersji 3.1, CoffeeScript stał się jedną z bibliotek dostarczanych w ramach platformy RoR[8].

W 2011 Brendan Eich, jeden z członków komitetu TC39, przyznał, że CoffeScript jest „dobrze wykonany i wygodniejszy w użyciu niż JS” (wówczas ES5)[9]. Jednocześnie zauważył, że CS jako swoisty polyfill nie będzie miał szans osiągnąć podobnej wydajności do JS i to JS powinien się zmieniać w kierunku wygody użycia znanej z CS[9]. W swoim artykule porównywał CS z propozycjami, które zamierza przedstawić TC39 w pracach nad „Harmony” (wersja JS, która później przerodziła się w ES6)[9]. Parametry resztkowe oraz wyrażenia lambda (funkcje strzałkowe) znane z CS pojawiły się później w podobnej formie w JS, w tym w wersji ES6 znanej później jako ES2015[1][10][11].

13 września 2012 roku Dropbox ogłosił, że ich kod po stronie przeglądarki został przepisany z JavaScript na CoffeeScript, jednak w maju 2017 roku przeniesiono go do TypeScript[12][13].

18 września 2017 roku wydano wersję 2.0.0, która „ma na celu przyniesienie CoffeeScript do współczesnej ery JavaScript, zamykając luki w kompatybilności z JavaScript i jednocześnie zachowując czystą składnię, która jest znakiem rozpoznawczym CoffeeScript”[14].

Remove ads

Dystrybucja

Kompilator CoffeeScript jest self-hosting(inne języki) od wersji 0.5 i jest dostępny jako pakiet Node.js; jednak rdzeń transpilatora nie wymaga Node.js do działania i można go uruchomić w dowolnym środowisku JavaScript[15]. Jedną z alternatyw dla Node.js jest Coffee Maven Plugin, plugin dla systemu budowania Apache Maven[16]. Istnieje również oficjalny gem Ruby, który jest narzędziem pomostowym do kompilacji CS[17].

Oficjalna strona na CoffeeScript.org zawiera pola tekstowe, które nie tylko na żywo kompilują CoffeeScript do kodu JavaScript, ale również umożliwiają uruchomienie go bezpośrednio w przeglądarce[18].

Remove ads

Przykłady

Typowy fragment kodu JavaScript z użyciem biblioteki jQuery:

$(document).ready(function() {
  // Kod inicjalizacyjny
});

W CoffeeScript słowo kluczowe function jest zastąpione przez symbol ->. Wcięcia zastępują nawiasy klamrowe, podobnie jak w Pythonie. Dodatkowo, najczęściej nawiasy mogą być pominięte. Analogiczny do powyższego fragment kodu w CoffeeScript wygląda następująco:

$(document).ready ->
  # Kod inicjalizacyjny

Lub krócej, co wynika z definicji skróconego użycia kodu $(document).ready():

$ ->
  # Kod inicjalizacyjny

Od ES2015 ten sam kod w JavaScript można zapisać tak:

$(() => {
  // Kod inicjalizacyjny
});

Zobacz też

Przypisy

Loading content...

Linki zewnętrzne

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads