vendredi 19 novembre 2010

Veille technologique semaine 46

Pour le bulletin de cette semaine, je vous propose les sujets suivants :
  • Le Model Driven à la conférence annuelle MDDAY 2010,
  • Un accord entre Apple et Oracle : Apple collabore à OpenJDK et Oracle fournis le JDK pour MacOSX,
  • Oracle et Apache en désaccord au sujet de la licence Java,
  • Le principe du scout appliqué au logiciel : il faut toujours laisser le code plus propre que l'état dans lequel on l'a trouvé,
  • Les erreurs souvent constatés lors de la mise en oeuvre des méthodes agiles,
  • Oracle annonce les spécifications (JSR : Java Specification Request) pour le JDK 7 et le JDK 8, avec un premier planning pour le JDK 7 : fin juillet 2011,
  • Un article sur l'implication des équipes logiciels,
  • Une explication sur le principe "convention over configuration : ou comment réduire le besoin de configurer une application :les applications se basent sur des conventions au lieu de se baser sur des fichiers (ou autre) de configuration,
  • La JVM et sa modularization,
  • Les benchs de la synchronisation en Java : à prendre en compte dans vos applications Java.
Bonne lecture.



Le MDDAY 2010
Conférence annuelle sur le Model Driven : MDDAY 2010 (www.mdday.fr)
le 25 novembre prochain dans les locaux de Microsoft à Paris.

Programme 2010 : accueil à 8H30, fin à 18h00

Journée placée sous le thème de l'agilité

Qui ? Des experts reconnus du domaine, les sociétés organisatrices et leurs clients.
Quoi ? Discussions et conférences sur l'approche « Model-Driven ».
Comment ? Une série de conférences par des experts, clients et éditeurs de logiciels "Model Driven"...


Inscription à MD DAY 2010
Participation gratuite mais sur inscription obligatoire, le nombre de places étant limité.
http://register.mdday.fr/seminaire/viewRegisterForm.do


Java : un accord entre Apple et Oracle
Oracle et Apple viennent de dévoiler un accord relatif à Java. Les deux sociétés travailleront de concert sur le projet OpenJDK pour Mac OS X.

Dixit
le communique de presse : "Apple apportera la plupart des principaux composants, outils et technologies nécessaires à la mise en œuvre de Java SE 7 sur Mac OS X, y compris une machine virtuelle Java HotSpot 32 bits et 64 bits, des bibliothèques de classes, une pile de mise en réseau et les bases d'un nouveau client graphique. Grâce au programme OpenJDK, les développeurs de projets open source pourront accéder à la technologie Java d'Apple et contribuer à son amélioration".

Pour Bertand Serlet, il s'agit de proposer aux utilisateurs de Mac OS X une version à la fois récente, performante et stable de Java sur Mac.

Enfin, si Apple va continuer à distribuer Java SE 6 dans Snow Leopard et Mac OS X Lion, les prochaines versions de Java, à commencer par Java SE 7, seront disponibles auprès d'Oracle.



Oracle and Apple announce OpenJDK Project for Java on Mac OS X
Oracle and Apple on Friday announced a new partnership that will bring the Java SE 7 and future versions of Java for Mac OS X to users directly from Oracle.

With the OpenJDK project for Mac OS X, Apple will contribute most of the key components, tools and technology required for a Java SE 7 implementation on Mac OS X, including a 32-bit and 64-bit HotSpot-based Java virtual machine, class libraries, a networking stack and the foundation for a new graphical client. OpenJDK will make Apple's Java technology available to open source developers so they can access and contribute to the effort.

"We are excited to welcome Apple as a significant contributor in the growing OpenJDK community," said Hasan Rizvi, Oracle's senior vice president of Development. "The availability of Java on Mac OS X plays a key role in the cross-platform promise of the Java platform. The Java developer community can rest assured that the leading edge Java environment will continue to be available on Mac OS X in the future. Combined with last month's announcement of IBM joining the OpenJDK, the project now has the backing of three of the biggest names in software."

Apple also said that Java SE 6 will continue to be available from Apple for Mac OS X Snow Leopard and the upcoming release of Mac OS X Lion. Java SE 7 and future versions of Java for Mac OS X will be available from Oracle.

"We're delighted to be working with Oracle to insure that there continues to be a great version of Java on the Mac," said Bertrand Serlet, Apple's senior vice president of Software Engineering. "The best way for our users to always have the most up-to-date and secure version of Java will be to get it directly from Oracle."

Java is a general purpose software development platform that is specifically designed to be open and enable application developers to "write once, run anywhere." The Java platform is most widely used in business software, Web and mobile applications.

In October, Apple announced it would
deprecate Java for Mac OS X, meaning the company would no longer issue its own updates for Java. Apple's note said that the Java runtime could be removed altogether from future versions of Mac OS X.

An e-mail claimed to be from Apple CEO Steve Jobs said that his company decided it would no longer develop their own Java for Mac because their updates were always
a version behind the official releases from Oracle and Sun. Jobs allegedly said that the current method "may not be the best way to do it."


Oracle et Apache: de l'eau dans le gaz
Le début de la semaine passée a vu la Fondation Apache émettre un billet qui a fait beaucoup de bruit. Dans celui-ci, elle reproche à Oracle de ne pas respecter les termes du JSPA (pour Java Specification Participation Agreement) et qui, d'après la Fondation, l'autorisent à obtenir un TCK (Test Compatibility Kit) lui permettant de redistribuer Harmony, son JDK, sous la licence Apache. Le problème, qui reste un problème de brevet et de propriété intellectuelle, est ouvert depuis un moment: en 2007 déjà, Apache avait écrit une lettre ouverte à Sun. Les choses n'ont que peu changé depuis. Sauf qu'aujourd'hui, la Fondation menace carrément de quitter le processus du JCP ! Comme l'analyse InfoQ, c'est peut-être la seule arme qui reste à la Fondation Apache. Mais serait-ce vraiment une bonne chose ?
Pour mieux comprendre les termes et enjeux de l'imbroglio dans lequel se sont empêtrées les parties, un excellent document reste
la FAQ publiée à l'époque par Apache pour expliciter sa lettre ouverte à Sun. Oracle vient d'ailleurs de publier sa réponse et… le moins que l'on puisse dire, c'est que la situation semble dans une impasse, chacun restant campé sur ses positions.
Par ailleurs, il faut aussi replacer les choses dans leur contexte actuel:
  • IBM, le plus gros contributeur à Harmony, le JDK d'Apache, a récemment indiqué se rapprocher d'Oracle à travers OpenJDK. Ainsi, il se détache d'Apache qui se retrouve donc isolé.
  • Oracle a par ailleurs attaqué Google sur son implémentation d'Android, basée en grande partie sur ce même Harmony.
  • enfin, le récent regain d'intérêt envers Java SE for embedded devices n'est peut-être pas étranger à tous ces problèmes. Même si le produit « date d'avant Android », Oracle semble vouloir le renforcer. Et la première étape, comme annoncé lors de l'ARM Conference consiste à faire correspondre les numéros de versions et implémentations des versions Java SE classic etembedded. Cette version est-elle appelée à se retrouver rapidement dans les téléphones portables à grande échelle maintenant que Java ME semble dépassé ? Oracle pourrait le souhaiter, car elle n'est pas gratuite !

Always leave the campground cleaner than you found it.
Don't forget to clean up the trash that we've left lying around:
  • duplicated code
  • poorly named classes, methods, and variables
  • huge functions
  • magic numbers
  • inappropriate combinations of differing levels of abstraction
  • tight coupling
  • low cohesion
  • high cyclomatic complexity (otherwise known as "spaghetti code")

and the list goes on...


Common Mistakes in Agile Adoptions
A number of commentators have written about common mistakes and anti-patterns of Agile adoption. They have posted "Top X" lists of things to avoid and mistakes they have seen in Agile implementations across a variety of organisations.
Michael Dubakov of Target Process wrote two blog entries about of the "10 Most Common Mistakes in Agile Adoption" (Part 1 & Part 2). He maintains that "Companies are making the same mistake during agile adoption over and over again."


Oracle Announces JSRs for Java 7 and Java 8
Oracle has announced the umbrella JSRs for Java 7/8, covering a number of the features known from the earlier Plan B. The way JavaSE and JavaEE specifications are defined are by reference to other JSRs, rather than defining new content directly – but often will do so after those referenced JSRs are completed. In this case, many of the referenced JSRs are still works-in-progress, or in the case of modularity, not even known at this stage.


It's Full of JSRs!
The proposed contents for inclusion in Java SE 7 include:
The Java SE 8 JSR is necessarily a bit more sketchy but contains:


Enfin des JSRs pour Java 7 & 8
Les JSRs sont des documents primordiaux du Java Community Process, puisqu'il s'agit des documents de travail qui seront soumis aux votes de la part des membres du-dit JCP.


JDK 7

The feature list has been updated and at this point is not expected to change. The
milestone schedule will be updated soon, but in the meantime here is the highlevel
schedule for the remainder of the release:
  • 2010/12/16 Feature Complete
  • 2011/04/12 Rampdown start: P1-P3 bugs only
  • 2011/04/28 API/interface changes: Showstoppers only
  • 2011/05/11 All targeted bugs addressed
  • First release candidate built
  • 2011/05/18 Bug fixes: Showstoppers only
  • 2011/06/08 Final test cycle starts
  • 2011/07/28 General Availability

Architecture – Etre toujours impliqué
Nous avons vu dans un précédent billet que le rôle de l'architecture pouvait être remis en perspective au travers de la poursuite de trois objectifs : Etre Connecté aux objectifs métier de l'entreprise ; Assurer la Cohésion des solutions ; Accueillir favorablement le Changement. Voici un premier principe à appliquer afin d'atteindre ces objectifs. Il concerne l'architecte et son rôle
et s'intitule « Etre toujours impliqué ».
Le rôle d'un architecte ne se limite pas à un projet ou à une phase d'un projet. Pour être efficace, un architecte doit avoir des perspectives bien plus larges. Un architecte Lean communique en permanence avec toutes les parties prenantes de la DSI (du métier aux opérations). Il joue un rôle actif dans la réalisation des projets. Il s'assure que les leçons apprises sur les projets passés ou en cours sont sues et qu'elles sont appliquées dans tous les projets qui le nécessitent.


Convention over Configuration
"Convention over Configuration" (on trouve parfois une traduction par "convention plutôt que configuration"),
ce design pattern (ou patron de conception, pour faire plaisir aux francophones intransigeant) est un des plus intéréssant de ceux à la mode en ce moment.

Le principe en est très simple :
les applications se basent sur des conventions au lieu de se baser sur des fichiers (ou autre) de configuration.

Plus clairement:
  • Réduire le nombre de fichiers de configuration,
  • Configurer par défaut les applications (donc, sans aucun fichiers, base de données ou autres stockant ces informations de configuration) en se basant sur les standard (les conventions) du milieux,
  • Possibilité d'écraser cette configuration par convention par un fichier de configuration : l'application se configure toute seule en se basant sur des conventions, et si nécessaire, on peut écraser cette configuration par défaut via des informations de configurations dans un fichiers de configuration (ou base de données ou autre).

Modularisation de la JVM
Cette session présente JigSaw, qui continue son lobbying pour imposer à la JVM une modularisation autre que celle proposée par OSGi ...
A quoi ça sert ? A sortir du classpath Hell, à accélérer le lancement de la JVM, à alléger le runtime, à approvisionner automatiquement (comme le font les Linux avec apt ou yuml), et à assurer la prédictibilité de l'environnement d'exécution.
La vérification du classpath à l'installation plutôt qu'au runtime, associé à la construction de profils pour une application (liste des classes effectivement chargées lors du premier lancement) doivent nous apporter un gain significatif de fiabilité et de réactivité.


Java Synchronization (Mutual Exclusion) Benchmark
I've created another benchmark. This time, I've benchmarked the different ways of synchronizing a little code using mutual exclusion on this code.

Aucun commentaire: