LCC 317 - les nouvelles paramétriques
Description
De Java 23 à WebAssembly, en passant par l'IA et les design patterns, on a tout passé au crible #java #swift #webassembly #wordpress #webcomponents #llm #mongodb #keycloak #fairsource
Enregistré le 18 octobre 2024
Téléchargement de l'épisode LesCastCodeurs-Episode–317.mp3
News
Langages
Java 23 est sorti ! InfoQ liste toutes les JEPs intégrées à la nouvelle version https://www.infoq.com/news/2024/09/java23-released/ Et FooJay plonge dans le détail https://foojay.io/today/java–23-has-arrived-and-it-brings-a-truckload-of-changes/
- JEP 455: Primitive Types in Patterns, instanceof, and switch (Preview)
- JEP 466: Class-File API (Second Preview)
- JEP 467: Markdown Documentation Comments
- JEP 469: Vector API (Eighth Incubator)
- JEP 471: Deprecate the Memory-Access Methods in sun.misc.Unsafe for Removal
- JEP 473: Stream Gatherers (Second Preview)
- JEP 474: ZGC: Generational Mode by Default
- JEP 476: Module Import Declarations (Preview)
- JEP 477: Implicitly Declared Classes and Instance Main Methods (Third Preview)
- JEP 480: Structured Concurrency (Third Preview)
- JEP 481: Scoped Values (Third Preview)
- JEP 482: Flexible Constructor Bodies (Second Preview)
- StringTemplate s'en va
Un article sur l'API ClassFile qui sera un standard dans le JDK pour manipuler des classes (ala ASM) https://www.unlogged.io/post/class-file-api-not-your-everyday-java-api
- article long mais qui revient sur les raisons
- notamment parce que ASM est dans le JDK et qu'ils sont un problème de poule et d'oeuf
- et sur la forme de l'API
- a des exemples d'usage
- tout cela reste en preview dans le JDK
- des optimisation comme le lazy parsing et le constant pool sharing (en gros faire de la reference sur ce qui n'a pas changé
Tip and Tail is back: cette fois une JEP https://openjdk.org/jeps/14
- plus qu'une keynote provocative au language summit
- maintenant une JEP dite informative
- le language est un pu flou sur l'objectif
- entre regarder tip and tail pour vos librairies c'est bien
- et adoptons tous le meme tip du JDK jusqu'aux stack applicatives
Apple annonce la sortie de son language Swift en version 6 https://www.swift.org/blog/announcing-swift–6/
- Nouvelles plateformes : Swift 6 s'étend à de nouvelles plateformes (tous les grands OS déjà supportés), y compris les systèmes embarqués (sous ARM et Risc V).
- Swift Testing : Swift 6 introduit Swift Testing, une nouvelle bibliothèque de tests conçue pour Swift.
- Concurrence : Détection de data race en tant qu'erreur de compilation.
Apple annonce travailler sur l'interopérabilité Swift / Java https://github.com/swiftlang/swift-java
- comme
jextractmais dans l'autre sens
The news Java https://www.infoq.com/news/2024/10/java-news-roundup-oct07–2024/
- JDK 24 : Un calendrier pour la sortie de JDK 24 a été proposé. La première phase de réduction des fonctionnalités commencera le 5 décembre 2024. La version finale sera disponible le 18 mars 2025.
- JDK 24 introduira des mises à jour avec deux nouvelles API. La Vector API (JEP 489) facilitera les opérations sur des vecteurs, tandis que la Class-File API (JEP 484) permettra une manipulation plus efficace des fichiers de classes Java.
- Un changement de sécurité important est proposé avec JEP 486. Il prévoit de désactiver définitivement le Security Manager, qui a été déprécié. Cette décision signifie que cette fonctionnalité ne sera plus disponible dans les futures versions, car elle est considérée comme obsolète.
- Apache Tomcat et Cassandra : Les nouvelles versions de Tomcat (11.0.0) et de Cassandra (5.0.0) sont sorties. Elles incluent des améliorations et des corrections de bogues.
- Spring Framework : Des mises à jour pour Spring Framework (versions 3.4.0-M2, 3.3.3 et 3.2.8) ont été publiées. Elles intègrent le support d'une nouvelle API qui aide à la gestion de la mémoire.
- Quarkus : Red Hat a sorti la version 3.15 de Quarkus, qui apporte des corrections et des améliorations. Une nouvelle version, la 3.16, est prévue pour la fin octobre.
- Commonhaus Foundation : Une nouvelle organisation, la Commonhaus Foundation, a été créée pour aider les projets open source à être durables. Quarkus a rejoint cette fondation.
- Cassandra, Camel, Lamgchain, Micronaut, OpenLibery, JHipster, Ktor etc.
Design patterns revisited: https://www.youtube.com/watch?v=kE5M6bwruhw
- Design and design patterns.
- Optional: patterns and anti-patterns.
- Iterator pattern.
- Lightweight Strategy.
- Factory Method using default methods.
- Laziness using Lambda Expressions.
- Decorator using Lambda Expressions.
- Creating Fluent interfaces.
- Execute Around Method Pattern.
- Creating a Closed Hierarchy with sealed classes.
Popularité des langages de programmation https://www.techspot.com/news/105157-python-most-popular-coding-language-but-challengers-gaining.html
- Python reste le langage de programmation le plus populaire, surtout dans des domaines comme la science des données et le développement web.
- Il est apprécié pour sa simplicité et le grand nombre de bibliothèques disponibles, ce qui le rend facile à apprendre et à utiliser.
- De nombreuses entreprises, y compris des startups, utilisent Python pour diverses applications.
- Malgré sa dominance, d'autres langages comme JavaScript, Java et Go gagnent en popularité et pourraient défier la position de leader de Python. (Java est monté du poste 4 au 3, en 1 an)
- Les développeurs qui codent occasionnellement préfèrent Python, montrant ainsi son attrait au-delà des programmeurs professionnels.
- L'émergence d'outils comme ChatGPT facilite l'accès à la programmation, ce qui pourrait influencer les tendances futures en matière de langages de programmation.
Librairies
Paramétrer ses tests JUnit 5 avec @CsvSource https://mikemybytes.com/2021/10/19/parameterize-like-a-pro-with-junit–5-csvsource/
- l'annotation permet d'avoir ses données de test au plus près de la méthode
- on écrit les données de test sous forme de CSV (éventuellement avec des délimiteurs de son choix pour plus de lisibilité, pour bien séparer les valeurs)
- par exemple
->oumaps to - les valeurs peut être les paramètres de la method mai aussi les valeur de description du test
Infrastructure
Turbocharged Development: The Speed and Efficiency of WebAssembly par Danielle Lancashire https://devsummit.infoq.com/presentation/munich2024/turbocharged-development-speed-and-efficiency-webassembly
- L'utilisation de WebAssembly avec Serverless. Faire tourner des applications plus facilement dans le cloud.WebAssembly est rapide et sûr pour exécuter du code. Cela aide à déployer les applications plus rapidement et à utiliser moins de ressources.
- De nombreuses entreprises utilisent WebAssembly pour des tâches comme le traitement d'images et de données. Des plateformes comme Cloudflare Workers et AWS Lambda.
- La communauté autour de WebAssembly granèit. De nouveaux outils et bibliothèques sont créés.
- Cependant, il y a encore des défis à relever, comme la compatibilité et les performances. Malgré cela, l'avenir de WebAssembly est prometteur.
Web
C'est la guerre chez Wordpress https://techcrunch.com/2024/09/26/wordpress-vs-wp-engine-drama-explained/
- une boite nommée WP Engine fait du hosting de WordPress mais ne contribue pas
- Automatic, les gens derrière WordPress leur onbt demandé de résoudre ce probleme, soit en payant des droits de trademark soit en contribuant de l'engineering upstream à auteur de 8% de leurs revenus
- WP Engine dit non
- Automatic coupe l'accès aux mises a jours de thèmes et de plugins à WP Engine mettant des sites à risque (securit




