mercredi 19 mars 2014

Java 8 tout chaud sorti du four

     Je ne pouvais pas ne pas mettre un petit mot, ca y est Java 8 GA (General Availability) est sortie. Un certain nombre de développeurs se sont déjà fait la main (et on blogués) sur les milestone mais cette fois c'est la version officielle.

Le mot de Mark Reinhold : http://mreinhold.org/blog/jdk8-ga
Download depuis chez Oracle : http://www.oracle.com/technetwork/java/javase/downloads/index.html


Quelques réactions à la sortie :

Les outils suivent et supportent Java 8

     Et du coup des comparaisons qui peuvent être amusantes, les deux étant du bytecode quelles sont les différences entre scala et lambda Java 8.

     Alors pour le meilleur et pour le pire (je suis sûr qu'il existe des manières très tordues d'utiliser les lambda, default method, ...) avançons, essayons, testons, hackons et regardons ce que cela va donner.

dimanche 16 mars 2014

Maven en quelques urls

     Ce billet pour donner quelques urls utiles quand on utilise Maven. Je ne détaillerais pas tout ce que permet de faire cet outil car c'est vaste et les nombreux posts, livres à ce sujet le font déjà très bien.

     Pour commencer forcément : http://maven.apache.org/

La dernière version est actuellement Maven 3.2.1
L'historique des versions est disponible sous http://maven.apache.org/docs/history.html

Maven c'est quoi


Maven dans les grandes lignes c'est (http://maven.apache.org/what-is-maven.html) :
  • un outil pour "builder" les projets Java avec un cylcle de vie  bien défini.
  • un outil qui permet de gérer les dépendances aux librairies externes.
  • un outil qui peut distribuer/versionner les librairies Java via les systèmes de repository (local, intranet, internet).
 Un peu d'histoire sur Maven et sa philosophie.

Les solutions alternatives


     Les premières alternatives plus rudimentaires sont le scripting (sh, bat, ...) ou le make. En dehors de ces dernières il existe principalement trois autres solutions plus évoluées

Ant : http://ant.apache.org/
L'un des premiers à avoir permis de scripter des builds de projets Java en standardisant des tasks.

Ant et Ivy : https://ant.apache.org/ivy/
Ivy pour une gestion de dépendances dite agile qui est devenu officiellement un sous projet de Ant en 2007 (Mail de passage à l'incubator) permettant ainsi une complémentarité de ces deux projets.

Gradle : http://www.gradle.org/
Solution open source dont la communauté est drivé par GradleWare. Le code est disponible sous GitHub.

Gradle, Ivy et Maven via des plugins peuvent s'intégrer dans les différentes EDI (Eclipse, NetBeans, IntelliJ)

Maven c'est aussi un outil en ligne de commande


     Maven un outil en ligne de commande qui s'étend par système de plugin. Il en existe de très nombreux maintenus par Apache Maven ou d'autre organisations.

     Ces plugins permettent d'apporter de nouvelles fonctionnalités (déploiement sur des serveurs applicatifs, visualisation de dépendances, couverture de code par les tests unitaires, ...) ou peuvent faciliter l'intégration dans d'autres outils comme les serveurs d'intégration continu tel Jenkins.

Quelques plugins : http://maven.apache.org/plugins/index.html

En plus des plugins existant chacun peut développer les siens, adaptés à ses besoins

Maven : un repository et un outil de gestion de dépendances

 

     Les repository Maven sont les emplacements où sont distribuées/récupérées les librairies nécessaires aux builds de vos projets. On a un repository local sur le poste sur lequel on travail mais (fonction de la configuration utilisée) on peut être en interaction avec un repository Maven central, un repository d'entreprise, un repository d'éditeur (par exemple JBoss).

Les principaux repository Maven officiels : http://maven.apache.org/repository/index.html

Les outils permettant de faciliter la gestion des repository :
Une matrice de comparaison de leurs features : http://docs.codehaus.org/display/MAVENUSER/Maven+Repository+Manager+Feature+Matrix

 Rechercher une librairie sur un repository Maven central :
http://repo.maven.apache.org/maven2/
http://search.maven.org/#browse

Comment faire lorsque l'on est développeur et que l'on souhaite voir son framework publié sur un repo centrale Maven : http://lkrnac.net/blog/2014/03/06/deploy-to-maven-central/

Quelques ressources sur Maven 



dimanche 2 mars 2014

Un nouveau français Java Champion

     Un nouveau français viens de rejoindre le cercle assez fermé des Java Champion : David Gageot (http://blog.javabien.net/2014/02/24/look-ma-im-a-java-champion/)

     Pourquoi un rapide post sur ce sujet ? Parce que je trouve que c'est une bonne chose. Ce sont ces personnes qui amènent une émulsion positive dans notre monde de développeurs, qui peuvent donner envie d'avancer et qui par leur travail nous apportent à tous.

   Les java champions c'est quoi


En résumé : groupe comprenant des passionnés, des développeurs qui œuvrent pour la communauté Java au travers différentes contributions (auteurs de livre, speakers en conférence, ...)

La définition à la source
: https://java-champions.java.net/

C'est différent des Java RockStar (http://www.oracle.com/javaone/rock-stars/2013/index.html), programme visant plutôt à reconnaitre la qualité de speaker.

Tous les Java champions et leur bio : https://java.net/website/java-champions/bios.html

    Les frenchies Java Champions


     Quelques autres Java Champions à suivre


     Je ne vais pas tous les citer mais quelques uns de ceux que j'essaye de suivre régulièrement au travers leurs présentations, publications :


mais aussi Gavin King, Bruce Eckel, Jonas Boner, Joshua Bloch, Ben Evans, Neal Gafter, Brian Goetz, Kirk Pepperdine et bien d'autres encore.