Articles

Publié par

Il y a 7 années -

Temps de lecture 11 minutes

Revue de Presse Xebia

Revue de Presse Xebia
La revue de presse hebdomadaire des écosystèmes Java/JEE proposée par Xebia.

Actualité éditeurs / SSII

Agilité

Le coin de la technique

Evénements de notre communauté en France et à l’étranger

Actualité éditeurs / SSII

Apache Harmony: l’accord final

Lancé en 2005, le projet Harmony avait pour finalité de créer un JDK distribué sous licence Apache.

Le but était noble, mais le chemin, semé d’embûches: craignant sans doute que la concurrence d’une implémentation open-source et non-virale du JDK ne lui fasse de l’ombre, Sun a toujours opposé une fin de non-recevoir aux demandes adressées depuis 2006 par la Fondation Apache afin d’obtenir un accès au TCK (Technology Compatibility Kit), le précieux sésame indispensable pour qu’Harmony puisse bénéficier du label Java.

L’acquisition de Sun par Oracle en 2009 marqua un tournant dans le monde Java, mais n’a pas vraiment changé l’ostracisme dont souffrait Harmony.

2010 fut l’année des défections: IBM d’abord, son sponsor principal, puis Apple, ont tous deux décidé d’orienter leurs développements vers le projet OpenJDK, l’implémentation open-source mise en avant par Oracle – mais cette fois-ci, il s’agit d’une licence GPL, licence bel et bien virale bien qu’adoucie par l’exception de classpath. C’en fut trop pour la Fondation Apache, qui menaça d’abord de claquer la porte du JCP (Java Community Process) – puis, un mois plus tard, mit ses menaces à exécution.

L’année 2011 démarre sous de meilleurs auspices: c’est la réconciliation, entre Oracle et la communauté Java d’une part; entre Oracle et ses partenaires d’autre part. Mais voilà que cette réconciliation se fit autour du projet OpenJDK, paré désormais de nouveaux statuts fédérateurs et du titre d’implémentation de référence de Java 7. Le projet Harmony se trouva alors définitivement hors-jeu. Google, le seul à avoir misé sur Harmony dont il équipa son système d’exploitation Android, en fait encore les frais: le procès-fleuve qui l’oppose à Oracle est en effet loin de se terminer.

En présentant sa démission en mars dernier, Tim Ellison, alors président du PMC (Project Management Committee) du projet Apache Harmony, avait déjà évoqué l’hypothèse funeste d’un déplacement du projet déjà moribond vers le mouroir des projets Apache. Voilà qui est malheureusement chose faite aujourd’hui: le 29 octobre dernier un vote fut lancé, et le 3 novembre, la décision fut validée à 20 voix contre 2 : c’est donc officiellement la fin du projet Harmony.

Eclipse souffle ses 10 bougies!

Nos confrères d’InfoQ n’ont pas manqué de célébrer cette première décennie du célèbre IDE et retracent sa passionnante histoire, des débuts dans le giron d’IBM, en passant par la création de la Fondation Eclipse en 2004 puis par la « révolution » OSGi, et jusqu’au succès grandissant des rassemblements annuels EclipseCon en Amérique et en Europe. Il en ressort un constat admiratif: que l’on en soit adepte ou bien détracteur, Eclipse a bel et bien marqué de son empreinte le développement logiciel de ces dernières années.

Et un nouveau langage, un!

Et justement, parlons-en d’Eclipse! Edité par la Fondation Eclipse, Xtend est un langage de programmation à typage statique basé sur Java (même système de typage, support complet des generics) mais qui améliore certains de ses concepts. Ce dernier n’a pas pour ambition de détrôner Java, mais d’en étendre les capacités là où il pèche. En effet, il diminue notamment les éléments de syntaxe inutiles et rend le code plus lisible et maintenable grâce à:

  • L’inférence de types sur les déclarations de variables, les types de retour, les boucles for et les closures;
  • L’invocation des getters et setters en accédant directement à la propriété de l’objet;
  • Les point-virgules deviennent optionnels mais aussi les parenthèses pour les méthodes sans arguments. Le mot clé return devient lui aussi optionnel, la dernière expression de la méthode est implicitement considérée comme une valeur de retour.

Techniquement, le code Xtend est compilé en Java et non en bytecode via une compilation incrémentale. De ce fait, le code compilé peut être aisément lu et compris par un développeur Java et être utilisé pour développer sous Android ou GWT par exemple.

Aussi, Xtend vient directement avec un support IDE poussé (Eclipse naturellement), qui offre une expérience de développement quasi similaire au développement en Java standard avec les IDE modernes (coloration syntaxique, navigation, compilation incrémentale, refactoring, etc.). Il est aussi possible de naviguer depuis du code Xtend vers du Java et vice et versa.

Enfin, preuve que Xtend n’a pas pour vocation de remplacer Java mais de le moderniser, le langage est capable de produire uniquement des classes. Pour le reste (interfaces, enums et annotations), il s’appuie sur sur le modèle éprouvé de Java.

Côté « sucres syntaxiques », voici ceux proposé par le langage:

  • Les closures, qui restent à ce jour l’une des fonctionnalités les plus attendues pour le langage Java. La documentation montre plusieurs manières de les mettre en oeuvre.
  • Un bloc switch amélioré: plus aucun risque d’enchaîner les case par oubli du mot-clé break, le switch à la mode Xtend n’évalue qu’un seul bloc case tout au plus. Il offre aussi la possibilité de lui passer presque n’importe quel type d’objet (exceptés le type primitif boolean et son wrapper). De plus, l’instruction case a été améliorée et peut désormais effectuer toute sorte de tests sur l’objet évalué, et non plus un simple test d’égalité :
switch myString {
 case myString.length > 5 : 'a long string.'
 case 'foo' : 'It's a foo.'
 default : 'It's a short nonfoo string.'
}

Le langage offre aussi la possibilité de typer les instructions case en les préfixant par un type, dans le cas où l’objet passé en paramètre du switch serait étendu par d’autres classes. Dès lors, un opérateur instanceof est évalué et un cast implicite est effecuté pour accéder aux propriétés et méthodes de l’objet:

var Object x = ...;
switch x {
 String case x.length() > 0 : x.length()
 List<?> : x.size()
 default : 1
}
  • Les Template expressions qui permettent entre autres de déclarer une chaîne de caractères sur plusieurs lignes sans utiliser l’opérateur de concaténation, mais aussi de déclarer la chaîne avec des guillemets simples (single quotes) pour éviter de multiplier les caractères d’échappement. Cette fonctionnalité permet aussi de formater/indenter et de gérer les whitespaces des outputs aisément.
  • Les Méthodes d’extension : Xtend tient son nom de sa capacité à étendre les types via des méthodes d’extensions. Ces méthodes d’extension permettent d’ajouter des méthodes à des types existants sans les modifier.
  • Le Multiple dispatch: plus connu sous le nom de surcharge de méthode. Par défaut, Java ou même Xtend lient les méthodes surchargées à la compilation en se basant sur les types statiques des arguments. En déclarant le mot clé dispatch dans la signature de la méthode, le langage permet de définir un ensemble de méthodes surchargées basé sur les types des arguments au runtime.

A noter que Xtend a été développé avec Xtext, un framework pour le développement de Domain Specific Langages, et est basé sur Xbase, un ensemble prédéfini d’expressions qui peuvent être utilisées simplement pour développer n’importe quel langage avec Xtext.

Agilité

Jeux agiles, c’est sérieux

Le buzz de cet automne ce sont les jeux agiles. Le mouvement prend de l’ampleur et de plus en plus d’agilistes en France se tournent vers ce type d’ateliers ludiques mais véritablement efficaces pour leur travail au quotidien, des exemples récents ici, ou encore le démontrent. Chez Xebia nous utilisons aussi des Innovation Games(R) pour cadrer un projet, résoudre des situations de blocage chez nos clients, ou simplement animer une rétrospective de sprint. Mais les jeux sont aussi un moyen d’apprentissage puissant. Lors de son passage il y a 2 semaines pour une formation Kanban chez Xebia, David Anderson nous a fait jouer à getKanban, un jeu qui permet de simuler la mise en oeuvre d’une gestion de projet façon Kanban. Pendant le jeu, le formateur est là pour nous éclairer sur nos prises de décisions et répondre à nos interrogations, les stagiaires sont acteurs de leur acquisition de connaissance et l’erreur est possible, voire encouragée. Si vous êtes curieux de ces techniques et souhaitez participer à une mise en oeuvre, notez dans vos agendas la SCRUM Night organisée par le French SUG le 7 Décembre et dont le programme sera composé uniquement d’ateliers ludiques et de jeux sérieux (l’agenda est en cours de construction). De son côté, Xebia présentera un sujet intitulé « Ludification du travail » le 10 Novembre prochain à l’EPITA lors de sa 24ème semaine de Conférences Technologiques.

Le coin de la technique

Benchmarking de Cassandra avec Amazon EC2

Les personnes qui étaient aux derniers ateliers Xebia Tech Event auront remarqué l’utilisation d’Amazon EC2 afin d’équiper les participants en environnements de travail virtuels. Le site Netflix propose un retour d’expérience de l’utilisation d’Amazon EC2 dans le cadre de tests de charge du système NoSQL d’Apache, Cassandra.
La charge est produite par l’outil de stress test distribué fourni avec Cassandra, sur des instances créées sur Amazon EC2.

Les outils développés par Netflix sont capables de créer, en une heure, un cluster comprenant :

  • 288 instances de tailles de type M1 Extra Large (m1.xl) réparties sur trois continents;
  • 60 instances pour le client de stress test (type m2.4xl) sur un seul continent.

Netflix précise qu’Amazon a mis environ 15 minutes pour créer les 348 instances! Les 45 autres minutes de préparation de l’infrastructure ont été prises par le temps de démarrage de Linux, les JVM des injecteurs, de Cassandra et la création de l’anneau du cluster.
Le test a duré 2 heures, pour un coût total de quelques centaines de dollars. L’avantage mis en avant par Netflix d’utiliser Amazon EC2 est de pouvoir réaliser des tests à très grande échelle, en quelques heures, sans aucun pré-requis matériel ou même impacter l’infrastructure de production. Ce test aurait certainement été plus lent et plus coûteux à organiser dans un datacenter privé d’entreprise.

Netflix a mesuré deux éléments :

  • la persistance sur le disque pour l’écriture;
  • la performance de cache en mémoire pour la lecture.

Les tests ont été lancés avec 48, puis 96, 144 et enfin 288 instances, avec 10,20,30 et 60 clients. Vous retrouverez dans leur billet les configurations matérielles utilisées lors de ces tests. Un tableau récapitulatif donne une estimation du coût du test de charge entre chaque tir.
Etant donné que les injecteurs de tests étaient sur un continent (Amérique), et les clusters sur trois (Europe, Asie, Amérique), 2/3 du trafic était intercontinental.

Chaque injecteur génère 20 000 requêtes par seconde. Le client est connecté à 3 noeuds Cassandra. Le principe du LOCAL QUORUM est ici utilisé (on attend la réponse de N/2 + 1 noeuds pour la confirmation). Le débit d’écriture a atteint 1,1 million d’écritures par seconde sur tout le système. Avec la réplication entre chaque noeud, on arrive à 3,3 million d’écritures par seconde.
Les mesures effectuées prouvent une montée en charge linéaire de 48 à 288 instances sans identifier de goulet d’étranglement. Les mesures unitaires de chaque noeud montrent une activité équivalente, preuve que le cluster distribue correctement la charge.

Cela démontre bien les nouvelles possibilités offertes par les systèmes d’infrastructure sur demande, et les défis que cela nous permet de relever.

Evénements de notre communauté en France et à l’étranger

Velocity Europe à Berlin le 8 et 9 novembre

Velocity Europe organise mardi 8 et mercredi 9 une conférence à Berlin sur le thème Web Performance et Operations.
Les présentations abordent de nombreux sujets passionnants.
Voici quelques unes des sessions sur les performances Web :

Et sur les operations :

Des keynotes auront également lieu avec des speakers venus de Google, Amazon, Dynatrace, New Relic, etc.
Il est important de préciser que certaines présentations sont retransmises en direct, mais pas forcément celles qu’on voudrait .

Publié par

Publié par Xebia France

Xebia est un cabinet de conseil international spécialisé dans les technologies Big Data, Web, les architectures Java et la mobilité dans des environnements agiles. Depuis plus de 11 ans nous avons la volonté de partager notre expertise et nos actualités à travers notre blog technique.

Commentaire

3 réponses pour " Revue de Presse Xebia "

  1. Publié par , Il y a 7 années

    La fin d’Harmony montre aussi que Google se fout comme d’une guigne de l’Open Source.
    Google s’est servi de ce projet quand ça l’arrangeait mais maintenant qu’Android est sur les rails, Harmony n’a aucune importance pour Google.
    Google a beau jeu de se montrer comme le chevalier blanc de l’open source mais ses actes ne montrent qu’une chose : la course au profit financier pour son seul bénéfice.
    Quant à Oracle qui a été critiqué très vite, il montre aujourd’hui une véritable ambition pour Java et a fait des gestes concrets et importants pour la communauté Open Source. Cependant, il est vrai que l’éditeur a eu du mal à s’ouvrir à cette communauté, mais quand on est éditeur depuis des décennies et que les investissements consentis dans Java sont colossaux, est-il si aisé de changer de point de vue ?

  2. Publié par , Il y a 7 années

    Perso, j’aime bien Xtend. Et au fond, c’est (rétrospectivement ;-) logique d’une communauté de développeurs spécialisées dans le tooling définisse un nouveau langage faisant usage d’inférence de type…

    Ce que j’aime bien dans Xtend, c’est que j’arrive aisément à imaginer comment les nouvelles fonctionnalités seront compilées en Java et donc, j’arrive facilement à me faire une idée du cout de ces nouvelles fonctionnalités.

    En gros, je suis d’accord avec Stephen Colebourne http://blog.joda.org/2011/07/kotlin-and-search-for-better-java_9066.html :
    – Scala est trop complexe pour devenir le prochain mainstream language qui va détrôner à coup sûr Java
    – Kotlin est associé à des choix syntaxiques en rupture avec Java et pour lesquels on se demande quelle est la valeur ajoutée : http://blog.joda.org/2011/07/reversed-type-declarations_4524.html
    – Ceylon est dans le vapoware space

    Et les autres langages ont aussi des défauts :
    – Groovy est associé à des couts d’exécution « cachés » (cf. points plus hauts).
    – etc.

    Bref, Xtend me semble combler un manque, et améliorer effectivement Java (+/- certaines fonctionnalités dont je n’ai pas encore bien vu l’utilité, ou pu estimer le cout induit, comme les « Create Functions » que je cite ici de mémoire).
    Ce serait bien que le JCP en prenne de la graine. Cela semble d’ailleurs un peu arriver, timidement, avec la JEP 101 http://openjdk.java.net/jeps/101 listée ici http://blog.joda.org/2011/11/future-is-in-jeps.html

    Il est dit que les processeurs RISC sont arrivés sur le devant de la scène en conjonction avec la maturité des compilateurs permettant d’optimiser le code produit. Java existe depuis plus de 10 ans, et ceux qui écrivent des compilateurs ont progressé, et ont montré, par ex, que l’inférence de type avait sa place dans des langages d’importance, comme C# ou Scala. Bref, il serait temps IMHO que le monde Java se réveille pour suivre un dépoussiérage à la façon de Xtend.

  3. Publié par , Il y a 7 années

    « En effet, il diminue notamment les éléments de syntaxe inutiles »

    Comment peut-on dire ça alors qu’il introduit un nouvel élément de syntaxe totalement inutile (le mot-clef « def ») ? :-)

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Nous recrutons

Être un Xebian, c'est faire partie d'un groupe de passionnés ; C'est l'opportunité de travailler et de partager avec des pairs parmi les plus talentueux.