Présentation réalisée par Olivier Bourgeat, architecte chez @docdoku, lors du 4ème ApéroTech Toulouse sur les perspectives de l'éco-système Java suite à l'Oracle Code One 2019.
DocDokuCo-founder- DocDoku - We help industries digitize their business at DocDoku
Les ZAPeroTech #4 : REX Oracle Code One 2019 sur l'éco-système Java
1. Oracle Code One 2019
Quelles perspectives pour l'éco-système Java ?
Olivier Bourgeat
14/11/2019
Apéro-Tech Toulouse
2. CodeOne 2019
Parmi les innombrables sujets :
- Évolutions de la JVM
- GraalVM
- JakartaEE/Microprofile
- Kubernetes
3. Évolution de la JVM
Versions :
- Éviter l’effet tunnel
Garbage Collector
- ZGC : “A scalable Low latency GC”
- pause < 10 ms !
- de quelques centaines de Mo à plusieurs To
- Linux/86_64 pour le moment
4. Évolution de la JVM
Modularisation
- Minimiser le “JRE”
Projet Valhalla (https://openjdk.java.net/projects/valhalla/)
- Optimisations
- Value Type
- Record
Projet Panama :
- Remplacer JNI
5. Évolution de la JVM
Projet Amber (https://openjdk.java.net/projects/amber/)
- Sucre syntaxique pour améliorer la productivité
- Variable locales (inférence de type)
- Text block
- Switch
Projet Loom
- Programmation concurrente simplifiée
6. Évolution de la JVM
Objectif marquant
- Rendre la JVM adaptée à l’exécution dans des conteneurs
- Temps de démarrage,
- Empreinte mémoire,
- Performance
7. Graal VM
Objectifs:
- multi-langage
- réduire le temps de démarrage
- réduire l’empreinte mémoire
JVM polyglotte
- Bytecode (Java, Scala, …)
- Langages de script (Javascript, Python, Ruby, R)
- LLVM (C/C++, …)
- Permet de compiler en binaire (ahead-of-time)
- Native Images
8. Eclipse : Jakarta EE - MicroProfile
Jakarta EE
- Sortie du périmètre Oracle
- suppression des bibliothèques clientes “JavaEE” du JRE
- Jakarta EE : Application Programming Interfaces
- Choix d’implémentation libre (serveur d’application, PAAS Cloud , …)
Objectif affiché :
- adapter les APIs aux technologies du Cloud
- Convergence JakartaEE / Microprofile
9. Microservices = composant
Composant:
- Rend un service (interface, sémantique)
- Interopérable avec d’autres composants (standard communication)
- Briques pour construir un système plus vaste (réutilisable)
SOA (Service Oriented Architecture)
- Bonnes pratiques d’architecture à base de services (composants)
- forte cohésion, faible couplage, SoC
Microservice
- Variante de SOA : souvent basé sur REST, JSON, ..
10. Java et les composants
Java : Approche “composant” depuis le début
- Interfaces
- Réseau / Protocoles / Distribution
- Java Beans, EJB
- Evénements
- WAR, EAR
- ...
16. Conclusion
Java
- Évolue en fonction des nouveaux usages
- Rester dans “le coup”
- Séduire de nouveaux développeurs
Environnements d’exécution en pleine mutation
- Plus dynamique
- Profiter des caractéristiques du Cloud