SlideShare une entreprise Scribd logo
1  sur  79
Télécharger pour lire hors ligne
#ParisJUG 1
Déjà 10 ans :
retour vers le
futur avec
JMX
#ParisJUG 2
Déjà 10 ans :
retour vers le
futur avec
JMDoudouX
#ParisJUG
Je vais vous raconter une histoire
3
#ParisJUG
Le début de l’histoire
Pour être un des speakers
à leur dixième anniversaire
4
Il y a quelques mois,
l’équipe du Paris JUG me contacte
Au côté de Rémi Forax et Dr Venkat Subramaniam
#ParisJUG
Le lieu
Charles me fait comprendre
que cela aura lieu
5
Dans LE monument emblématique de Paris
Et bien SI, la preuve on est là
Pour le provincial que je suis
#ParisJUG
Le sujet
Importance du choix du sujet
6
Lieu emblématique,
public averti,
avec deux speakers de renommée mondiale
Charles me dit : tu as carte blanche
#ParisJUG
C’est un projet IT
Définition du cahier des charges
7
Sauf que contrairement aux autres,
Impossible de déraper
Ni en délai de livraison
Ni en temps d’exécution
Et j’ai carte blanche
#ParisJUG
Le cahier des charges
Sujet à la hauteur de l’événement
8
Doit parler de Java et/ou la JVM
A la Tour Eiffel
Et quelques recherches
…
Après une longue réflexion
#ParisJUG
Eiffel dans la JVM
La JVM est polyglothe
9
On est à la Tour Eiffel
Sujet hype, jamais abordé
pendant les 10 ans au Paris JUg
#ParisJUG
Eiffel
A influencé plusieurs langages dont Java
10
Design by contract
assertions, precondition, postcondition, class invariants
Langage orienté objet, repose sur des classes
héritage multiple, génériques, …
Créé par Bertrand Meyer en 1985
Typé statiquement
Gestion de la mémoire avec un ramasse-miettes
#ParisJUG
Eiffel
11
Plusieurs implémentations
Eiffel Studio
Visual Eiffel
…
Exemple :
Liberty Eiffel
qui repose sur SmartEiffel
#ParisJUG
SmartEiffel
12
Propose un compilateur
qui transforme de l’Eiffel en C ou en Java
Implémentation GNU
Créé par Dominique Colnet
Projet du LORIA impliquant
INRIA: Institut National de Recherche en Informatique et Automatique
CNRS: Centre National de la Recherche Scientifique
Université Henri Poincaré, Nancy 1
Université Nancy 2
INPL: Institut National Polytechnique de Lorraine
#ParisJUG 13
Jean-Michel Doudoux
http://www.jmdoudoux.fr
@jmdoudoux
Co-fondateur du , membre du
Auteur de 2 didacticiels
Diffusés sous licence GNU FDL
• Développons en Java (3400 pages)
• Développons en Java avec Eclipse
CTO et
#ParisJUG
Malheureusement
Le projet SmartEiffel est arrêté
14
En 2008
#ParisJUG
2008
10 ans est une éternité en informatique
15
AOL abandonne le navigateur Netscape
1ere version public de Google Chrome
Microsoft propose Windows Server 2008 et HyperV
Apple lance l’iPhone 3G
Nokia acquière Symbian
#ParisJUG
2008 : écosystème Java
La version courante
Java SE 6 (nom de code Mustang)
Java EE 5
Livres de références :
16
Eclipse 3.4 (Ganymede)
NetBeans 6.5
Nov 2002Mai 2008 Mai 2007
IntelliJ IDEA 7
#ParisJUG
2008 : Paris JUG
1er événement le 12 février 2008
dans les locaux de Port Parallèle
17
65 participants
#ParisJUG
2008
Devoxx Belgium
18
Rencontre avec le Paris JUG
#ParisJUG
2009
Apple abandonne le PowerPC avec MacOS X v10.6
19
USB 3.0
Sort de la version béta
Microsoft lance Bing et Virtual PC et
créé sous le pseudo Satoshi Nakamoto
Google présente Go, AngularJS, goo.gl
Android version 1.5 (Cupcake) et version 1.6 (Donut)
#ParisJUG
2009 : écosystème Java
Spring 3.0
Hibernate 3.4
20
Mockito 1.8
Eclipse 3.5 (Galileo)
JetBrains open source le cœur d’IntelliJ IDEA
Community edition
#ParisJUG
2009 : Java EE 6
Thèmes : flexibilité, extensibilité et facilité d’utilisation
Web Profile
Sous ensemble de Java EE
Packaging dans un war (EJB Lite)
21
Nouvelles API :
CDI
JAX-RS
Bean Validation
Interceptors
API mises à jour :
EJB 3.1, Servlet 3.0, JPA 2.0, JSF 2.0,
API pruned : JAX-RPC, EJB 2.x Entity Beans, JAXR, JSR 88
#ParisJUG
2009
10 février : premier anniversaire du Paris JUG
Présentation des
autres JUGs
Dans les locaux de la Fiap
22
250 participants
#ParisJUG
Emulsion des JUGs
Alpes JUG
Bordeaux JUG
Breizh JUG
Ch’ti JUG
ElsassJUG
FinistJUG
Lava JUG
Lorraine JUG
Lyon JUG
Mars JUG
Montpellier JUG
Nantes JUG
Normandy JUG
Paris JUG
Poitou-Charentes JUG
Riviera JUG
Tours JUG
Toulouse JUG
Duchess France
Virtual JUG
23
#ParisJUG
2010
Format de compression audio et vidéo WebM
24
Hewlett Packard achète Palm
Android version 2.1, 2.2 (Froyo), 2.3 (Gingerbread)
Le vers Stuxnet
Apple iPad et iPhone 4
#ParisJUG
2010 : écosystème Java
25
Hibernate 3.5, 3.6
Eclipse 3.6 (Helios)
NetBeans 6.9
achèteJanvier 2010
#ParisJUG
2010 : 2nd anniversaire
9 février 2010
Dans les locaux de la Sorbonne
26
500 participants
Thème l’open source en France
#ParisJUG
2011
Oracle donne OpenOffice à la fondation Apache
Google propose Dart et achète Motorola Mobility
27
Intel architecture Sandy Bridge
Android version 3.0 (Honeycomb), 3.1
Microsoft Internet Explorer 9, Office 365
Apple iPhone 4s
Décès de Steve Jobs et Dennis Ritchie
#ParisJUG
2011 : Java SE 7
En juillet, nom de code Mustang
Fork/Join
Projet Coin :
switch avec String
try with resources (ARM)
opérateur diamant <>
underscores dans les littéraux numériques
catch avec plusieurs exceptions
28
NIO 2
Invoke Dynamic
#ParisJUG
2011 : écosystème Java
Spring 3.1
NetBeans 7.0
Hibernate 4.0
29
Mockito 1.9
Tomcat 7.0
Eclipse 3.7 (Indigo) et 4.0 (Juno)
IntelliJ IDEA 11
#ParisJUG
2012
Facebook passe la barre du milliard d’utilisateurs
Apple iPhone 5
30
Google Play et Google Drive
Android version 4.1 (Jelly Bean) et 4.2
RasperBerry Pi
Microsoft Windows 8
Microsoft Surface
TypeScript
#ParisJUG
2012 : écosystème Java
Log4j 1.2.17
Pas de 4e anniversaire pour le Paris JUG
Hibernate 4.1
31
Eclipse 4.2
JetBrain open source Kotlin
IntelliJ IDEA 12
#ParisJUG
2012 : Devoxx France
A l'hôtel Marriott rive gauche
75 % des conférences en langue française
32
1248 participants
#ParisJUG
2013
Sony Playstation 4
Intel architecture Haswell
33
Microsoft remplace Messenger par Skype, XBox One
Affaire Edward Snowden
Google achète Waze, Android version 4.4 (KitKat), Wallet
Apple iPhone 5s
Facebook React
#ParisJUG
2013 : écosystème Java
Spring 4.0
Hibernate 4.2 et 4.3
34
Eclipse 4.3 (Kepler)
NetBeans 7.4
IntelliJ IDEA 13
#ParisJUG
2013 : Java EE 7
Thèmes : productivité et HTML 5
35
JPA 2.1
génération de schéma, proc stock, CriteriaUpdate et CriteriaDelete
EJB 3.2
JAX-RS 2.0
API cliente, asynchronisme, HATEOAS, filtres et intercepteurs
JMS 2.0
simplification de l’API, annotations
4 nouvelles API :
JSON-P 1.0 Batch 1.0
WebSocket 1.0 Concurrency 1.0
#ParisJUG
2013
2nde édition de Devoxx FR, 27 au 29 mars 2013
1478 badges, 180 speakers
36
une équipe de 18 bénévoles
#ParisJUG
2014
Microsoft :
Satya Nadella devient le CEO,
achat de Nokia et Mojang
Apple
version Yosemite de MacOS X,
Swift,
iPhone 6 et 6 plus
37
Android version 5.0 (Lollipop), Android Studio
RAM DDR4
#ParisJUG
2014 : Java SE 8
Diffusé en mars, nom de code Spider
La plus importante version ?
A rendu Java great again ?
38
Méthode par défaut et static dans les interfaces
Introduit l’héritage multiple de comportement dans les interfaces
public interface MonInterface {
public static void main(String[] args) {
System.out.println("Hello");
}
}
public interface affichable {
default void afficher(String valeur) {
System.out.println("Valeur = "+valeur);
}
}
L’API Date & Time
#ParisJUG
2014 : Java SE 8
La classe Optional
39
L’interface CompletableFuture
Remplacement PermGen par MetaSpace
Approche fonctionnelle avec les API Streams et Collector
OptionalDouble ageMoyen = personnes
.stream()
.filter(p -> p.getNom().startsWith("A"))
.mapToInt(Personne::getAge)
.average();
System.out.println("age moyen = " + ageMoyen.orElse(0.0));
monBouton.setOnAction(event -> System.out.println(event));
monBouton.setOnAction(System.out::println);
Expression lambda et référence de méthodes
#ParisJUG
2014 : écosystème Java
Tomcat 8.0
Le Paris JUG quitte l’ISEP pour l’ESIA
Log4j 2.0
40
Mockito 1.10
JUnit 4.12
JHipster 1.0
NetBeans 8.0
Eclipse 4.4 (Luna)
Spring Boot 1.0, 1.1 et 1.2
IntelliJ IDEA 14
#ParisJUG
2014 : Devoxx FR
3e édition de Devoxx France, 16 au 18 avril 2014
678 propositions au CFP,
202 speakers,
1497 participants
41
Université de Rémi Forax sur les Lambda
#ParisJUG
2014 : Young blood
14 janvier 2014
Permettre à de speakers débutants de faire leur premières armes
42
Un CFP
5 sujets choisis et 1 tiré au sort
Le vainqueur fait sa présentation lors d’un quickie à Devoxx FR
Des sujets variés
Sessions de préparation
#ParisJUG
2015
PHP 7.0
43
Facebook React Native
Apple Watch, iPad Pro
Android version 6.0 (Marshmallow), arrêt de Google Code
Microsoft
#ParisJUG
2015 : écosystème Java
Vingt ans de Java
44
Java redevient le langage de l’année au TIOBE
Eclipse 4.5 (Mars)
Spring 4.2, Spring Boot 1.3
Hibernate 5.0
JHipster 2.0
NetBeans 8.1
IntelliJ IDEA 15
#ParisJUG
2015 : nouveau président
Et évidemment une indéfectible passion pour la communauté
45
3 caractéristiques pour être président du Paris JUG
#ParisJUG
2015 : quizz de Charles
Il est temps d’y répondre (QCU) :
A - MrQuizz est un bon Leader
46
B - Le ParisJUG a su rester fun
C - Il y aura des modules dans la JVM
D - All of the above
#ParisJUG
2015 Devoxx FR
4e édition de Devoxx FR, 8 au 10 avril 2015
Changement de cadre et d’envergure
De l'Hôtel Marriott au Palais des congrès
47
2500 participants, 220 présentations
Des possibilités infinies avec le 8 de Java 8
#ParisJUG
2016
Microsoft
HoloLens
acquière
Pokémon GO
48
Android version 7.0 (Nougat)
Apple iPhone 7 et 7 plus
#ParisJUG
2016 : écosystème Java
Spring 4.3, Spring Boot 1.4
Eclipse 4.6 (Neon)
Hibernate 5.1 et 5.2
49
Tomcat 8.5
Kotlin 1.0
JHispter 3.0
NetBeans 8.2
#ParisJUG
2016
5e édition de Devoxx France, du 20 au 22 avril
50
#ParisJUG
2017
Microsoft
Windows 10 Creators Update
abandon de Windows Phone
Apple iPhone X avec Face ID
51
Twitter passe de 140 à 280 caractères
Mozilla Firefox Quantum
#ParisJUG
2017 : Java SE 9
Diffusé en septembre, pas de nom de code ;-(
52
Sûrement la version la plus controversée
Première fois que l’EC du JCP vote Non
Introduit des changements majeurs
Java Module System, issu des travaux du projet Jigsaw
Tout en tentant d’offrir une certaine compatibilité
Pour permettre une nécessaire migration incrémentale
Implique des difficultés
La plupart des API internes sont encapsulées
Les modules Java EE ne sont pas résolus par défaut
JAX-B, JAX-WS, JavaBeans Activation Framework, JTA, Commons annotations, CORBA
…
#ParisJUG
2017 : Java SE 9
Les modules sont perçus comme contraignants
53
Exemple de contraintes :
plus d’accès par défaut aux classes public d’un module
plus d’introspection par défaut sur les classes d’un module
plus de split packages
plus de dépendances circulaires
La nécessité de définir les dépendances dans les module-info ET les outils de build
…
 moins de liberté
utilisée pendant plus de 20 ans
parfois avec abus
Tous les systèmes de modules sont contraignants
#ParisJUG
2017 : Java SE 9
Mais on doit profiter des avantages des modules
54
L’occasion de remettre de l’ordre :
dans le design des livrables
dans les dépendances
dans les API utilisées (notamment celles non supportées du JDK)
Une configuration fiable
Réduire les problèmes du classpath hell
L’encapsulation forte
Améliorer la sécurité et la maintenabilité
#ParisJUG
2017 : Java SE 9
De nombreuses autres fonctionnalités : + 89 JEPs
55
API
Fabriques pour des collections immuables
Process API
Reactive Streams (Flow API)
Var Handles
…
Evolutions mineures dans le langage
_ est un mot clé
Méthodes private dans les interfaces
Variables effectivement finale dans try with ressources
Opérateur diamant dans les classes anonymes internes
@SafeVarags sur les méthodes d’instances private
Outils
JShell
Jlink pour créer des runtime compacts
Recherche dans la Javadoc en HTML 5
Jdeprscan
…
JVM
G1 est le ramasse-miettes par défaut
Réduction de la taille mémoire (Compact Strings)
Amélioration de la performance et de la sécurité
Multi-Release Jar
Unified JVM et GC logging
…
#ParisJUG
2017 : Java EE 8
CDI 2.0
événements asynchrones
56
JAX-RS 2.1
SSE, API client réactive
JSON-P 1.1
JSON Pointer, JSON Patch, JSON Merge Patch
Servlet 4.0
HTTP/2
Diffusé en septembre
Bean Validation 2.0
2 nouvelles API :
JSON-B 1.0
Security 1.0
#ParisJUG
2017 : écosystème Java
JUnit 5.0
Eclipse 4.7 (Oxygen)
57
Spring 5.0
Java 8 et API de Java EE 7
compatibilité Java 9 et Java EE 8
JHipster 4.0
Spring Boot 1.5
Fermeture du site java.net
Dec 2017
IntelliJ IDEA 2017.1
#ParisJUG
2017 : changements majeurs
Open JDK : nouveau modèle de releases cadencé sur 6 mois
2 releases majeures de Java par an : en mars et septembre
Java 10 en mars 2018 et Java 11 en septembre 2018
58
IBM open source
sa JVM J9 -> Eclipse OpenJ9
Websphere Liberty AS : OpenLiberty
Convergence Oracle JDK -> OpenJDK
Oracle annonce le transfert de Java EE -> la fondation Eclipse
LTS : le nouveau modèle de support
Version tous les 3 ans à partir de Java 11
#ParisJUG
2017 : Devoxx FR
6e édition de Devoxx France, du 5 au 7 avril
59
Paninoxx
#ParisJUG
2018
Meltdown et Spectre
Cambridge Analytica
60
Arrêt de
...
#ParisJUG
2018 : écosystème Java
JUnit 5.1
Tomcat 9
Support Java 8, Servlet 4.0, WebSocket 1.1
61
Spring Boot 2.0
Eclipse 4.8 (Photon)
->
#ParisJUG
2018 : Java 10
20 mars 2018 : première release du nouveau modèle
1) Durée de release réduite -> nombre de fonctionnalités réduites
12 JEPs
1 utile pour les développeurs
+ évolutions dans les API existantes
62
2) Java 9 quasiment pas utilisé
Mais déjà obsolète avec la sortie de Java 10
2 conséquences :
#ParisJUG
Java 10
63
Depuis Java 7, l’inférence de type est de plus en plus utilisée
Avec Java 10 : pour faciliter la déclaration de variables locales
var i = 2; // int
var j = 2L; // long
var var = "Bonjour"; // String
var references = new HashMap<Integer,String>(); // HashMap<Integer,String>
var chemin = Paths.get("fichier.txt"); // Path
var contenu = Files.readAllBytes(chemin); // byte[]
var objet = new Serializable() {} ; // MaClasse$1
var est utilisable dans les boucles et try with resources
for (var i = 0; i < 10; i++) { ... }
for (var arg : args) { ... }
try (var file = new FileInputStream(new File("monfichier.txt"))) { ... }
Avec l’instruction var
Qui n’est pas un mot clé
#ParisJUG
Java 10
64
Plusieurs situations sont illicites
var valeur; // cannot use 'var' on variable without initializer
var obj = null; // variable initializer is 'null'
var a=1, b=2; // 'var' is not allowed in a compound declaration
// var a=1; var b=2;
var chaines = {"e1","e2"}; // array initializer needs an explicit target-type
// var chaines = new String[] {"e1","e2"};
var additionner = (a,b) -> a+b; // lambda expression needs an explicit target-type
// var additionner = (IntBinaryOperator) (a,b) -> a+b
var comparerStr = String::compareTo; // method reference needs an explicit target-type
// var comparerStr = (Comparator<String>) String::compareTo
var valeur = 10;
valeur = "bonjour"; // incompatible types: String cannot be converted to int
// Java n’est pas Javascript et reste statiquement typé
Incompatibilité
jshell> class var {}
| Error:
| 'var' not allowed here
| as of release 10, 'var' is a restricted local variable type and cannot be used for type
declarations
#ParisJUG
Java 10
65
Meilleur support des conteneurs Docker
JDK-8189497 et JDK-8186315, JDK-8179498, JDK-8186248, JDK-8146115
Option UseContainerSupport (Linux uniquement)
activée par défaut, -XX:-UseContainerSupport pour désactiver
Extraction d’informations du conteneur (cgroup)
nombre de CPU alloué au conteneur
mémoire allouée au conteneur
Détection de l’exécution dans un conteneur
#ParisJUG
Java 10
66
Java 8u131 et Java 9
-XX:+UnlockExperimentalVMOptions (Linux uniquement)
-XX:+UseCGroupMemoryLimitForHeap (Linux uniquement)
-XX:InitialRAMFraction, -XX:MaxRAMFraction, -XX:MinRAMFraction (1, ½, 1/3, ¼, …)
Java 10 :
Ajout de :
-XX:InitialRAMPercentage=n
-XX:MaxRAMPercentage=n
-XX:MinRAMPercentage=n
-XX:ActiveProcessorCount=n
-Xlog:os+container
Deprecated
-XX:+UseCGroupMemoryLimitForHeap
-XX:MaxRAMFraction
-XX:InitialRAMFraction
-XX:MaxRAMFraction
Options pour le contrôle de la mémoire
#ParisJUG
2018 : Java 11
Le 25 septembre 2018, version LTS
67
JEP 318 : Epsilon GC
JEP 320 : Remove the Java EE and CORBA Modules
JEP 321 : HTTP Client
Module incubator depuis Java 9, support HTTP/2
JEP 323 : Local-Variable Syntax for Lambda Parameters
utilisation de var
(@Nonnull var x, @Nullable var y) -> x.calculer(y);
#ParisJUG
2018
7e édition de Devoxx France, du 18 au 20 avril
Le thème : Evolution / Révolution
68
Un code de conduite à passer sur Kahoot
Les 229 vidéos sont déjà en ligne sur YouTube
#ParisJUG
Le futur de Java
De nombreux projets en cours :
Amber : améliorer la productivité du langage Java (pattern matching, …)
Loom : faciliter l’écriture d’applications concurrentes
Panama : améliorer l’invocation de code natif dans la JVM
Metropolis : écrire des portions de la JVM en Java
Valhalla : fonctionnalités avancés (value type, …)
Pour fournir une partie de la feuille de route
des fréquentes releases
69
Pour la communauté :
S’adapter aux changements
Délicate et longue migration vers Java 9+
en tout cas plus longue et délicate que pour les précédentes versions
#ParisJUG
Jakarta EE
Après une consultation publique
Nouveau nom
Un logo
Le but est de faire évoluer la plateforme
de manière plus agile, fléxible et ouverte
focus sur cloud-native et microservices
Nouvelle gouvernance par la fondation Eclipse
Abandon du JCP
70
https://jakarta.ee/
Le working group intègre déjà plusieurs membres stratégiques
#ParisJUG
Le futur du Paris JUG ?
Malheureusement je n’ai pas de boule de cristal
Avec un plaisir aussi immense qu’aujourd’hui
Impossible de prédire son avenir
71
Ce que je lui souhaite
continuer à nous offrir des soirées mensuelles
sur des sujets intéressants
avec des speakers passionnés
comme durant ces 10 dernières années
pour les 10 prochaines années
Et pourquoi pas de venir parler à son 20e anniversaire
#ParisJUG
Devoxx FR 2019
8e édition, du 17 au 19 avril 2019
Quel sera le costume de Charles aux keynotes ?
72
Devoxx va t-il s’étendre sur les deux étages du Palais des Congrès ?
Et pourquoi pas un ou deux sujets de Venkat ?
@venkat_s : and why not one or two talks from you?
Et / Ou durer 5 jours ?
#ParisJUG
Bonne continuation
A tous avec Java 10, 11, 12,
… Java 30 (en 2028)
73
Et avec les prochaines sessions du Paris JUG
#ParisJUG
Un immense merci
Au Paris JUG
pour ses contributions à l’écosystème Java francophone
74
Et surtout aux bénévoles qui ont animé / animent le Paris JUG :
Antonio Goncalves
David Dewalle
Zouheir Cadi
Charles Sabourdin
Claude Falguière
Nicolas Martignole
Tanguy Bayard
José Paumard
…
Guillaume Duquesnay
Guillaume Dufour
François Ostyn
Khanh Tuong Maudoux
Jean-Christophe Sirot
Thierry Leriche
Sun Seng David Tan
Anthony Guillé
#ParisJUG
Profitons de ce cadre somptueux
Pour fêter ensemble un joyeux 10e anniversaire au Paris JUG
75
#ParisJUG
Merci
76
#ParisJUG
Le (vrai) cahier des charges
Parler du Paris JUG
J’ai carte blanche
77
(un peu) technique
Parler de Java
Rétrospective sur la décennie écoulée
#ParisJUG
Recette
Ais-je rempli ce cahier des charges ?
Si vous pensez que OUI
78
Venez aux prochaines sessions du Paris JUG
Si vous pensez que NON
Venez aux prochaines sessions du Paris JUG
#ParisJUG
Merci pour votre attention
A bientôt au Paris JUG
79

Contenu connexe

Tendances

Java version 11 - les 9 nouveautes
Java version 11 -  les 9 nouveautesJava version 11 -  les 9 nouveautes
Java version 11 - les 9 nouveautesAbdenour Bouateli
 
"Input/Ouput, 16 ans après" à Devoxx France 2012
"Input/Ouput, 16 ans après" à Devoxx France 2012"Input/Ouput, 16 ans après" à Devoxx France 2012
"Input/Ouput, 16 ans après" à Devoxx France 2012Jean-Michel Doudoux
 
Formation Gratuite Total Tests par les experts Java Ippon
Formation Gratuite Total Tests par les experts Java Ippon Formation Gratuite Total Tests par les experts Java Ippon
Formation Gratuite Total Tests par les experts Java Ippon Ippon
 
Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014Ippon
 
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et MobileNouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et MobileIppon
 
Presentation Rex Methodes Agiles
Presentation Rex Methodes AgilesPresentation Rex Methodes Agiles
Presentation Rex Methodes AgilesIppon
 
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014Ippon
 
20080311 - Paris Vi Master STL TA - Initiation Maven
20080311 - Paris Vi Master STL TA - Initiation Maven20080311 - Paris Vi Master STL TA - Initiation Maven
20080311 - Paris Vi Master STL TA - Initiation MavenArnaud Héritier
 
Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014Ippon
 
Web API & Cache, the HTTP way - Ippevent 10 Juin 2014
Web API & Cache, the HTTP way - Ippevent 10 Juin 2014Web API & Cache, the HTTP way - Ippevent 10 Juin 2014
Web API & Cache, the HTTP way - Ippevent 10 Juin 2014Ippon
 
Présentation du retour d'expérience sur Git
Présentation du retour d'expérience sur GitPrésentation du retour d'expérience sur Git
Présentation du retour d'expérience sur GitIppon
 
20081008 - Tours Jug - Apache Maven
20081008  - Tours Jug - Apache Maven20081008  - Tours Jug - Apache Maven
20081008 - Tours Jug - Apache MavenArnaud Héritier
 
Wilfreid K. AGBO et Grégoire J. MONEYENGONO - Java thread
Wilfreid K. AGBO et Grégoire J. MONEYENGONO - Java threadWilfreid K. AGBO et Grégoire J. MONEYENGONO - Java thread
Wilfreid K. AGBO et Grégoire J. MONEYENGONO - Java threadWilfreid AGBO
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache MavenArnaud Héritier
 

Tendances (20)

Java 11 to 17 : What's new !?
Java 11 to 17 : What's new !?Java 11 to 17 : What's new !?
Java 11 to 17 : What's new !?
 
Java version 11 - les 9 nouveautes
Java version 11 -  les 9 nouveautesJava version 11 -  les 9 nouveautes
Java version 11 - les 9 nouveautes
 
"Input/Ouput, 16 ans après" à Devoxx France 2012
"Input/Ouput, 16 ans après" à Devoxx France 2012"Input/Ouput, 16 ans après" à Devoxx France 2012
"Input/Ouput, 16 ans après" à Devoxx France 2012
 
Formation Gratuite Total Tests par les experts Java Ippon
Formation Gratuite Total Tests par les experts Java Ippon Formation Gratuite Total Tests par les experts Java Ippon
Formation Gratuite Total Tests par les experts Java Ippon
 
Nouveautés de java 8
Nouveautés de java 8Nouveautés de java 8
Nouveautés de java 8
 
Base11
Base11Base11
Base11
 
Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014
 
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et MobileNouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
 
Presentation Rex Methodes Agiles
Presentation Rex Methodes AgilesPresentation Rex Methodes Agiles
Presentation Rex Methodes Agiles
 
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
 
20080311 - Paris Vi Master STL TA - Initiation Maven
20080311 - Paris Vi Master STL TA - Initiation Maven20080311 - Paris Vi Master STL TA - Initiation Maven
20080311 - Paris Vi Master STL TA - Initiation Maven
 
Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014
 
Web API & Cache, the HTTP way - Ippevent 10 Juin 2014
Web API & Cache, the HTTP way - Ippevent 10 Juin 2014Web API & Cache, the HTTP way - Ippevent 10 Juin 2014
Web API & Cache, the HTTP way - Ippevent 10 Juin 2014
 
Présentation1
Présentation1Présentation1
Présentation1
 
Javaoop
JavaoopJavaoop
Javaoop
 
Outils de gestion de projets
Outils de gestion de projetsOutils de gestion de projets
Outils de gestion de projets
 
Présentation du retour d'expérience sur Git
Présentation du retour d'expérience sur GitPrésentation du retour d'expérience sur Git
Présentation du retour d'expérience sur Git
 
20081008 - Tours Jug - Apache Maven
20081008  - Tours Jug - Apache Maven20081008  - Tours Jug - Apache Maven
20081008 - Tours Jug - Apache Maven
 
Wilfreid K. AGBO et Grégoire J. MONEYENGONO - Java thread
Wilfreid K. AGBO et Grégoire J. MONEYENGONO - Java threadWilfreid K. AGBO et Grégoire J. MONEYENGONO - Java thread
Wilfreid K. AGBO et Grégoire J. MONEYENGONO - Java thread
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven
 

Similaire à Anniversaire Paris JUG - Deja 10 ans - retour vers le futur avec JMX

Réactif, parallèle, asynchrone. Pourquoi!
Réactif, parallèle, asynchrone. Pourquoi!Réactif, parallèle, asynchrone. Pourquoi!
Réactif, parallèle, asynchrone. Pourquoi!Henri Tremblay
 
Développer des codes de simulation numérique avec une équipe "non geek" à l'ULg
Développer des codes de simulation numérique avec une équipe "non geek" à l'ULgDévelopper des codes de simulation numérique avec une équipe "non geek" à l'ULg
Développer des codes de simulation numérique avec une équipe "non geek" à l'ULgRomain Boman
 
IPv6 au Clusir-Est
IPv6 au Clusir-EstIPv6 au Clusir-Est
IPv6 au Clusir-EstJohan Moreau
 
Intégration continue
Intégration continueIntégration continue
Intégration continueJohan Moreau
 
Connected Developper Ep5 (18-05-2013)
Connected Developper Ep5 (18-05-2013)Connected Developper Ep5 (18-05-2013)
Connected Developper Ep5 (18-05-2013)Badr Hakkari
 
Découvrir l'IoT avec Windows 10 et le Raspberry Pi 3 / Orléans
Découvrir l'IoT avec Windows 10 et le Raspberry Pi 3 / OrléansDécouvrir l'IoT avec Windows 10 et le Raspberry Pi 3 / Orléans
Découvrir l'IoT avec Windows 10 et le Raspberry Pi 3 / OrléansFlorian Rousselet
 
Connected Developper Ep4 (11-05-2013)
Connected Developper Ep4 (11-05-2013)Connected Developper Ep4 (11-05-2013)
Connected Developper Ep4 (11-05-2013)Badr Hakkari
 
Mise en place vidéoconférence + chat avec Openfire
Mise en place vidéoconférence + chat avec OpenfireMise en place vidéoconférence + chat avec Openfire
Mise en place vidéoconférence + chat avec OpenfireAbdou Lahad SYLLA
 
AlterWay SolutionsLinux Outils Industrialisation PHP
AlterWay SolutionsLinux Outils Industrialisation PHPAlterWay SolutionsLinux Outils Industrialisation PHP
AlterWay SolutionsLinux Outils Industrialisation PHPjulien pauli
 
I know what you MEAN
I know what you MEANI know what you MEAN
I know what you MEANJulien Noyer
 
Revue de presse Telecom Valley - Juin 2017
Revue de presse Telecom Valley - Juin 2017Revue de presse Telecom Valley - Juin 2017
Revue de presse Telecom Valley - Juin 2017TelecomValley
 
De la chaîne de production au SI géré par des logiciels
De la chaîne de production au SI géré par des logicielsDe la chaîne de production au SI géré par des logiciels
De la chaîne de production au SI géré par des logicielsJohan Moreau
 
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et mobilité
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et mobilitéNouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et mobilité
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et mobilitéJulien Dubois
 
Gestion de projets en bioinformatique
Gestion de projets en bioinformatiqueGestion de projets en bioinformatique
Gestion de projets en bioinformatiquepierrepo
 
Wygday 2011 - Introduction à HTML5
Wygday 2011 - Introduction à HTML5Wygday 2011 - Introduction à HTML5
Wygday 2011 - Introduction à HTML5wyggio
 
Revue de presse juin 2018
Revue de presse juin 2018Revue de presse juin 2018
Revue de presse juin 2018TelecomValley
 
Systematic/NEOPPOD dévoilent la première base de données objets NoSQL Open So...
Systematic/NEOPPOD dévoilent la première base de données objets NoSQL Open So...Systematic/NEOPPOD dévoilent la première base de données objets NoSQL Open So...
Systematic/NEOPPOD dévoilent la première base de données objets NoSQL Open So...Paris, France
 
Les technologies Open Source pour les objets connectés
Les technologies Open Source pour les objets connectésLes technologies Open Source pour les objets connectés
Les technologies Open Source pour les objets connectésAlexandre LAHAYE
 

Similaire à Anniversaire Paris JUG - Deja 10 ans - retour vers le futur avec JMX (20)

Réactif, parallèle, asynchrone. Pourquoi!
Réactif, parallèle, asynchrone. Pourquoi!Réactif, parallèle, asynchrone. Pourquoi!
Réactif, parallèle, asynchrone. Pourquoi!
 
Javavs net
Javavs netJavavs net
Javavs net
 
Développer des codes de simulation numérique avec une équipe "non geek" à l'ULg
Développer des codes de simulation numérique avec une équipe "non geek" à l'ULgDévelopper des codes de simulation numérique avec une équipe "non geek" à l'ULg
Développer des codes de simulation numérique avec une équipe "non geek" à l'ULg
 
IPv6 au Clusir-Est
IPv6 au Clusir-EstIPv6 au Clusir-Est
IPv6 au Clusir-Est
 
Intégration continue
Intégration continueIntégration continue
Intégration continue
 
Connected Developper Ep5 (18-05-2013)
Connected Developper Ep5 (18-05-2013)Connected Developper Ep5 (18-05-2013)
Connected Developper Ep5 (18-05-2013)
 
Découvrir l'IoT avec Windows 10 et le Raspberry Pi 3 / Orléans
Découvrir l'IoT avec Windows 10 et le Raspberry Pi 3 / OrléansDécouvrir l'IoT avec Windows 10 et le Raspberry Pi 3 / Orléans
Découvrir l'IoT avec Windows 10 et le Raspberry Pi 3 / Orléans
 
Connected Developper Ep4 (11-05-2013)
Connected Developper Ep4 (11-05-2013)Connected Developper Ep4 (11-05-2013)
Connected Developper Ep4 (11-05-2013)
 
Mise en place vidéoconférence + chat avec Openfire
Mise en place vidéoconférence + chat avec OpenfireMise en place vidéoconférence + chat avec Openfire
Mise en place vidéoconférence + chat avec Openfire
 
AlterWay SolutionsLinux Outils Industrialisation PHP
AlterWay SolutionsLinux Outils Industrialisation PHPAlterWay SolutionsLinux Outils Industrialisation PHP
AlterWay SolutionsLinux Outils Industrialisation PHP
 
I know what you MEAN
I know what you MEANI know what you MEAN
I know what you MEAN
 
Revue de presse Telecom Valley - Juin 2017
Revue de presse Telecom Valley - Juin 2017Revue de presse Telecom Valley - Juin 2017
Revue de presse Telecom Valley - Juin 2017
 
De la chaîne de production au SI géré par des logiciels
De la chaîne de production au SI géré par des logicielsDe la chaîne de production au SI géré par des logiciels
De la chaîne de production au SI géré par des logiciels
 
Livre blanc-ipv6
Livre blanc-ipv6Livre blanc-ipv6
Livre blanc-ipv6
 
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et mobilité
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et mobilitéNouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et mobilité
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et mobilité
 
Gestion de projets en bioinformatique
Gestion de projets en bioinformatiqueGestion de projets en bioinformatique
Gestion de projets en bioinformatique
 
Wygday 2011 - Introduction à HTML5
Wygday 2011 - Introduction à HTML5Wygday 2011 - Introduction à HTML5
Wygday 2011 - Introduction à HTML5
 
Revue de presse juin 2018
Revue de presse juin 2018Revue de presse juin 2018
Revue de presse juin 2018
 
Systematic/NEOPPOD dévoilent la première base de données objets NoSQL Open So...
Systematic/NEOPPOD dévoilent la première base de données objets NoSQL Open So...Systematic/NEOPPOD dévoilent la première base de données objets NoSQL Open So...
Systematic/NEOPPOD dévoilent la première base de données objets NoSQL Open So...
 
Les technologies Open Source pour les objets connectés
Les technologies Open Source pour les objets connectésLes technologies Open Source pour les objets connectés
Les technologies Open Source pour les objets connectés
 

Plus de Jean-Michel Doudoux

Les nouveautés de Java 21 - Rencontres dev Toulon octobre 2023.pdf
Les nouveautés de Java 21 - Rencontres dev Toulon octobre 2023.pdfLes nouveautés de Java 21 - Rencontres dev Toulon octobre 2023.pdf
Les nouveautés de Java 21 - Rencontres dev Toulon octobre 2023.pdfJean-Michel Doudoux
 
Les nouveautés de Java 21 - Devoxx MA 2023.pdf
Les nouveautés de Java 21 - Devoxx MA 2023.pdfLes nouveautés de Java 21 - Devoxx MA 2023.pdf
Les nouveautés de Java 21 - Devoxx MA 2023.pdfJean-Michel Doudoux
 
Les nouveautés de Java 19, 20 et 21 - RivieraDev 2023
Les nouveautés de Java 19, 20 et 21 - RivieraDev 2023Les nouveautés de Java 19, 20 et 21 - RivieraDev 2023
Les nouveautés de Java 19, 20 et 21 - RivieraDev 2023Jean-Michel Doudoux
 
En route vers Java 21 - Javaday Paris 2023
En route vers Java 21 - Javaday Paris 2023En route vers Java 21 - Javaday Paris 2023
En route vers Java 21 - Javaday Paris 2023Jean-Michel Doudoux
 
Devoxx France 2023 - Les nouveautés de Java 19 et 20
Devoxx France 2023 - Les nouveautés de Java 19 et 20Devoxx France 2023 - Les nouveautés de Java 19 et 20
Devoxx France 2023 - Les nouveautés de Java 19 et 20Jean-Michel Doudoux
 
Javaday Paris 2022 - Java en 2022 : profiter de Java 17
Javaday Paris 2022 - Java en 2022 : profiter de Java 17Javaday Paris 2022 - Java en 2022 : profiter de Java 17
Javaday Paris 2022 - Java en 2022 : profiter de Java 17Jean-Michel Doudoux
 
Voxxeddays Lux 2022 - Profiling et monitoring avec le JDK
Voxxeddays Lux 2022 - Profiling et monitoring avec le JDKVoxxeddays Lux 2022 - Profiling et monitoring avec le JDK
Voxxeddays Lux 2022 - Profiling et monitoring avec le JDKJean-Michel Doudoux
 
devoxx 2022 - 10 ans de Devoxx FR et de Java.pdf
devoxx 2022 - 10 ans de Devoxx FR et de Java.pdfdevoxx 2022 - 10 ans de Devoxx FR et de Java.pdf
devoxx 2022 - 10 ans de Devoxx FR et de Java.pdfJean-Michel Doudoux
 
Retours sur java 8 devoxx fr 2016
Retours sur java 8 devoxx fr 2016Retours sur java 8 devoxx fr 2016
Retours sur java 8 devoxx fr 2016Jean-Michel Doudoux
 

Plus de Jean-Michel Doudoux (9)

Les nouveautés de Java 21 - Rencontres dev Toulon octobre 2023.pdf
Les nouveautés de Java 21 - Rencontres dev Toulon octobre 2023.pdfLes nouveautés de Java 21 - Rencontres dev Toulon octobre 2023.pdf
Les nouveautés de Java 21 - Rencontres dev Toulon octobre 2023.pdf
 
Les nouveautés de Java 21 - Devoxx MA 2023.pdf
Les nouveautés de Java 21 - Devoxx MA 2023.pdfLes nouveautés de Java 21 - Devoxx MA 2023.pdf
Les nouveautés de Java 21 - Devoxx MA 2023.pdf
 
Les nouveautés de Java 19, 20 et 21 - RivieraDev 2023
Les nouveautés de Java 19, 20 et 21 - RivieraDev 2023Les nouveautés de Java 19, 20 et 21 - RivieraDev 2023
Les nouveautés de Java 19, 20 et 21 - RivieraDev 2023
 
En route vers Java 21 - Javaday Paris 2023
En route vers Java 21 - Javaday Paris 2023En route vers Java 21 - Javaday Paris 2023
En route vers Java 21 - Javaday Paris 2023
 
Devoxx France 2023 - Les nouveautés de Java 19 et 20
Devoxx France 2023 - Les nouveautés de Java 19 et 20Devoxx France 2023 - Les nouveautés de Java 19 et 20
Devoxx France 2023 - Les nouveautés de Java 19 et 20
 
Javaday Paris 2022 - Java en 2022 : profiter de Java 17
Javaday Paris 2022 - Java en 2022 : profiter de Java 17Javaday Paris 2022 - Java en 2022 : profiter de Java 17
Javaday Paris 2022 - Java en 2022 : profiter de Java 17
 
Voxxeddays Lux 2022 - Profiling et monitoring avec le JDK
Voxxeddays Lux 2022 - Profiling et monitoring avec le JDKVoxxeddays Lux 2022 - Profiling et monitoring avec le JDK
Voxxeddays Lux 2022 - Profiling et monitoring avec le JDK
 
devoxx 2022 - 10 ans de Devoxx FR et de Java.pdf
devoxx 2022 - 10 ans de Devoxx FR et de Java.pdfdevoxx 2022 - 10 ans de Devoxx FR et de Java.pdf
devoxx 2022 - 10 ans de Devoxx FR et de Java.pdf
 
Retours sur java 8 devoxx fr 2016
Retours sur java 8 devoxx fr 2016Retours sur java 8 devoxx fr 2016
Retours sur java 8 devoxx fr 2016
 

Anniversaire Paris JUG - Deja 10 ans - retour vers le futur avec JMX

  • 1. #ParisJUG 1 Déjà 10 ans : retour vers le futur avec JMX
  • 2. #ParisJUG 2 Déjà 10 ans : retour vers le futur avec JMDoudouX
  • 3. #ParisJUG Je vais vous raconter une histoire 3
  • 4. #ParisJUG Le début de l’histoire Pour être un des speakers à leur dixième anniversaire 4 Il y a quelques mois, l’équipe du Paris JUG me contacte Au côté de Rémi Forax et Dr Venkat Subramaniam
  • 5. #ParisJUG Le lieu Charles me fait comprendre que cela aura lieu 5 Dans LE monument emblématique de Paris Et bien SI, la preuve on est là Pour le provincial que je suis
  • 6. #ParisJUG Le sujet Importance du choix du sujet 6 Lieu emblématique, public averti, avec deux speakers de renommée mondiale Charles me dit : tu as carte blanche
  • 7. #ParisJUG C’est un projet IT Définition du cahier des charges 7 Sauf que contrairement aux autres, Impossible de déraper Ni en délai de livraison Ni en temps d’exécution Et j’ai carte blanche
  • 8. #ParisJUG Le cahier des charges Sujet à la hauteur de l’événement 8 Doit parler de Java et/ou la JVM A la Tour Eiffel Et quelques recherches … Après une longue réflexion
  • 9. #ParisJUG Eiffel dans la JVM La JVM est polyglothe 9 On est à la Tour Eiffel Sujet hype, jamais abordé pendant les 10 ans au Paris JUg
  • 10. #ParisJUG Eiffel A influencé plusieurs langages dont Java 10 Design by contract assertions, precondition, postcondition, class invariants Langage orienté objet, repose sur des classes héritage multiple, génériques, … Créé par Bertrand Meyer en 1985 Typé statiquement Gestion de la mémoire avec un ramasse-miettes
  • 11. #ParisJUG Eiffel 11 Plusieurs implémentations Eiffel Studio Visual Eiffel … Exemple : Liberty Eiffel qui repose sur SmartEiffel
  • 12. #ParisJUG SmartEiffel 12 Propose un compilateur qui transforme de l’Eiffel en C ou en Java Implémentation GNU Créé par Dominique Colnet Projet du LORIA impliquant INRIA: Institut National de Recherche en Informatique et Automatique CNRS: Centre National de la Recherche Scientifique Université Henri Poincaré, Nancy 1 Université Nancy 2 INPL: Institut National Polytechnique de Lorraine
  • 13. #ParisJUG 13 Jean-Michel Doudoux http://www.jmdoudoux.fr @jmdoudoux Co-fondateur du , membre du Auteur de 2 didacticiels Diffusés sous licence GNU FDL • Développons en Java (3400 pages) • Développons en Java avec Eclipse CTO et
  • 15. #ParisJUG 2008 10 ans est une éternité en informatique 15 AOL abandonne le navigateur Netscape 1ere version public de Google Chrome Microsoft propose Windows Server 2008 et HyperV Apple lance l’iPhone 3G Nokia acquière Symbian
  • 16. #ParisJUG 2008 : écosystème Java La version courante Java SE 6 (nom de code Mustang) Java EE 5 Livres de références : 16 Eclipse 3.4 (Ganymede) NetBeans 6.5 Nov 2002Mai 2008 Mai 2007 IntelliJ IDEA 7
  • 17. #ParisJUG 2008 : Paris JUG 1er événement le 12 février 2008 dans les locaux de Port Parallèle 17 65 participants
  • 19. #ParisJUG 2009 Apple abandonne le PowerPC avec MacOS X v10.6 19 USB 3.0 Sort de la version béta Microsoft lance Bing et Virtual PC et créé sous le pseudo Satoshi Nakamoto Google présente Go, AngularJS, goo.gl Android version 1.5 (Cupcake) et version 1.6 (Donut)
  • 20. #ParisJUG 2009 : écosystème Java Spring 3.0 Hibernate 3.4 20 Mockito 1.8 Eclipse 3.5 (Galileo) JetBrains open source le cœur d’IntelliJ IDEA Community edition
  • 21. #ParisJUG 2009 : Java EE 6 Thèmes : flexibilité, extensibilité et facilité d’utilisation Web Profile Sous ensemble de Java EE Packaging dans un war (EJB Lite) 21 Nouvelles API : CDI JAX-RS Bean Validation Interceptors API mises à jour : EJB 3.1, Servlet 3.0, JPA 2.0, JSF 2.0, API pruned : JAX-RPC, EJB 2.x Entity Beans, JAXR, JSR 88
  • 22. #ParisJUG 2009 10 février : premier anniversaire du Paris JUG Présentation des autres JUGs Dans les locaux de la Fiap 22 250 participants
  • 23. #ParisJUG Emulsion des JUGs Alpes JUG Bordeaux JUG Breizh JUG Ch’ti JUG ElsassJUG FinistJUG Lava JUG Lorraine JUG Lyon JUG Mars JUG Montpellier JUG Nantes JUG Normandy JUG Paris JUG Poitou-Charentes JUG Riviera JUG Tours JUG Toulouse JUG Duchess France Virtual JUG 23
  • 24. #ParisJUG 2010 Format de compression audio et vidéo WebM 24 Hewlett Packard achète Palm Android version 2.1, 2.2 (Froyo), 2.3 (Gingerbread) Le vers Stuxnet Apple iPad et iPhone 4
  • 25. #ParisJUG 2010 : écosystème Java 25 Hibernate 3.5, 3.6 Eclipse 3.6 (Helios) NetBeans 6.9 achèteJanvier 2010
  • 26. #ParisJUG 2010 : 2nd anniversaire 9 février 2010 Dans les locaux de la Sorbonne 26 500 participants Thème l’open source en France
  • 27. #ParisJUG 2011 Oracle donne OpenOffice à la fondation Apache Google propose Dart et achète Motorola Mobility 27 Intel architecture Sandy Bridge Android version 3.0 (Honeycomb), 3.1 Microsoft Internet Explorer 9, Office 365 Apple iPhone 4s Décès de Steve Jobs et Dennis Ritchie
  • 28. #ParisJUG 2011 : Java SE 7 En juillet, nom de code Mustang Fork/Join Projet Coin : switch avec String try with resources (ARM) opérateur diamant <> underscores dans les littéraux numériques catch avec plusieurs exceptions 28 NIO 2 Invoke Dynamic
  • 29. #ParisJUG 2011 : écosystème Java Spring 3.1 NetBeans 7.0 Hibernate 4.0 29 Mockito 1.9 Tomcat 7.0 Eclipse 3.7 (Indigo) et 4.0 (Juno) IntelliJ IDEA 11
  • 30. #ParisJUG 2012 Facebook passe la barre du milliard d’utilisateurs Apple iPhone 5 30 Google Play et Google Drive Android version 4.1 (Jelly Bean) et 4.2 RasperBerry Pi Microsoft Windows 8 Microsoft Surface TypeScript
  • 31. #ParisJUG 2012 : écosystème Java Log4j 1.2.17 Pas de 4e anniversaire pour le Paris JUG Hibernate 4.1 31 Eclipse 4.2 JetBrain open source Kotlin IntelliJ IDEA 12
  • 32. #ParisJUG 2012 : Devoxx France A l'hôtel Marriott rive gauche 75 % des conférences en langue française 32 1248 participants
  • 33. #ParisJUG 2013 Sony Playstation 4 Intel architecture Haswell 33 Microsoft remplace Messenger par Skype, XBox One Affaire Edward Snowden Google achète Waze, Android version 4.4 (KitKat), Wallet Apple iPhone 5s Facebook React
  • 34. #ParisJUG 2013 : écosystème Java Spring 4.0 Hibernate 4.2 et 4.3 34 Eclipse 4.3 (Kepler) NetBeans 7.4 IntelliJ IDEA 13
  • 35. #ParisJUG 2013 : Java EE 7 Thèmes : productivité et HTML 5 35 JPA 2.1 génération de schéma, proc stock, CriteriaUpdate et CriteriaDelete EJB 3.2 JAX-RS 2.0 API cliente, asynchronisme, HATEOAS, filtres et intercepteurs JMS 2.0 simplification de l’API, annotations 4 nouvelles API : JSON-P 1.0 Batch 1.0 WebSocket 1.0 Concurrency 1.0
  • 36. #ParisJUG 2013 2nde édition de Devoxx FR, 27 au 29 mars 2013 1478 badges, 180 speakers 36 une équipe de 18 bénévoles
  • 37. #ParisJUG 2014 Microsoft : Satya Nadella devient le CEO, achat de Nokia et Mojang Apple version Yosemite de MacOS X, Swift, iPhone 6 et 6 plus 37 Android version 5.0 (Lollipop), Android Studio RAM DDR4
  • 38. #ParisJUG 2014 : Java SE 8 Diffusé en mars, nom de code Spider La plus importante version ? A rendu Java great again ? 38 Méthode par défaut et static dans les interfaces Introduit l’héritage multiple de comportement dans les interfaces public interface MonInterface { public static void main(String[] args) { System.out.println("Hello"); } } public interface affichable { default void afficher(String valeur) { System.out.println("Valeur = "+valeur); } } L’API Date & Time
  • 39. #ParisJUG 2014 : Java SE 8 La classe Optional 39 L’interface CompletableFuture Remplacement PermGen par MetaSpace Approche fonctionnelle avec les API Streams et Collector OptionalDouble ageMoyen = personnes .stream() .filter(p -> p.getNom().startsWith("A")) .mapToInt(Personne::getAge) .average(); System.out.println("age moyen = " + ageMoyen.orElse(0.0)); monBouton.setOnAction(event -> System.out.println(event)); monBouton.setOnAction(System.out::println); Expression lambda et référence de méthodes
  • 40. #ParisJUG 2014 : écosystème Java Tomcat 8.0 Le Paris JUG quitte l’ISEP pour l’ESIA Log4j 2.0 40 Mockito 1.10 JUnit 4.12 JHipster 1.0 NetBeans 8.0 Eclipse 4.4 (Luna) Spring Boot 1.0, 1.1 et 1.2 IntelliJ IDEA 14
  • 41. #ParisJUG 2014 : Devoxx FR 3e édition de Devoxx France, 16 au 18 avril 2014 678 propositions au CFP, 202 speakers, 1497 participants 41 Université de Rémi Forax sur les Lambda
  • 42. #ParisJUG 2014 : Young blood 14 janvier 2014 Permettre à de speakers débutants de faire leur premières armes 42 Un CFP 5 sujets choisis et 1 tiré au sort Le vainqueur fait sa présentation lors d’un quickie à Devoxx FR Des sujets variés Sessions de préparation
  • 43. #ParisJUG 2015 PHP 7.0 43 Facebook React Native Apple Watch, iPad Pro Android version 6.0 (Marshmallow), arrêt de Google Code Microsoft
  • 44. #ParisJUG 2015 : écosystème Java Vingt ans de Java 44 Java redevient le langage de l’année au TIOBE Eclipse 4.5 (Mars) Spring 4.2, Spring Boot 1.3 Hibernate 5.0 JHipster 2.0 NetBeans 8.1 IntelliJ IDEA 15
  • 45. #ParisJUG 2015 : nouveau président Et évidemment une indéfectible passion pour la communauté 45 3 caractéristiques pour être président du Paris JUG
  • 46. #ParisJUG 2015 : quizz de Charles Il est temps d’y répondre (QCU) : A - MrQuizz est un bon Leader 46 B - Le ParisJUG a su rester fun C - Il y aura des modules dans la JVM D - All of the above
  • 47. #ParisJUG 2015 Devoxx FR 4e édition de Devoxx FR, 8 au 10 avril 2015 Changement de cadre et d’envergure De l'Hôtel Marriott au Palais des congrès 47 2500 participants, 220 présentations Des possibilités infinies avec le 8 de Java 8
  • 49. #ParisJUG 2016 : écosystème Java Spring 4.3, Spring Boot 1.4 Eclipse 4.6 (Neon) Hibernate 5.1 et 5.2 49 Tomcat 8.5 Kotlin 1.0 JHispter 3.0 NetBeans 8.2
  • 50. #ParisJUG 2016 5e édition de Devoxx France, du 20 au 22 avril 50
  • 51. #ParisJUG 2017 Microsoft Windows 10 Creators Update abandon de Windows Phone Apple iPhone X avec Face ID 51 Twitter passe de 140 à 280 caractères Mozilla Firefox Quantum
  • 52. #ParisJUG 2017 : Java SE 9 Diffusé en septembre, pas de nom de code ;-( 52 Sûrement la version la plus controversée Première fois que l’EC du JCP vote Non Introduit des changements majeurs Java Module System, issu des travaux du projet Jigsaw Tout en tentant d’offrir une certaine compatibilité Pour permettre une nécessaire migration incrémentale Implique des difficultés La plupart des API internes sont encapsulées Les modules Java EE ne sont pas résolus par défaut JAX-B, JAX-WS, JavaBeans Activation Framework, JTA, Commons annotations, CORBA …
  • 53. #ParisJUG 2017 : Java SE 9 Les modules sont perçus comme contraignants 53 Exemple de contraintes : plus d’accès par défaut aux classes public d’un module plus d’introspection par défaut sur les classes d’un module plus de split packages plus de dépendances circulaires La nécessité de définir les dépendances dans les module-info ET les outils de build …  moins de liberté utilisée pendant plus de 20 ans parfois avec abus Tous les systèmes de modules sont contraignants
  • 54. #ParisJUG 2017 : Java SE 9 Mais on doit profiter des avantages des modules 54 L’occasion de remettre de l’ordre : dans le design des livrables dans les dépendances dans les API utilisées (notamment celles non supportées du JDK) Une configuration fiable Réduire les problèmes du classpath hell L’encapsulation forte Améliorer la sécurité et la maintenabilité
  • 55. #ParisJUG 2017 : Java SE 9 De nombreuses autres fonctionnalités : + 89 JEPs 55 API Fabriques pour des collections immuables Process API Reactive Streams (Flow API) Var Handles … Evolutions mineures dans le langage _ est un mot clé Méthodes private dans les interfaces Variables effectivement finale dans try with ressources Opérateur diamant dans les classes anonymes internes @SafeVarags sur les méthodes d’instances private Outils JShell Jlink pour créer des runtime compacts Recherche dans la Javadoc en HTML 5 Jdeprscan … JVM G1 est le ramasse-miettes par défaut Réduction de la taille mémoire (Compact Strings) Amélioration de la performance et de la sécurité Multi-Release Jar Unified JVM et GC logging …
  • 56. #ParisJUG 2017 : Java EE 8 CDI 2.0 événements asynchrones 56 JAX-RS 2.1 SSE, API client réactive JSON-P 1.1 JSON Pointer, JSON Patch, JSON Merge Patch Servlet 4.0 HTTP/2 Diffusé en septembre Bean Validation 2.0 2 nouvelles API : JSON-B 1.0 Security 1.0
  • 57. #ParisJUG 2017 : écosystème Java JUnit 5.0 Eclipse 4.7 (Oxygen) 57 Spring 5.0 Java 8 et API de Java EE 7 compatibilité Java 9 et Java EE 8 JHipster 4.0 Spring Boot 1.5 Fermeture du site java.net Dec 2017 IntelliJ IDEA 2017.1
  • 58. #ParisJUG 2017 : changements majeurs Open JDK : nouveau modèle de releases cadencé sur 6 mois 2 releases majeures de Java par an : en mars et septembre Java 10 en mars 2018 et Java 11 en septembre 2018 58 IBM open source sa JVM J9 -> Eclipse OpenJ9 Websphere Liberty AS : OpenLiberty Convergence Oracle JDK -> OpenJDK Oracle annonce le transfert de Java EE -> la fondation Eclipse LTS : le nouveau modèle de support Version tous les 3 ans à partir de Java 11
  • 59. #ParisJUG 2017 : Devoxx FR 6e édition de Devoxx France, du 5 au 7 avril 59 Paninoxx
  • 60. #ParisJUG 2018 Meltdown et Spectre Cambridge Analytica 60 Arrêt de ...
  • 61. #ParisJUG 2018 : écosystème Java JUnit 5.1 Tomcat 9 Support Java 8, Servlet 4.0, WebSocket 1.1 61 Spring Boot 2.0 Eclipse 4.8 (Photon) ->
  • 62. #ParisJUG 2018 : Java 10 20 mars 2018 : première release du nouveau modèle 1) Durée de release réduite -> nombre de fonctionnalités réduites 12 JEPs 1 utile pour les développeurs + évolutions dans les API existantes 62 2) Java 9 quasiment pas utilisé Mais déjà obsolète avec la sortie de Java 10 2 conséquences :
  • 63. #ParisJUG Java 10 63 Depuis Java 7, l’inférence de type est de plus en plus utilisée Avec Java 10 : pour faciliter la déclaration de variables locales var i = 2; // int var j = 2L; // long var var = "Bonjour"; // String var references = new HashMap<Integer,String>(); // HashMap<Integer,String> var chemin = Paths.get("fichier.txt"); // Path var contenu = Files.readAllBytes(chemin); // byte[] var objet = new Serializable() {} ; // MaClasse$1 var est utilisable dans les boucles et try with resources for (var i = 0; i < 10; i++) { ... } for (var arg : args) { ... } try (var file = new FileInputStream(new File("monfichier.txt"))) { ... } Avec l’instruction var Qui n’est pas un mot clé
  • 64. #ParisJUG Java 10 64 Plusieurs situations sont illicites var valeur; // cannot use 'var' on variable without initializer var obj = null; // variable initializer is 'null' var a=1, b=2; // 'var' is not allowed in a compound declaration // var a=1; var b=2; var chaines = {"e1","e2"}; // array initializer needs an explicit target-type // var chaines = new String[] {"e1","e2"}; var additionner = (a,b) -> a+b; // lambda expression needs an explicit target-type // var additionner = (IntBinaryOperator) (a,b) -> a+b var comparerStr = String::compareTo; // method reference needs an explicit target-type // var comparerStr = (Comparator<String>) String::compareTo var valeur = 10; valeur = "bonjour"; // incompatible types: String cannot be converted to int // Java n’est pas Javascript et reste statiquement typé Incompatibilité jshell> class var {} | Error: | 'var' not allowed here | as of release 10, 'var' is a restricted local variable type and cannot be used for type declarations
  • 65. #ParisJUG Java 10 65 Meilleur support des conteneurs Docker JDK-8189497 et JDK-8186315, JDK-8179498, JDK-8186248, JDK-8146115 Option UseContainerSupport (Linux uniquement) activée par défaut, -XX:-UseContainerSupport pour désactiver Extraction d’informations du conteneur (cgroup) nombre de CPU alloué au conteneur mémoire allouée au conteneur Détection de l’exécution dans un conteneur
  • 66. #ParisJUG Java 10 66 Java 8u131 et Java 9 -XX:+UnlockExperimentalVMOptions (Linux uniquement) -XX:+UseCGroupMemoryLimitForHeap (Linux uniquement) -XX:InitialRAMFraction, -XX:MaxRAMFraction, -XX:MinRAMFraction (1, ½, 1/3, ¼, …) Java 10 : Ajout de : -XX:InitialRAMPercentage=n -XX:MaxRAMPercentage=n -XX:MinRAMPercentage=n -XX:ActiveProcessorCount=n -Xlog:os+container Deprecated -XX:+UseCGroupMemoryLimitForHeap -XX:MaxRAMFraction -XX:InitialRAMFraction -XX:MaxRAMFraction Options pour le contrôle de la mémoire
  • 67. #ParisJUG 2018 : Java 11 Le 25 septembre 2018, version LTS 67 JEP 318 : Epsilon GC JEP 320 : Remove the Java EE and CORBA Modules JEP 321 : HTTP Client Module incubator depuis Java 9, support HTTP/2 JEP 323 : Local-Variable Syntax for Lambda Parameters utilisation de var (@Nonnull var x, @Nullable var y) -> x.calculer(y);
  • 68. #ParisJUG 2018 7e édition de Devoxx France, du 18 au 20 avril Le thème : Evolution / Révolution 68 Un code de conduite à passer sur Kahoot Les 229 vidéos sont déjà en ligne sur YouTube
  • 69. #ParisJUG Le futur de Java De nombreux projets en cours : Amber : améliorer la productivité du langage Java (pattern matching, …) Loom : faciliter l’écriture d’applications concurrentes Panama : améliorer l’invocation de code natif dans la JVM Metropolis : écrire des portions de la JVM en Java Valhalla : fonctionnalités avancés (value type, …) Pour fournir une partie de la feuille de route des fréquentes releases 69 Pour la communauté : S’adapter aux changements Délicate et longue migration vers Java 9+ en tout cas plus longue et délicate que pour les précédentes versions
  • 70. #ParisJUG Jakarta EE Après une consultation publique Nouveau nom Un logo Le but est de faire évoluer la plateforme de manière plus agile, fléxible et ouverte focus sur cloud-native et microservices Nouvelle gouvernance par la fondation Eclipse Abandon du JCP 70 https://jakarta.ee/ Le working group intègre déjà plusieurs membres stratégiques
  • 71. #ParisJUG Le futur du Paris JUG ? Malheureusement je n’ai pas de boule de cristal Avec un plaisir aussi immense qu’aujourd’hui Impossible de prédire son avenir 71 Ce que je lui souhaite continuer à nous offrir des soirées mensuelles sur des sujets intéressants avec des speakers passionnés comme durant ces 10 dernières années pour les 10 prochaines années Et pourquoi pas de venir parler à son 20e anniversaire
  • 72. #ParisJUG Devoxx FR 2019 8e édition, du 17 au 19 avril 2019 Quel sera le costume de Charles aux keynotes ? 72 Devoxx va t-il s’étendre sur les deux étages du Palais des Congrès ? Et pourquoi pas un ou deux sujets de Venkat ? @venkat_s : and why not one or two talks from you? Et / Ou durer 5 jours ?
  • 73. #ParisJUG Bonne continuation A tous avec Java 10, 11, 12, … Java 30 (en 2028) 73 Et avec les prochaines sessions du Paris JUG
  • 74. #ParisJUG Un immense merci Au Paris JUG pour ses contributions à l’écosystème Java francophone 74 Et surtout aux bénévoles qui ont animé / animent le Paris JUG : Antonio Goncalves David Dewalle Zouheir Cadi Charles Sabourdin Claude Falguière Nicolas Martignole Tanguy Bayard José Paumard … Guillaume Duquesnay Guillaume Dufour François Ostyn Khanh Tuong Maudoux Jean-Christophe Sirot Thierry Leriche Sun Seng David Tan Anthony Guillé
  • 75. #ParisJUG Profitons de ce cadre somptueux Pour fêter ensemble un joyeux 10e anniversaire au Paris JUG 75
  • 77. #ParisJUG Le (vrai) cahier des charges Parler du Paris JUG J’ai carte blanche 77 (un peu) technique Parler de Java Rétrospective sur la décennie écoulée
  • 78. #ParisJUG Recette Ais-je rempli ce cahier des charges ? Si vous pensez que OUI 78 Venez aux prochaines sessions du Paris JUG Si vous pensez que NON Venez aux prochaines sessions du Paris JUG
  • 79. #ParisJUG Merci pour votre attention A bientôt au Paris JUG 79