Keynotes

Aujourd’hui, cinquième et dernière journée à Devoxx… A noter que le contenu de cet article sera plus court que les précédents, les sessions en parallèle étant moins nombreuses et que la dernière journée n’est en fait qu’une matinée.Cette journée, tout comme les deux jours précédents, démarre par une keynote un peu spéciale où Joshua Bloch, Brian Goetz, Ben Evans, Mark Reinhold, Brian H. Prince et Emmanuel Bernard se retrouvent ensemble sur scène pour répondre aux questions techniques posées au préalable sur le google-group de Devoxx par les devoxians ! La Keynote est très instructive et interactive car chaque intervenant a son avis et n’hésite pas à le partager. Les échanges portent sur la guerre des brevets, le mobile, le futur de java et de la JVM, l’open source. Pas de langues de bois, les intervenants travaillant pour Oracle, Google, Redhat ou Microsoft, quelques petites piques ont fusées.

Conférences

The Evolution of Java: Past, Present, and Future

Par Joshua Bloch

Très bonne conférence, Joshua a su exposer très simplement l’évolution de Java tout en mettant en avant si cela avait apporté quelque chose ou non à ce dernier et si cela était correctement implémenté. Java est un langage formidable qui a apporté beaucoup aux entreprises mais comme tout outil il a ses défauts. La volonté de Joshua est clairement d’avoir un regard objectif sur Java et de partager ses remarques positives et négatives.

Les aspects positifs du language :

  • (Java SE 4) Assertions,
  • (Java SE 5) amélioration des boucles : for(Type de l’objet nomVar : nom liste){..
  • (Java SE 5) Annotations,
  • (Java SE 5) Enum,
  • (Java SE 7) Switch avec des String,
  • (Java SE 7) Littéraux binaires,
  • (Java SE 7) Multi-catchs,
  • (Java SE 7) Instanciation générique des listes,
  • (Java SE 7) “try-with-resources”,
  • (Java SE 7) Simplification des varargs avec l’annotation à @SafeVarArgs.

Les aspects “corrects” :

  • Nested Classes,

Les aspects “négatifs” :

  • strictfp,
  • Generics,
  • Auto-Boxing,
  • Sérialisation,
  • Var-args.

En conclusion et pour aller plus loin, Joshua conseille de lire ses livres : Effective Java et Java(TM) Puzzlers

The Ceylon programming language

By Emmanuel Bernard and Stéphane Epardaud

Emmanuel Bernard et Stéphane Epardaud ont su transmettre leur passion pour Ceylon, le nouveau langage de programmation “sponsorisé” par JBoss. Ceylon a pour objectif de reprendre les points forts de Java tout en corrigeant et améliorant certains aspects de ce dernier. Ce langage statique pour la JVM a une syntaxe “proche” de Java et se veut facile d’apprentissage. De plus, il se veut moins verbeux, mais plus parlant grâce à une syntaxe très simple. Emmanuel parle d’une nouvelle ère pour Java et sa plateforme JDK si Ceylon perce le marché. Il propose notamment les fonctionnalités suivantes :

  • Une protection contre les NullPointerException par le compilateur,
  • Nouveau type de visibilité,
  • Gestion plus facile des getter/setter et constructor,
  • Des types plus simples et plus naturels à utiliser,
  • L’utilisation naturelle d’objects immuables,
  • Le type Union qui permet de combiner plusieurs interfaces,
  • Les propriétés : les accesseurs sont présents par défaut,
  • Pas d’overload, et un override plus simple et plus “fort”,
  • Une meilleure gestion de l’héritage, de l’abstraction et des interfaces,

Ce langage est très prometteur mais il lui faudra encore quelques temps avant d’en voir une version concrètement utilisable dans une application d’entreprise.

What Shazam doesn’t want you to to know

By Roy van Rijn

Cette session a clôturé de belle manière cette folle semaine à Devoxx. Le speaker propose de parcourir un développement qu’il a réalisé au cours d’un week-end : la reconnaissance d’une musique via un microphone, système utilisé notamment par les applications Shazam et SoundHound. Roy montre des morceaux de code Java qu’il a réalisé pour capturer un flux émis à travers un microphone puis explique comment traiter ce flux de données via la transformation de Fourier. Après la transformation, Roy applique quelques algorithmes de matching simple afin de rapprocher les chansons. S’ensuit une démo avec un catalogue de musique analysées en peu de temps et un IPhone émettant un des titre analysé…. Aucun effet démo, le développement réalisé est parfaitement fonctionnel et stupéfiant ! Vient ensuite la partie lois, brevets and co’ où Roy explique que peu de temps après avoir écrit un article sur son blog, il a reçu un mail de Shazam lui demandant de supprimer tous les contenus relatifs “à la technique de reconnaissance musicale”… Roy n’a pas abdiqué et a proposé une session permettant à tous ses interlocuteurs de développer une solution équivalente en un temps record. Keep it open guy !