Movatterモバイル変換


[0]ホーム

URL:


Przejdź do zawartości
Wikipediawolna encyklopedia
Szukaj

CoffeeScript

Z Wikipedii, wolnej encyklopedii
CoffeeScript
Logo języka CoffeeScript
Logo języka
Pojawienie się

13 grudnia 2009; około 16 lat temu

Paradygmat

wieloparadygmatowy:bazujący na prototypach,imperatywny,funkcyjny,skryptowy

Typowanie

dynamiczne,słabe

Aktualnawersja stabilna

2.7.0
(24 kwietnia 2022) [±]

Twórca

Jeremy Ashkenas

Licencja

Licencja MIT

Platforma sprzętowa

wieloplatformowy

Platforma systemowa

wieloplatformowy

Strona internetowa

CoffeeScriptjęzyk programowania transpilowany doJavaScriptu. CoffeeScript dodajelukier składniowy zainspirowany przezRuby’ego iPythona, aby zwiększyć łatwość użycia[1]. Język oferuje także bardziej wyrafinowane możliwości, takie jakprzetwarzanie tablic idopasowywanie do wzorców.

CoffeeScript cieszy się stosunkowo dużą popularnością w społeczności programistówRuby’ego. TwórcyRuby on Rails stworzyli na jego baziesystem 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ęzykaJavaScript.

Historia

[edytuj |edytuj kod]

W dniu 13 grudnia 2009 rokuJeremy Ashkenas(inne języki) wykonał pierwszy commit (Git) dla CoffeeScript z komentarzem: „initial commit of the mystery language[2].Transpilator (parser ilekser) został napisany w językuRuby[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 doBisona)[1]. Jison tworzył kod JavaScript, więc możliwe stało się uruchomienie CS wNode.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órcyRuby on Rails wydali nowy system szablonów bazujący na CoffeScript[5]. Natomiast 24 grudnia 2010 roku Ashkenas na portaluHacker News(inne języki) ogłosił wydanie stabilnej wersji 1.0.0[6][7]. W sierpniu 2011, wraz z wydaniemRuby on Rails w wersji 3.1, CoffeeScript stał się jedną z bibliotek dostarczanych w ramach platformy RoR[8].

W 2011Brendan Eich, jeden z członków komitetuTC39, przyznał, że CoffeScript jest „dobrze wykonany i wygodniejszy w użyciu niż JS” (wówczasES5)[9]. Jednocześnie zauważył, że CS jako swoistypolyfill 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 orazwyraż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 jakoES2015[1][10][11].

13 września 2012 rokuDropbox ogłosił, że ichkod po stronie przeglądarki został przepisany zJavaScript na CoffeeScript, jednak w maju 2017 roku przeniesiono go doTypeScript[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].

Dystrybucja

[edytuj |edytuj kod]

Kompilator CoffeeScript jestself-hosting(inne języki) od wersji 0.5 i jest dostępny jako pakietNode.js; jednak rdzeń transpilatora nie wymaga Node.js do działania i można go uruchomić w dowolnym środowiskuJavaScript[15]. Jedną z alternatyw dlaNode.js jest Coffee Maven Plugin, plugin dla systemu budowaniaApache 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].

Przykłady

[edytuj |edytuj kod]

Typowy fragment kodu JavaScript z użyciem bibliotekijQuery:

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

W CoffeeScript słowo kluczowefunction jest zastąpione przez symbol->. Wcięcia zastępują nawiasy klamrowe, podobnie jak wPythonie. 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

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

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

Zobacz też

[edytuj |edytuj kod]

Przypisy

[edytuj |edytuj kod]
  1. abcdCoffeeScript [online], jashkenas.github.com, 1 marca 2010 [dostęp 2023-12-09] [zarchiwizowane zadresu 2010-03-01] (ang.).
  2. abJeremyJ. Ashkenas JeremyJ.,initial commit of the mystery language · jashkenas/coffeescript [online], GitHub, 13 grudnia 2009 [dostęp 2023-12-09] (ang.).
  3. Tags 0.1.x · jashkenas/coffeescript [online], GitHub [dostęp 2023-12-09] (ang.).
  4. zaach's jison at master - GitHub [online], github.com, 22 lutego 2010 [dostęp 2023-12-09] [zarchiwizowane zadresu 2010-02-22] (ang.).
  5. Carson, Ryan.„New Rails-like Framework from 37signals for HTML5 Mobile Apps”, Think Vitamin blog, Nov 8, 2010.
  6. Hacker News.CoffeeScript 1.0.0 announcement zamieszczone przez Jeremy Ashkenas 24 grudnia 2010 roku
  7. Hacker News.Original CoffeeScript announcement zamieszczone przez Jeremy Ashkenas 24 grudnia 2009 roku
  8. Ruby on Rails 3.1 Release Notes [online], Ruby on Rails Guides, 2011 [dostęp 2023-12-09] (ang.).
  9. abcBrendanB. Eich BrendanB.,Harmony Of My Dreams [online], brendaneich.com, 2011 [dostęp 2023-12-09] .
  10. Funkcje, [w:]Nicholas C.N.C. Zakas Nicholas C.N.C.,ECMAScript 6 : przewodnik po nowym standardzie języka JavaScript, Helion, 2016, s. 59-93 (pol.).
  11. ECMAScript® 2024 Language Specification [online], tc39.es [dostęp 2023-12-09] .
  12. DanD. Wheeler DanD.,ZigaZ. Mahkovec ZigaZ.,ChrisCh. Varenhorst ChrisCh.,Dropbox dives into CoffeeScript [online], 13 września 2012 [dostęp 2013-05-11] (ang.).
  13. DavidD. Goldstein DavidD.,The Great CoffeeScript to Typescript Migration of 2017 [online], Dropbox.Tech, 13 maja 2020 [dostęp 2020-06-30] (ang.).
  14. Announcing CoffeeScript 2 [online], coffeescript.org [dostęp 2023-12-09] .
  15. JeremyJ. Ashkenas JeremyJ.,CoffeeScript [online], jashkenas.github.com, 27 kwietnia 2012 [dostęp 2023-12-09] [zarchiwizowane zadresu 2012-04-27] (ang.).
  16. MarkM. Derricutt MarkM.,talios/coffee-maven-plugin [online], 4 listopada 2022 [dostęp 2023-12-09] .
  17. JeremyJ. Ashkenas JeremyJ.,JoshuaJ. Peek JoshuaJ.,SamS. Stephenson SamS.,coffee-script - RubyGems [online], rubygems.org [dostęp 2023-12-09] (ang.).
  18. CoffeeScript [online], coffeescript.org [dostęp 2023-12-09] .

Linki zewnętrzne

[edytuj |edytuj kod]
Języki programowania
1GL
2GL/
Język drugiej generacji/
Asembler
3GL /
Język trzeciej generacji
wieloparadygmatowe
proceduralne
istrukturalne
historyczne
inne
obiektowe
funkcyjne
edukacyjne
4GL/
Język czwartej generacji/
Język dziedzinowy
Języki zapytań do baz danych
Generatory raportów / stron
Przetwarzanie danych, analiza i raportowanie
5GL/Logiczne
Ezoteryczne
Inne
Źródło: „https://pl.wikipedia.org/w/index.php?title=CoffeeScript&oldid=75951323
Kategorie:
Ukryta kategoria:

[8]ページ先頭

©2009-2026 Movatter.jp