Conception dApplicationsInteractives :Applications Web et JEESéance #5Langages alternatives dans la JVM
Langages alternatives pour la JVM
Langages alternatives pour la JVMJava ≠ JVM● Java : Langage qui compile vers du bytecode● JVM : Machine virtuelle qui exéc...
La JVM en tant que plate-forme● Build once, run everywhere○ Des implémentations de JVM pour la plupart duhardware et OS○ B...
Pourquoi des nouveaux langagesIf all you have is a hammer,everything looks like a nailJava est un très bon langage général...
Pourquoi des nouveaux langagessur la JVM● Le target est le bytecode○ Pas besoin dimplémenter la compilation vers leformat ...
Quels sont ces langages ?● Des langages nouveaux :○ Clojure, Groovy, Scala, Ceylon, Kotlin...● Des implémentations dautres...
JythonInterprète Python écrit en Java, créé en 1997● Compilation de code Python en bytecode● Héritage de classes Java par ...
JRubyInterprète Ruby écrit en Java, créé en 2001● Equivalente de Jython pout Ruby● Capable de faire tourner Rails● Plus ra...
GroovyLangage de POO destiné à la plate-forme Java● Inspiré de Python, Ruby et Smalltalk● Syntaxe très proche de Java● Com...
CeylonNouveau langage pour la JVM par RedHat● "Java tel quils serait si il avait été développéaujourdhui"● Typage statique...
ScalaLangage de programmation multi-paradigme○ Programmations orientée objet et fonctionnelle● Typage statique, syntaxe co...
Le développeur multi-lingue● Environnement JVM en mouvement continu○ Nouveaux langages○ Nouveaux frameworks○ Nouveaux outi...
Prochain SlideShare
Chargement dans…5
×

Enib cours c.a.i. web - séance #5 - langages alternatives dans la jvm

444 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
444
Sur SlideShare
0
Issues des intégrations
0
Intégrations
1
Actions
Partages
0
Téléchargements
13
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Enib cours c.a.i. web - séance #5 - langages alternatives dans la jvm

  1. 1. Conception dApplicationsInteractives :Applications Web et JEESéance #5Langages alternatives dans la JVM
  2. 2. Langages alternatives pour la JVM
  3. 3. Langages alternatives pour la JVMJava ≠ JVM● Java : Langage qui compile vers du bytecode● JVM : Machine virtuelle qui exécute du bytecode
  4. 4. La JVM en tant que plate-forme● Build once, run everywhere○ Des implémentations de JVM pour la plupart duhardware et OS○ Bytecode format pivot indépendant de la plate-forme● Tendance à saffranchir de lOS○ Côté client : navigateur comme plate-forme○ Côté serveur : JVM comme plate-forme
  5. 5. Pourquoi des nouveaux langagesIf all you have is a hammer,everything looks like a nailJava est un très bon langage généraliste, maispas la solution ultime● Scripting ?● Programmation fonctionnelle ?● Simplification et réduction du boilerplate ?
  6. 6. Pourquoi des nouveaux langagessur la JVM● Le target est le bytecode○ Pas besoin dimplémenter la compilation vers leformat natif de chaque OS● Profiter de lécosystème Java○ Bibliothèques, serveurs, outils...○ Courbe dadoption moins ardue● Support pour langages à typage dynamique○ JSR 292, invokedynamic○ Intégrée à la JVM depuis Java 1.7
  7. 7. Quels sont ces langages ?● Des langages nouveaux :○ Clojure, Groovy, Scala, Ceylon, Kotlin...● Des implémentations dautres langages○ JRuby (Ruby), Jython (Python), Rhino (JS), ElasticCOBOL (Cobol), JGNAT (Ada), Luaj (Lua)...
  8. 8. JythonInterprète Python écrit en Java, créé en 1997● Compilation de code Python en bytecode● Héritage de classes Java par des classes Python● Scripting de code Python dans un programme Java● Utilisation dobjets Java dans du code PythonTrès utilisé pour prototypage, scripting et exploration desclasses Javahttp://www.jython.org/
  9. 9. JRubyInterprète Ruby écrit en Java, créé en 2001● Equivalente de Jython pout Ruby● Capable de faire tourner Rails● Plus rapide que limplémentation deréférence○ Option JIThttp://www.jruby.org/
  10. 10. GroovyLangage de POO destiné à la plate-forme Java● Inspiré de Python, Ruby et Smalltalk● Syntaxe très proche de Java● Compilé○ soit à la volée dynamiquement○ soit classiquement vers bytecode● Typages statique et dynamique● Support natif pour listes, maps, et expressionsrégulières● Fermetures ou clôtures (closures)● Surcharge des opérateurshttp://groovy.codehaus.org/
  11. 11. CeylonNouveau langage pour la JVM par RedHat● "Java tel quils serait si il avait été développéaujourdhui"● Typage statique○ Types union et intersection● Syntaxe régulière○ Sucre syntactique ajouté● Modulaire○ Dépôt Ceylon Herdhttp://www.ceylon-lang.org/
  12. 12. ScalaLangage de programmation multi-paradigme○ Programmations orientée objet et fonctionnelle● Typage statique, syntaxe concise● Compilé vers bytecode● Intéropérabilité avec le code Javahttp://www.scala-lang.org/
  13. 13. Le développeur multi-lingue● Environnement JVM en mouvement continu○ Nouveaux langages○ Nouveaux frameworks○ Nouveaux outils● Ne pas se tenir à jour, ne pas apprendre =stagner, régresser.○ Un nouveau langage par an○ Un nouveau framework tous les 3 mois

×