CoffeeScript: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Recupero di 1 fonte/i e segnalazione di 0 link interrotto/i.) #IABot (v2.0.1 |
m Elimino wikilink da parametri editore, città, anno di {{Cita libro}} come da manuale |
||
(11 versioni intermedie di 10 utenti non mostrate) | |||
Riga 1:
{{Linguaggio di programmazione
|autore = Jeremy Ashkenas
|immagine = CoffeeScript-logo.svg
|data = 13 dicembre 2009
|versione = 2.
|utilizzo = Sviluppo di applicazioni web
|paradigmi = Funzionale, imperativo, scripting
|tipizzazione = Inesistente
|estensione = <code>.coffee</code>, <code>.litcoffee</code>
|influenzato_da = [[JavaScript]], [[Perl]], [[Haskell (linguaggio di programmazione)|Haskell]], [[Python]], [[YAML]], [[Ruby (linguaggio di programmazione)|Ruby]]
|ha_influenzato =
|sistema_operativo = Cross-Platform
|licenza = MIT
}}
'''CoffeeScript''' è un linguaggio di programmazione che si [[transcompila]] in [[JavaScript]]. Esso aggiunge lo [[zucchero sintattico]] ispirato da [[Ruby (linguaggio di programmazione)|Ruby]], [[Python]] e [[Haskell (linguaggio di programmazione)|Haskell]] nel tentativo di accrescere la leggibilità e concisione di JavaScript.<ref name="thelittlebookoncoffeescript">{{Cita libro|titolo=The Little Book on CoffeScript|anno=2012|url=https://archive.org/details/littlebookoncoff0000macc|autore=Alex MacCaw|editore=
Il supporto di CoffeeScript è incluso nella versione 3.1 di [[Ruby on Rails]].<ref>, Joshua.
== Storia ==
Il 13 dicembre 2009 Jeremy Ashkenas fece il suo primo commit Git di CoffeeScript con il commento: "commit iniziale del linguaggio misterioso."<ref>Github. [https://github.com/jashkenas/coffee-script/commit/8e9d637985d2dc9b44922076ad54ffef7fa8e9c2 'initial commit of the mystery language']</ref> Il compilatore era scritto in Ruby. Il 24 dicembre egli creò la prima release taggata e commentata, 0.1.0. Il 21 febbraio 2010 eseguì il commit della versione 0.5, che sostituì il compilatore Ruby con una versione [[self-hosting]] in CoffeeScript puro. A quel punto il progetto aveva attratto svariati altri contributori su GitHub, e stava ricevendo più di 300 visualizzazioni di pagina al giorno.
Il 24 dicembre 2010 Ashkenas annunciò il rilascio della versione stabile 1.0.0 a [[Hacker News]], il sito dove il progetto era stato annunciato per la prima volta.<ref>Hacker News.
== Sintassi ==
Riga 31:
=== Test d'intervallo ===
Per calcolare l'indice di massa corporea, qualcuno potrebbe scrivere (in JavaScript):<
</
mass = 72
height = 1.78
BMI = mass / height**2
alert 'You are healthy!' if 18.5 < BMI < 25
</syntaxhighlight>
=== Cicli e comprensioni ===
Per calcolare il [[Massimo comune divisore|massimo comun divisore]] di due interi con l'[[algoritmo di Euclide]], in JavaScript c'è bisogno solitamente di un ciclo ''while'':<
function gcd(x, y) {
var z
Riga 54:
return x
}
</
gcd = (x, y) ->
[x, y] = [y, x%y] until y is 0
x
</
alert n*n for n in [1..10] when n%2 is 1
</
alert n*n for n in [1..10] by 2
</
names = ["Ivan", "Joanna", "Nikolay", "Mihaela"]
linearSearch = (searchName) -> alert(name) for name in names when name is searchName
</
Si può utilizzare la parola chiave <code>?</code> per controllare velocemente se una variabile è <code>null</code> o<code>undefined</code> :<
personCheck = ->
if not person? then alert("No person") else alert("Have person")
Riga 74:
person = "Ivan"
personCheck()
</
=== Funzioni e jQuery ===
Un frammento JavaScript comune utilizzando la libreria jQuery è:<
$(document).ready(function() {
// Initialization code goes here
})
</
$(function() {
// Initialization code goes here
})
</
$(document).ready ->
# Initialization code goes here
</
$ ->
# Initialization code goes here
</syntaxhighlight>
=== Interpolazione di stringhe ===
L'interpolazione di stringhe in stile Ruby è inclusa in CoffeScript. Le stringhe con doppi apici permettono valori interpolati, usando #{ ... }, e le stringhe con singolo apice sono literal.<
author = "Wittgenstein"
quote = "A picture is a fact. -- #{ author }"
sentence = "#{ 22 / 7 } is a decent approximation of π"
</syntaxhighlight>
== Compilazione ==
Il compilatore CoffeeScript è stato scritto in CoffeeScript dalla versione 0.5 ed è disponibile come un'utility [[Node.js]]; comunque, il nucleo del compilatore non si affida a Node.js e può essere eseguito in qualsiasi ambiente JavaScript.<ref>[https://jashkenas.github.com/coffee-script/#installation CoffeeScript] {{webarchive|url=https://web.archive.org/web/20091227041459/http://jashkenas.github.com/coffee-script/ |data=27 dicembre 2009 }}.
Il sito ufficiale CoffeeScript.org ha un bottone "Prova CoffeeScript" nella barra del menu; cliccandolo viene aperta una finestra in cui l'utente può scrivere codice CoffeeScript, vedere l'output JavaScript ed eseguirlo direttamente nel browser. Il sito js2coffee<ref>{{Cita web|url=http://js2.coffee|titolo=js2coffee|cognome=Sta Cruz|nome=Rico|accesso=11 maggio 2014}}</ref> fornisce una traduzione bi-direzionale.
Riga 121:
* {{Cita pubblicazione|nome=Patrick|cognome=Lee|data=14 maggio 2014|titolo=CoffeeScript in Action|edizione=First|editore=[[Manning Publications]]|p=432|isbn=978-1-61729-062-6|url=https://www.amazon.com/dp/1617290629}}
* {{Cita pubblicazione|nome=Geoffrey|cognome=Grosenbach|data=12 maggio 2011|titolo=Meet CoffeeScript|edizione=First|editore=[[PeepCode]]|url=https://peepcode.com/products/coffeescript|urlmorto=sì|urlarchivio=https://web.archive.org/web/20110616014711/http://peepcode.com/products/coffeescript|dataarchivio=16 giugno 2011}}
* {{Cita pubblicazione|nome=Mark|cognome=Bates|data=31 maggio 2012|titolo=Programming in CoffeeScript|edizione=First|editore=[[Addison-Wesley]]|p=350|isbn=0-321-82010-X|url=http://my.safaribooksonline.com/book/-/9780132946155|accesso=12 luglio 2016|dataarchivio=10 giugno 2016|urlarchivio=https://web.archive.org/web/20160610180706/http://my.safaribooksonline.com/book/-/9780132946155|urlmorto=sì}}
* {{Cita pubblicazione|nome=Alex|cognome=MacCaw|data=31 gennaio 2012|titolo=The Little Book on CoffeeScript|edizione=First|editore=[[O'Reilly Media]]|p=62|isbn=978-1-4493-2105-5|url=https://arcturo.github.com/library/coffeescript/|accesso=30 aprile 2019|dataarchivio=2 gennaio 2012|urlarchivio=https://web.archive.org/web/20120102011208/http://arcturo.github.com/library/coffeescript/|urlmorto=sì}}
* {{Cita pubblicazione|nome=Trevor|cognome=Burnham|data=3 agosto 2011|titolo=CoffeeScript: Accelerated JavaScript Development|edizione=First|editore=[[Pragmatic Bookshelf]]|p=138|isbn=978-1-934356-78-4|url=https://pragprog.com/book/tbcoffee/coffeescript|accesso=30 aprile 2019|urlarchivio=https://web.archive.org/web/20190303003953/https://pragprog.com/book/tbcoffee/coffeescript|dataarchivio=3 marzo 2019|urlmorto=sì}}
== Voci correlate ==
* [[Haxe]]
* [[
* [[TypeScript]]
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* [https://github.com/jashkenas/coffeescript coffee-script] su GitHub
* [http://rapydscript.pyjeon.com/ RapydScript] {{Webarchive|url=https://web.archive.org/web/20160405144723/http://rapydscript.pyjeon.com/ |date=5 aprile 2016 }}, un traduttore con una sintassi più Pythonic
* [https://ckknight.github.io/gorillascript/ GorillaScript], che offre controlli di tipi aggiuntivi e zucchero sintattico per pattern JS comuni come callback in linea
{{Controllo di autorità}}
{{Portale|Informatica}}
[[Categoria:Linguaggi di programmazione]]
|