Devoxx 2011 - retour sur terre après le troisième jour

Publié par Éric Le Merdy

Troisième et dernier jour de Devoxx, la conférence Java majeure en Europe. Trois sessions à résumer pour cette matinée ensoleillée au Metropolis.

**Keynote** Technical Discussion Panel avec Joshua Bloch, Brian Goetz, Ben Evans, Mark Reinhold, Emmanuel Bernard et Brian H. Prince

C'est l'un des animateurs du Java Posse qui posait les questions au panel. En voici quelques-unes :

  • Qui va gagner le bras de fer judiciaire ? (il y avait des employés d'Oracle et un de Google).
    Il y a des règles qui régissent le jeu. Alors on joue !
  • Pourquoi le développement d'Android n'est-il pas ouvert ?
    Pour l'efficacité et le leadership de Google.
  • Pourquoi les nouveaux langages sont-ils si compliqués ?
    Avoir de nouveau langages est un signe de richesse
  • ...

Java SE The Evolution of Java : Past, Present and Future par Joshua Bloch

C'était très intéressant de revenir sur l'histoire des changements apportés au JDK et de mesurer leur succès.

Mais d'abord, quel était l'**esprit** original de Java ? Java est issu du langage Oak, une ré-implémentation de C++.
Java est un langage inspiré par la théorie et simple et pragmatique. Les modifications du langage ont-elles toujours suivies ce "Feel of Java" ?

Voici maintenant un coup d’œil aux jugements qu'a fait Joshua:

  • Nested classes
    Pas mal, mais on aurait pu faire vraiment bien.
  • Sérialisation
    Avec son constructeur caché, la pire évolution jamais ajoutée au JDK !
  • Modifieur strictfp
    Tellement mineur qu'on aurait pu éviter.
  • **Assertions** (2002, J 1.4)
    Un mieux. Ceux qui l'utilisent aiment et s'en servent, les autres l'ignorent car ils craignent les performances.
  • **Generics** (2004, J2SE5)
    La généricité était nécessaire, mais pas implémentée comme ça ! Le complexité du design a dérogé à "l'esprit de Java".
  • **Annotations** (2004, J2SE5)
    Un succès, utile pour certains, critique pour d'autres.
  • **Enums**
    Un succès certain
  • Boucles for amméliorées
    Plus grand succès jamais apporté, rien à dire.
  • Autoboxing et unboxing
    Discutable...
  • **Varargs**
    Un succès modéré surtout après l'ajout des générics
  • Imports statiques
    Un succès modeste
  • String dans les switch (Java 7)
    Un succès modeste
  • Binary literals et underscores dans les nombres
    Succès modeste
  • Multi-catch
    Grosse victoire, bon potentiel pour la qualité de programmes
  • Re-throw plus précis
    Bonne victoire
  • Improved Type Inference for Generic Instance Creation
    Grosse victoire
  • Try-with-resources
    Grosse victoire, qualité augmentée (même dans le JDK dont 70% du code d'accès aux ressources ne les libèrent pas de façon sure !)

Pour Java 8, on ne connaît pas encore la popularité des nouvelles fonctions évidemment. Mais la tendance de la qualité des améliorations est en augmentation.

Java SE What Shazam doesn't want you to know, par Roy van Rijn

Tout d’abord : les [slides](http://www.slideshare.net/royvanrijn/what-shazam-doesnt-want-you-to-know)

Vendredi soir, Roy accompagne sa femme à l'aéroport. Seul pendant tout un week-end ! Il va pouvoir consacrer deux jours complet à... développer ! Pizza commandée, bière et coca au frigo, le voilà vendredi soir face à sa machine. Et là, drâme, panne d'inspiration. Alors, il décide d'aller au bar parce qu'on est vendredi quand même. Et c'est en écoutant "chanter" une amie qu'il lui vient l'idée de découvrir comment marche les services de reconnaissance de musique comme [shazam](http://www.shazam.com) par exemple.

Samedi matin, une aspirine et enfin prêt à coder.
Il explique comment il a utilisé l'API java sound pour faire de l’acquisition de son microphone. Il obtient des séquences de chiffres qu'il passe dans OpenOffice Calc pour visualiser les données.
Il va alors se plonger un peu dans la théorie du son, il nous montre même une image de l'oreille… Il nous parle de la transformation de Fourrier, qu'il nous explique avec son manche de balai ! C'est une fonction essentielle pour faire une empreinte numérique du son. C'est la base de la reconnaissance de la musique puisque cela forme les données contre lesquelles il faut associer l'échantillon à reconnaître.
Au final, on a le droit à une démo dans eclipse de son programme avec un extrait de son iPhone qu'il matche avec sa collection de mp3 sur son ordinateur. Et ça a marché !

Et hop, un post sur son blog pour monter au monde le résultat de son week-end de geek !
Et voilà qu'il reçoit un e-mail des ayants-droit de l’algorithme de Shazam. La discussion s'est alors élargie sur le système des brevets logiciels.

Sans ce post cependant, il n'aurait pas reçu ce mail incroyable de la part d'un gérant de salle de cinéma en Inde ! Son problème est que les films étrangers se sont pas toujours sous-titrés. Donc il utilise un ordinateur avec des slides et un projecteur pour mettre les sous-titres par dessus le film ! Or, le projecteur de cinéma qui fait tourner la bobine n'est pas de première jeunesse et il y a un problème de synchronisation entre le film et les slides. Donc il y a un opérateur qui apuie sur la barre d'espace pour passer les sous-titres synchronisés avec la bande son ! Il demandait donc d'utiliser son idée pour synchroniser ça automatiquement ! A ce jour, Roy n'a pas eu d'autres nouvelles de ce gérant de salle.

Conclusion

Très bon événement Java ! Le prochain sera donc Devoxx France, organisé notamment par l'équipe du ParisJUG