Pour cette avant-dernière session de la conférence, l’incontournable Joshua Bloch remplit comme à son habitude la grande salle de Devoxx. Il nous présente aujourd’hui une rétrospective des meilleures et des pires fonctionnalités ajoutées au fil des versions de Java. Sa critique est objective et sans détours, d’autant qu’il a participé de près ou de loin à bon nombre des sujets abordés.

Lire la suite de cet article »

Après avoir assisté à la session sur Kotlin, nous ne pouvions pas faire l’impasse sur la présentation du langage Ceylon animée par Emmanuel Bernard et Stéphane Epardaud. Cette session était focalisée sur les motivations qui ont poussé à développer ce langage et devait nous montrer les possibilités de ce dernier.
Le projet Ceylon a été initié par Gavin King dont nous connaissons tous la renommée. Emmanuel explique que pour des raisons de frustrations avec le langage Java, Gavin et son équipe ont décidé de monter ce projet. Ils souhaitent développer un langage avec l’esprit Java et étant aussi pratique que ce dernier.
Les buts du développement du langage Ceylon sont les suivants :
- facile à apprendre,
- moins verbeux tout en restant lisible,
- type safety améliorée,
- avoir un nouveau SDK (plateforme),
- possibilité de faire du meta-programming.
Lire la suite de cet article »

Après une intervention controversée de Matt Raible à Devoxx 2010 concernant la comparaison de frameworks Web, cette année trois personnes ont choisi de remettre le couvert : Stijn Van den Enden, Guy Veraghert et Ward Vijfeijken.
Stijn débute la présentation en nous rassurant : leur recherche concerne une poignée de frameworks Web et est basée sur la scalabilité. Pour lui cette dernière est une notion importante :
- Elle influe sur l’infrastructure
- Elle assure une qualité de service
- Elle a un coût non négligeable
Stijn nous explique qu’ils ont pris le parti de baser leur expérience sur les frameworks Web suivants :
Lire la suite de cet article »

Clojure est un dialecte de Lisp fonctionnant sur la JVM. Dans cette présentation, Alex Miller s’adresse aux développeurs sans expérience préalable du langage. Son but est d’en présenter les concepts de base et de montrer la puissance et l’expressivité qui lui ont fait choisir Clojure comme langage principal chez son employeur actuel.
Lire la suite de cet article »

Depuis quelques mois, Kotlin fait parler de lui. Rien de tel qu’une conférence comme Devoxx pour prendre la température de ce nouveau langage.
Lors de cette session, Andrey Breslav nous a expliqué d’abord les motivations qui ont poussé JetBrains à investir dans le développement de Kotlin :
- se détacher des limitations du langage Java dues à la compatibilité ascendante,
- avoir un outillage performant. Notamment, une intégration de qualité dans les IDE, un debugger et un compilateur au moins aussi rapide que celui de Java. Pour garantir cela, JetBrains développe en parallèle du langage et du compilateur, un plugin pour l’intégration dans leur IDE IntelliJ ainsi qu’un plugin simple pour Eclipse,
- avoir une syntaxe plus expressive.
Lire la suite de cet article »

HTML 5 est sans conteste un des sujets phare de ce Devoxx 2011. Pour preuve la salle est bien remplie. Lors de cette présentation David Chandler commence par nous montrer comment HTML 5 peut nous aider à simplifier la conception et l’utilisation des applications Web. Il nous rappelle également que les versions récentes des navigateurs prennent en charge le HTML 5, mis à part Internet Explorer (étonnant non ?)
Lire la suite de cet article »

Le 4 Juin 1996, à 9h35 le vol 501 de la fusée Ariane 5 effectue son premier décollage. Quelques secondes plus tard, le système de guidage inertiel reçoit trop d’informations et se met hors service, car reconnu défaillant. L’ordinateur de bord est alors notifié qu’un dysfonctionnement est en cours et compromet les informations concernant la trajectoire de la fusée. Cette modification de la trajectoire entraîne l’arrachage d’un moteur d’appoint, déclenchant l’auto destruction de la fusée. Des analyses plus approfondies ont démontré que le système de guidage inertiel est lui même la cause de cet échec. Conçu à l’époque pour Ariane 4, il n’était plus nécessaire pour Ariane 5. Maintenu actif pour des raisons de commodité, ce système s’est avéré être à l’origine d’un des bugs informatiques les plus coûteux de l’histoire.
Au-delà du caractère spectaculaire de cet exemple, il est intéressant de noter que l’origine du dysfonctionnement réside dans un module développé pour une version antérieure de la fusée et devenu obsolète. Ce vestige de code, maintenu dans l’application sans être nécessaire pour son fonctionnement, est l’une des formes de ce que Ward Cunningham désigne sous le terme de dette technique.
A travers ce document, nous découvrirons en quoi la dette technique ralentit la productivité des équipes et nuit aux projets. Nous mettrons en évidence ses mécanismes sous jacents et les leviers d’actions dont nous disposons. Enfin, nous montrerons comment elle se gère au quotidien, par l’instauration de bonnes pratiques de développement et la mise en place d’outils, pour enfin aborder quelques stratégies complémentaires, mais essentielles pour venir à bout de la dette technique.
Télécharger le Livre blanc « Maîtrisez votre dette technique ».
A l’heure où de nombreux débats font rages sur l’éventuel successeur du langage Java, le XKE (Xebia Knowledge Exchange) de Mars a été l’occasion de faire un retour sur les fondamentaux de la conception Orienté Objet.
Faisons un petit sondage dans la communauté : quels arguments avanceriez-vous en faveur du langage Java ?
Parmi les principaux arguments, il est fort à parier que les réponses seront en majorité les applets (heu… non plus maintenant… mais souvenez vous dans les années 90), la JVM, le cross-platform, le monde Open Source et la Communauté, les nombreux frameworks, la simplicité d’écriture et la gestion de la mémoire, les IDEs, etc.
Nous nous apercevons que le fait même que Java soit un langage objet est secondaire. Alors pourquoi programme-t-on en Java ou dans un langage objet ?
Lire la suite de cet article »

Comme chaque année, l’école Epita organise une semaine de conférences technologiques. Cette année la 23ème édition se déroulera du 23 au 27 Mai. Ce sera l’occasion pour les étudiants de découvrir les métiers de l’informatique et de bénéficier de retours d’expériences de professionnels.
C’est à ce titre que j’interviendrai le Mardi 24 Mai lors d’une présentation sur la dette technique. Le but sera de sensibiliser les futurs diplômés aux conséquences d’une dette non gérée sur les projets logiciels. Nous étudierons notamment les mécanismes de la dette et des bonnes pratiques pour la résorber.
Depuis quelque temps, le langage Scala fait beaucoup parler de lui et de nombreux articles et prototypes commencent à voir le jour. Mais cet engouement est freiné par un certain nombre de problèmes dont un majeur : une grande partie des applications sur lesquelles nous intervenons sont en Java et à moins de débuter un nouveau projet, migrer ces applications en Scala n’est pas concevable. Néanmoins une solution peut consister à introduire du Scala dans ces mêmes applications : étant donné que le langage Scala tourne sur la JVM et est interopérable avec le langage Java, il est tout à fait envisageable de migrer une partie des applications en Scala. Mais pourquoi introduire du Scala dans les applications me direz-vous ? Le langage Scala prône le paradigme fonctionnel, une meilleure lisibilité, une productivité améliorée et des performances au rendez-vous, et l’introduire sur des applications est une bonne manière d’essayer ce langage et de se faire un avis sur ces critères. Le but de cet article ne va pas consister à vérifier toutes les promesses du langage Scala. Cet article a un objectif didactique : fournir un exemple simple de migration et de cohabitation d’un module Java avec Scala, en partant d’un projet Java, simplifié pour l’exemple, pour aboutir à la migration d’une partie de ce dernier en Scala.
Avant de poursuivre, le code proposé est une solution parmi tant d’autres ; le principal but de cet article est de montrer la cohabitation des langages Java et Scala sur un même projet. Si l’envie vous prend de mettre au point une meilleure solution, libre à vous d’effectuer et de proposer vos solutions !
Lire la suite de cet article »