Movatterモバイル変換


[0]ホーム

URL:


Aller au contenu
Wikipédial'encyclopédie libre
Rechercher

CoffeeScript

Un article de Wikipédia, l'encyclopédie libre.

CoffeeScript
Logo.

Date de première version (15 ans, 104 jours)
ParadigmeMulti-paradigme
AuteurJeremy Ashkenas
Dernière version2.7.0 ()[1],[2]Voir et modifier les données sur Wikidata
Version en développement2.0.0-alpha1 ()[2]
2.0.0-beta1 ()[2]
2.0.0-beta2 ()[2]
2.0.0-beta3 ()[2]
2.0.0-beta4 ()[2]
2.0.0-beta5 ()[2]Voir et modifier les données sur Wikidata
TypageDynamique,faible
Influencé parJavaScript,Python,Ruby,Haskell[3],YAML[4]
A influencéMoonScript
Écrit enCoffeeScriptVoir et modifier les données sur Wikidata
Système d'exploitationMultiplate-forme
LicenceLicence MIT[5]Voir et modifier les données sur Wikidata
Site webcoffeescript.orgVoir et modifier les données sur Wikidata
Extension de fichiercoffeeVoir et modifier les données sur Wikidata
modifier 

CoffeeScript est unlangage de programmation, qui secompile enJavaScript. Le langage ajoute dusucre syntaxique inspiré parPython,Ruby etHaskell[3] afin d'améliorer la brièveté et la lisibilité du JavaScript, tout en ajoutant des fonctionnalités comme lefiltrage par motif ou leslistes en compréhension.

Le résultat est compilé de façon prévisible en JavaScript, et les programmes peuvent être écrits avec moins de code (typiquement un tiers de lignes en moins) sans effet sur la vitesse d'exécution[6]. Depuis le, CoffeeScript est dans la liste des projets les plus populaires deGitHub[7].

Le langage a une popularité relativement importante dans la communauté de Ruby. Le support de CoffeeScript est inclus dans la version 3.1 deRuby on Rails[8]. De plus,Brendan Eich a cité CoffeeScript comme une influence sur son idée du futur du JavaScript[9],[10]. En 2018, CoffeeScript est moins utilisé que dans les années précédentes, mais a largement contribué à l'évolution du langage JavaScript.

Histoire

[modifier |modifier le code]

Le, Jeremy Ashkenas a effectué le premiercommitGit de CoffeeScript avec le commentaire : « initial commit of the mystery language » (« premier commit du langage mystère »)[11]. Le compilateur était écrit en Ruby. Le, il a publié la première version numérotée et documentée, la 0.1.0. Le, la version 0.5 a été publiée, remplaçant le compilateur Ruby par un compilateur écrit en pur CoffeeScript.À ce moment, le projet a attiré plusieurs autres contributeurs surGitHub, et les pages du site étaient vues plus de 300 fois par jour.[réf. souhaitée]

Le, Ashkenas a annoncé la publication de la version stable 1.0.0 surHacker News, le site où le projet a été annoncé pour la première fois[12],[13].

Exemples

[modifier |modifier le code]

Tests et compréhensions

[modifier |modifier le code]

Pour calculer l'IMC de Barry, joueur de basket amateur, on fait d'habitude quelque chose comme ceci (ici enJavaScript):

varmasse=72;vartaille=1.86;varIMC=masse/taille/taille;if((18.5<IMC)&&(IMC<25)){alert('Barry a une corpulence normale');}

CoffeeScript permet de combiner les deux tests en un seul:

masse=72taille=1.78IMC=masse/taille/tailleif18.5<IMC<25thenalert'Barry a une corpulence normale'

ou, plus naturellement pour qui est habitué à la langue anglaise,

masse=72taille=1.78IMC=masse/Math.powtaille,2alert'Barry a une corpulence normale'if18.5<IMC<25

Boucles et compréhensions

[modifier |modifier le code]

En général, l'implémentation de l'algorithme d'Euclide utilise une boucletant que (ici, en Python) :

defpgcd(a,b):x,y=a,bwhiley>0:x,y=y,x%yreturnx

C'est également possible en CoffeeScript; mais celui-ci possède également une bouclejusqu'à :

pgcd=(a,b) ->[x,y]=[a,b][x,y]=[y,x%y]untilyis0x

Une bouclefor peut souvent être remplacée par uneliste en compréhension. Par exemple, pour calculer les carrés des premiers nombres impairs (c'est-à-dire dont le reste modulo 2 vaut 1), on peut utiliser l'une des propositions suivantes :

Boucle classique

[modifier |modifier le code]
fornin[1..10]ifn%2is1thenalertn*n

Liste en compréhension

[modifier |modifier le code]
alert[n*nfornin[1..10]whenn%2is1]

Avec un pas de 2

[modifier |modifier le code]
alert[n*nfornin[1..10]by2]

Fonctions etjQuery

[modifier |modifier le code]

Le code JavaScript permettant d'initialiser labibliothèquejQuery est :

$(document).ready(function(){// Le code d'initialisation va ici});

Ou, plus simplement :

$(function(){// Le code d'initialisation va ici});

En CoffeeScript, le mot-cléfunction est remplacé par le symbole->, et l'indentation est utilisée à la place des accolades, comme enPython ou enHaskell. Les parenthèses peuvent généralement être omises. Ainsi, lesnippet ci-dessus peut être écrit, en CoffeeScript :

$(document).ready-># Le code d'initialisation va ici

Ou bien :

$-># Le code d'initialisation va ici

Compilation

[modifier |modifier le code]

Le compilateur CoffeeScript estécrit en CoffeeScript depuis la version 0.5 et est disponible en tant qu'utilitaireNode.js ; cependant, la base du compilateur ne nécessite pasNode.js et peut être utilisée dans n'importe quel environnementJavaScript[14]. Une des alternatives à l'utilitaireNode.js estCoffee Maven Plugin, unplugin pour lemoteur de productionApache Maven. Ce plugin utiliseMozilla Rhino, unmoteur JavaScript écrit enJava.

Le site officiel,CoffeeScript.org, dispose d'un bouton « Essayer CoffeeScript » dans la barre de navigation ; cliquer dessus ouvre unefenêtre modale qui permet d'entrer du code CoffeeScript, de voir le résultat en JavaScript, et de l'essayer directement dans le navigateur. Le sitejs2coffee propose une traduction bidirectionnelle.

Annexes

[modifier |modifier le code]

Articles connexes

[modifier |modifier le code]

Liens externes

[modifier |modifier le code]

Notes et références

[modifier |modifier le code]
  1. a etb« 2.7.0 »,(consulté le)
  2. abcdefg ethnpmjs (base de données en ligne),consulté le.Voir et modifier les données sur Wikidata
  3. a etbThe Changelog.Épisode 0.2.9 - CoffeeScript with Jeremy Ashkenas« Copie archivée »(version du surInternet Archive), Jul 23, 2010
  4. (en) MartinHeller, « Turn up your nose at Dart and smell the CoffeeScript »,JavaWorld, InfoWorld,‎(lire en ligne, consulté le)
  5. Black Duck Open Hub (site web),consulté le.Voir et modifier les données sur Wikidata
  6. Read Write Hack.« Interview with Jeremy Ashkenas »(Archive.orgWikiwixArchive.isGoogleQue faire ?)(consulté le), Jan 7, 2011
  7. Github.Popular Watched Repositories« Copie archivée »(version du surInternet Archive)
  8. Peek, Joshua.Tweet by Rails Core Team Member on Apr 13, 2011
  9. Eich, Brendan. "Harmony of My Dreams"
  10. Eich, Brendan. "My JSConf.US Presentation"
  11. Github.'initial commit of the mystery language'
  12. Hacker News.Annonce de CoffeeScript 1.0.0 publiée par Jeremy Ashkenas le
  13. Hacker News.Annonce originale de CoffeeScript publiée par Jeremy Ashkenas le
  14. « CoffeeScript », surgithub.com viaInternet Archive(consulté le).
v ·m
Concurrents
Déclaratifs
Fonctionnels
Impératifs
Orientés objet
v ·m
Analyse statique de programmes
Compilateur source à source
Concepts
Débogueur
Générateur de documentation
Éditeurs (comparaison (en))
Moteur
Framework
Technologie associée
Gestionnaire de paquets
Côté serveur
Test unitaire
Personnalité
Ce document provient de « https://fr.wikipedia.org/w/index.php?title=CoffeeScript&oldid=223851092 ».
Catégories :
Catégories cachées :

[8]ページ先頭

©2009-2025 Movatter.jp