CoffeeScript je jazyk, který se kompiluje do čitelného JavaScriptu. Zpřehledňuje a zjednodušuje zápis často používaných věcí při zachování kompatibility s "obyčejným" JavaScriptem. Prezentace se pokouší jej stručně představit.
▷ It's justJavaScript
▷ Syntaktický cukřík
o Přehlednější a jednodušší zápis
o Usnadnění některých úloh
▷ Kompiluje se 1:1 do JavaScriptu ("Transpiler")
o *.coffee → *.js
▷ Node.js (npm install -g coffee-script)
Co to je?
3.
▷ Jeremy Ashkenas
oBackbone.js, Underscore.js
▷ První commit 13. 12. 2009
▷ v0.5 (21. 2. 2010): kompilátor napsaný v
CoffeeScriptu (místo Ruby)
▷ Od RoR 3.1 (31. 8. 2011) součástí jeho "asset
pipeline"
▷ Inspiroval Brendana Eicha pro ES6
Historie a vývoj
4.
▷ Všechno jevýraz
▷ Minimum závorek
▷ Postfixové verze řídicích struktur (Perl)
▷ "Slovní" operátory
▷ Existenční operátor (Ruby)
▷ Třídy
Syntax
5.
▷ Lexical Scoping& Variable Safety
▷ Implicitní return
▷ Pole a objekty
o Slicing, Splicing
▷ Smyčky a Comprehensions
▷ Funkce a generátory
o Splats (...), výchozí hodnoty argumentů
▷ Destructuring Assignments
▷ Chained Comparisons (Python)
▷ Řetězce
o Šablony, bloky
Syntax – vlastnosti
6.
Syntax – ukázka
#Assignment:
number = 42
opposite = true
# Conditions:
number = -42 if opposite
# Functions:
square = (x) -> x * x
# Arrays:
list = [1, 2, 3, 4, 5]
# Objects:
math =
root: Math.sqrt
square: square
cube: (x) -> x * square x
# Splats:
race = (winner, runners...) ->
print winner, runners
# Existence:
alert "I knew it!" if elvis?
# Array comprehensions:
cubes = (math.cube num for num
in list)
(Zdroj: http://coffeescript.org/ – více příkladů tamtéž)
7.
▷ Source maps
▷<script type="text/coffeescript" />
▷ Literate CoffeeScript
o Markdown + CoffeeScript (*.litcoffee)
o Docco (dokumentační tool)
▷ Cake ("CoffeeScript Make")
Další vlastnosti
▷ TypeScript (Microsoft)
oPředevším "type"
▷ ECMAScript 6
o Krok správným směrem
o Coffee je ale pohodlnější
▷ Dart (Google)
o Podle Dana Steigerwalda mrtvý
Konkurence