2flash informatique
22 22 NOVEMBRE 2011 - N° 9
flash informatique
mière place dans l’index TIOBE 1 avec 30 % de popularité; certains
parlaient alors de la fin de l’histoire des langages de program-
mation.
Langages de programmation agile
Les années 2000 ont amené la programmation agile, très attirante
pour les développeurs, ainsi que l’avènement de langages agiles
Python ou Ruby, plus dynamiques que Java. Les langages agiles
permettent de programmer naturellement et rapidement ce qu’on
a dans la tête au lieu de réfléchir comment transposer ce qu’on
a dans la tête pour que le compilateur comprenne enfin. Une
telle facilité de programmation repose sur un système de types
dynamique (on parle alors de duck typing, où toutes les propriétés
d’un objet sont déterminées au moment de son utilisation... par
analogie: si je vois un oiseau qui vole comme un canard, cancane
comme un canard, et nage comme un canard, alors j’appelle cet
oiseau un canard). À cela s’ajoutent les mécanismes de program-
mation fonctionnelle, permettant les manipulations de fonctions
par les programmes (contrairement à la programmation impéra-
tive ou objet, où la fonction peut seulement être appelée). Notons
que les langages de programmation agile sont souvent moins
performants à l’exécution que les langages statiques, la dyna-
mique et la liberté laissée au développeur nécessitent de multiples
vérifications pendant l’exécution du programme; dans le cas de
langages statiques, la plupart des vérifications sont effectuées à
la compilation.
Langages pour la plate-forme Java
La plate-forme Java présente un grand intérêt (on y trouve tout ce
dont on peut avoir besoin), on a donc vu fleurir une panoplie de
langages de la JVM, de plus haut niveau que Java, permettant les
styles de programmation variés, et offrant l’accès aux composants
logiciels de la plate-forme.
Parmi ces langages, citons:
Jython et JRuby, portages de Python et Ruby,
Scala, langage statique, mixte objet-fonctionnel et doté d’un sys-
tème de types très puissant,
Groovy, extension dynamique et fonctionnelle de Java, et
finalement
Clojure, un dialecte de Lisp.
À titre d’anecdote, mentionnons les implémentations d’Ada, de
Cobol, et même de Pascal pour la JVM 2.
Groovy 3 et Scala
4 représentent des objectifs de conception très
différents, nous en détaillerons quelques points. Scala est un lan-
gage académique (conçu à l’EPFL par l’équipe du Prof. Odersky),
mais très pragmatique. Conçu en tant que langage extensible
(scalable), Scala est censé couvrir un maximum de domaines
d’application et garantir de hautes performances à l’exécution.
Scala permet la programmation objet et fonctionnelle; statique-
ment typé, il est doté d’un système de types très évolué, permet-
tant de réduire et simplifier le code source (moteur d’inférence
sur les types) et permet la surcharge des opérateurs. Sa syntaxe
est très épurée et élégante, mais très différente de Java; Scala
est interopérable avec Java, on peut aisément utiliser les classes
Java depuis Scala, mais l’utilisation dans l’autre sens est parfois
plus délicate. La bibliothèque standard de Scala étend la biblio-
thèque standard de Java et fournit les abstractions d’acteurs pour
la programmation concurrente. Finalement, Scala peut être utilisé
en tant que langage de programmation ou en tant que script, et
depuis quelques années gagne en popularité, dans l’index TIOBE il
arrive à la 50e place parmi tous les langages utilisés 5.
Groovy
Groovy est un langage créé par les développeurs pour les déve-
loppeurs en tant que langage agile et dynamique pour la plate-
forme Java, doté de fonctionnalités inspirées par Python, Ruby
et Smalltalk, destiné aux développeurs Java avec la syntaxe très
proche de Java. Groovy, langage dynamiquement typé (duck ty-
ping), offre des mécanismes de programmation fonctionnelle à
travers les fermetures (closures) et permet la surcharge des opé-
rateurs. L’interopérabilité avec Java est parfaite dans les deux sens
(Java > Groovy et Groovy > Java). Tout comme Scala, Groovy peut
être utilisé en tant que langage de programmation ou en tant
que script. La popularité de Groovy est pour le moment similaire à
Scala (dans l’index TIOBE il est placé entre la 51e et la 100e place);
dans la catégorie de langages agiles, Groovy est devancé de loin
par Python (8e) et Ruby (11e).
Feelin’ Groovy
1 www.tiobe.com/index.php/content/paperinfo/tpci/index.html
2 en.wikipedia.org/wiki/List_of_JVM_languages
3 groovy.codehaus.org
4 DUBOCHET, Gilles. Scala. Flash Informatique 9/2010. EPFL 2010. flashinformatique.epfl.ch/spip.php?article2221
5 en octobre 2011 Java occupe toujours la première place dans l’index TIOBE, mais son taux d’utilisation est tombé à 18%
Impressum
Revue consacrée aux technologies de
l’information, éditée par le Domaine IT de
l’EPFL (DIT). Les articles n’engagent que
leurs auteurs, sauf ceux qui concernent de
façon évidente des prestations officielles
(sous la responsabilité du DIT ou d’autres
entités). Toute reproduction, même par-
tielle, n’est autorisée qu’avec l’accord de la
rédaction et des auteurs.
Rédacteur en chef:
Jacqueline Dousson, fi@epfl.ch
Mise en page & graphisme:
Appoline Raposo de Barbosa
Comité de rédaction:
Jean-Daniel Bonjour, Patrice Fumasoli,
Florence Hagen, Laurent Kling, Julia
Paolini, François Roulet, Christophe
Salzmann, Richard Timsit & Predrag Vicei´c
Impression: Atelier de Reprographie EPFL
Tirage: 4000 exemplaires
Adresse Web: flashInformatique.epfl.ch
Adresse: Domaine IT EPFL
Station 8, CH-1015 Lausanne
Téléphone: +41 21 69 32246 & 32247
Abonnement au FI par e-mail à:
fi-subscribe@listes.epfl.ch