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...
Upcoming SlideShare
Loading in...5
×

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

186

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
186
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×