Replay meetup "Java 23"
Revoir notre meetup Java 23 avec Loïc Mathieu.
Bonne session !
Revoir notre meetup Java 23 avec Loïc Mathieu.
Bonne session !
The Register publie une très intéressante tribune de Steven J. Vaughan-Nichols sur le fait que le gouvernement américain veut que les développeurs arrêtent d'utiliser C et C++, au profit de Rust ou de tout langage dit memory-safe. Cet "ordre" vient du Cybersecurity and Infrastructure Security Agency (CISA) et du FBI. Le FBI poursuit ses efforts pour convaincre les éditeurs d'abandonner les langages qui ne sont pas "memory-safe", donc C et C++.
La gestion de la mémoire en C et C++ a toujours été un point sensible qui exige une maîtrise des concepts de ces langages. Le CISA milite pour que les développeurs adoptent un langage memory-safe (Go, Rust, Java, C#, Python, Swift). "Si seulement c'était aussi simple de claquer des doigts et de transformer comme par magie votre base de code de C à Rust. Alerte spoiler : ce n'est pas le cas." évoque Steven. Et avec raison ! On ne délaisse pas comme cela un langage ni on ne migre des millions de lignes de code aussi facilement.
Il n'y a qu'à voir ce que cela donne du côté Linux. Linus veut du Rust dans le noyau et souhaite que le langage remplace tout le reste. Cependant, Linus oublie de dire que migrer le noyau Linux en Rust prendrait des années et nécessiterait des développeurs maîtrisant totalement Rust. Un tel chantier exige du temps, une armée de développeurs, tout en continuant à faire évoluant le projet. Le défi est identique pour les entreprises et les autres projets open source.
Steven rappelle que les développeurs C et C++ ont passé des années à maîtriser ces langages. Rust, très différent d'eux, demande du temps pour être dompté. Est-ce qu'un développeur expert en C ou C++ veut changer ? Pas sûr.
Le CISA veut remplacer C et C++ mais la réalité est ce qu'elle est. Cela fait 30 ans que l'on parle de la mort de Cobol et de son remplacement. On connaît la situation en 2024 : Cobol reste en place et des millions de lignes de codes sont produites chaque année. Et peu d'entreprises sont prêtes à miser sur un changement radical de langage avec une promesse d'économiser de l'argent et des failles en 2027... Trop incertain, trop lointain.
Steven conclut positivement, et là encore avec raison : les changements se feront durant les années 2030, pas durant cette décennie. Et ce n'est pas parce que le CISA le veut que le mouvement se fera en si peu de temps.
Source : https://www.theregister.com/2024/11/08/the_us_government_wants_developers/
Même si Google génére 25 % du code interne par des assistants type GenIA, ce n'est pas pour autant qu'il ne faut pas apprendre à coder, apprendre les bases de la programmation. Cela reste vital. C'est Yossi Matias, responsable de la recherche chez Google, qui le dit à Business Insider.
« Je pense que la programmation de base est comme les mathématiques de base, » a déclaré Matias. « Vous devez comprendre ce qui s'y passe. » Yossi a raison de rappeler que pour comprendre le code et comment il fonctionne, il faut avoir les bases. Si vous produisez du code sans savoir comment il fonctionne ou ce qu'il veut dire, il y a un problème fondamental. Générer du code par un assistant c'est bien, mais comprendre ce qui est généré, c'est encore mieux.
Déjà 15 ans ! Le langage de Google a eu 15 ans le 10 novembre dernier. Go a toujours les mêmes objectifs : stabilité, sécurité, robustesse. Même si son usage reste assez marginal, il figure souvent dans les 10 langages de référence. Les dernières versions sont les 1.22 et 1.23 de cet été. Un des éléments clés des dernières années est une meilleure rétro-compatibilité du code, introduite avec la 1.21. Les équipes ont fait un effort important dans la toolchain et le core code du langage pour éviter les casses de code avec les nouvelles versions.
La 1.23 a introduit des évolutions intéressantes sur les itérateurs et les boucles, sans oublier les génériques (depuis la 1.8). L'autre évolution importante est la télémétrie directement dans le langage, apparue avec la 1.23 (septembre 2024) : go telemetry on. Simple et efficace. Un autre défi est l'optimisation du langage sur les architectures matérielles les plus récentes. Ce sera d'ailleurs un des focus de la future 1.24 avec une profonde refonte interne. Cela passera aussi par des améliorations notables sur les API et les outils.
La 1.24 devrait être disponible en février 2025 avec plusieurs évolutions / nouveautés :
- Cgo
- Vet : nouveau analyseur tests
- changement sur la librairie standard
Comment fonctionne la rétro-compatibilité : https://go.dev/blog/toolchain
Go 1.24 : https://tip.golang.org/doc/go1.24
Visual Studio Code bénéficie d'une importante évolution dans la partie IA avec la version 1.95. Il est possible d'activer les fonctions IA expérimentales ou en bêta via les tags experimental et preview (@tage:nom du tag).
En préversion, on peut activer Copilot Edits. L'outil aide les développeurs à éditer du code avec les fonctions d'IA par exemple pour accélérer les itérations et les modifications sur plusieurs fichiers. Editis est intégré à Copilot Chat et Inline Chat. On peut ainsi échanger avec Copilot pour redéfinir un code, appliquer des modifications, etc. N'oubliez pas d'installer le plug-in Copilot si ce n'est pas le cas.
Présentation complète d'Editis : https://code.visualstudio.com/docs/copilot/copilot-edits
Parmi les OS mobiles alternatifs, il existe Ubuntu Touch. Il se définit comme un OS sécurisé et libre. Il est porté par UBports Foundation qui distribue la mise à jour OTA-6. L'OS se base sur Ubuntu 20.04 LTS. Cette mise à jour doit améliorer la stabilité des connexion sans fil, support des derniers Android HAL (Hardware Abstraction layer) et proposer aux développeurs une plus large gamme de smartphones reportant Ubuntu Touch. Cette version inclut aussi de nombreux correctifs de sécurité.
A noter que l'équipe a décidé à la dernière minute de retirer le support de VoLTE suite à la découverte de bugs.
L'OS supporte officiellement :
* Asus Zenfone Max Pro M1
* F(x)tec Pro1 X
* Fairphone 3 and 3+
* Fairphone 4
* Google Pixel 3a and 3a XL
* JingPad A1
* Oneplus 5 and 5T
* OnePlus 6 and 6T
* OnePlus Nord N10 5G
* OnePlus Nord N100
* Sony Xperia X
* Vollaphone
* Vollaphone X
* Vollaphone 22
* Vollaphone X23
* Xiaomi Poco X3 NFC / X3
Pour les principaux modèles, le projet indique les fonctions disponibles ou non. Il existe parfois une grande différence. Par exemple, le Fairphone 4 est pleinement supporté. Sur le PinePhone, le support est limité.
A découvrir : https://ubuntu-touch.io/
Après plusieurs mois de développement, Gimp 3.0 est disponible en RC1. Il s'agit d'une version majeure avec de nombreux changements. Il s'agit de la 1ere version pour une audience la plus large possible. L'objectif est de remonter un maximum de bugs. Toutes les fonctionnalités ne sont pas disponibles ni stabilisées. L'interface a subi de nombreuses évolutions. Plus de 380 bugs ont été fixés, 1892 commits envoyés. On pourra importer les images TIFF avec les couches provenant d'Autodesk Sketchbook. Gimp 3.0 inaugera aussi un nouveau logo et un nouvel écran de démarrage !
La RC1 est disponible sur Linux, Windows, macOS.
Release note : https://www.gimp.org/news/2024/11/06/gimp-3-0-RC1-released/#downloading-gimp-30-rc1
Les Core Web Vitals sont des données sur le chargement des pages (rapidité, interaction, stabilité de l'interface). Il y a de nombreuses métriques possibles et on peut rapidement s'y perdre. Les DevTools de Chrome permettent de remonter ces données depuis le panneau Performance.
Cette vidéo résume les possibilités et comment les afficher. Vous avez 6 minutes pour tout comprendre !
La version 131 de Chrome est disponible. La partie DevTools propose de belles choses. Nous retenons :
- Debug CSS avec Gemini : pour le moment expérimental, l'idée est d'aider les développeurs à faire le debug des codes CSS. On peut le tester depuis le panneau Elements, clique droit sur un élément et sélectionner Ask AI... Gemini apportera alors des conseils et des solutions !
- il est possible de gérer les fonctionnalités IA depuis les paramètres, section innovations IA
- nouvelle fenêtre d'annotations dans la partie Performance.
- toujours dans la partie performance, Performance insights est déprécié au profit de la fenêtre Insights.
- nouvelle ergonomie pour les Layout shifts
- les informations Hardware concurrency sont déplacées dans le panneau Sensors
La liste est très très longue : https://developer.chrome.com/blog/new-in-devtools-131?hl=en
Autre évolution non négligable, la partie WebGPU. Tous les détails sur ce post : https://developer.chrome.com/blog/new-in-webgpu-131?hl=en
Chrome 131 est en version stable.
Pour suivre les développements de Chrome, consultez chromestatus : https://chromestatus.com/roadmap
L'événement MongoDB.local Paris revient le 19 novembre à partir de 8h. Cette journée est dédiée aux solutions et outils MongoDB. La keynote d'ouverture abordera les nouvelles annonces de l’entreprise. Des témoignages clients, des sessions techniques, ainsi que des démonstrations produits, seront proposés durant la journée.
Quelques sessions à ne pas rater :
Le mardi 19 novembre 2024, de 8h à 18h, à La Maison De La Mutualité, 24 Rue Saint-Victor, 75005 Paris
Informations et inscription : https://www.mongodb.com/fr-fr/events/mongodb-local/paris
Dans le monde de la compilation, il en existe 2 approches différentes : compilation statique et compilation dynamique. Si les langages et l'approche ne sont pas identiques, il s'agit de compilation, donc de compiler du code et d'exécution le code.
Typiquement, C++, C ou encore le Basic utilisent une compilation statique pour générer le code machine et l'exécutable. En compilation dynamique, le code sera transformé en bytecode. Il s'agit d'une représentation intermédiaire qui pourra être exécuté par un interpréteur ou JIT (compilateur Just In Time). L'exécution JIT nécessaire un runtime d'exécution, typiquement une JVM, CLR. Cette approche dynamique se retrouve en JavaScript, Python, Java, C#. Nous trouvons cette approche dans les langages interprétés.
Max Shahdoost (sur Medium) résume bien les 2 approches :
Approche JIT :
En JavaScript, le principe est le modèle dynamique car JS est un langage interprété nécessitant un moteur d'exécution (typiquement inclus dans le navigateur) et éventuellement un JIT pour améliorer les performances. Tous les moteurs JS récents intègrent un JIT qui évite de tout (re)compiler à chaque fois.
Max Shahdoost résume ainsi l'architecture d'exécution moderne dans le monde JS :
Modèle type d'un compilateur statique (exemple en C++) :
Une autre tendance, en complément ou pour remplacer le JIT, est la compilation dite AOT (Ahead of Time). IBM présente ainsi l'approche AOT : "La compilation AOT (ahead-Of-Time) permet de compiler les classes Java en code natif pour les exécutions ultérieures du même programme. Le compilateur AOT fonctionne avec l'infrastructure de partage des données des classes.Le compilateur AOT génère le code natif dynamiquement lorsqu'une application s'exécute et met en cache le code AOT généré dans le cache des données partagées. Les machines virtuelles Java suivantes qui exécutent la méthode peuvent charger et utiliser le code AOT depuis le cache des données partagées sans subir les pertes de performances associées au code natif compilé par JIT."
Si nous prenons l'exemple d'Angular, il intègre un AOT. Le projet le définit ainsi : "Le compilateur AoT d'Angular convertit les codes HTML et TypeScript en code JavaScript (plus) efficace pendant la phase de build avant le chargement (du code) sur le navigateur et son exécution. La compilation de votre application durant le phase de build permet un rendu plus rapide dans le navigateur".
En Angular, voici l'approche JIT vs AOT :
On constate que le flux de compilation n'est pas identique. Un des arguments de l'AOT est que la compilation du code est déjà faite comme on builde (réellement) son application. Et il n'y a pas de runtime d'exécution qui prend la main pour le run.
En mai dernier, JetBrains annonçait un plugin Unreal Engine pour TeamCity. TeamCity est un outil très populaire dans le développement de jeux avec le support de Perforce, les multiples configurations possibles ou encore l'installation locale. Aujourd'hui, JetBrains annonce le support d'Unreal Game Sync (UGC) et la mise en open source du plugin ! L'éditeur veut fluidifier le CI/CD pour les jeux avec UGC.
UGC est une interface légère au-dessus de Perforce (outil de gestion du code). Cette intégration rendra plus simple l'usage de Perforace et des builds réalisés dessus.
Depuis la sortie du plugin, JetBrains a reçu de nombreux retours. La mise en open source doit répondre à la transparence du code, l'engagement envers la communauté et favoriser les évolutions de la communauté, fixer plus rapidement les bugs et les nouvelles fonctionnalités. Le code est disponible sur GitHub.
Annonce de novembre 2024 : https://blog.jetbrains.com/teamcity/2024/11/unreal-engine-plugin-ugs-integration-and-open-sourcing/
Annonce de mai 2024 : https://blog.jetbrains.com/teamcity/2024/05/unreal-engine-plugin-for-teamcity/
Svelte a connu une forte notoriété dans le monde JavaScript et s'est fait une place auprès des autres frameworks. React est un framework "historique" avec une forte communauté et un support très actif. Un développeur web, Wild Boysenberry2916, a partagé son expérience sur reddit sur Svelte et pourquoi il est revenu à React. Il a débuté avec Svelte dès la v1. Mais rapidement, il a rencontré des soucis pour construire les UI et des problèmes d'affichage. Un des soucis fut d'être conforme aux règles du WCAG (accessibilité). Le développeur explique alors les problèmes sur Safari et les modifications en cascade. Il poursuit sur la complexité inutile pour créer des menus et sous-menus.
Ensuite, il donne l'exemple de la librairie shadcn-svelte qui n'est plus mise à jour depuis presque 1 an. Ce qui est gênant pour des projets en production. Notre développeur pointe une autre faiblesse : le manque de financement et de développements sur les librairies essentielles. Il reconnaît aussi, suite aux retours d'autres développeurs, que Svelte peut aussi être couplé à des librairies agnostiques et il précise que plusieurs problèmes / bugs ont été fixés avec Svelte 5. Ce n'est pas pour autant que Svelte est mauvais, loin de là mais pour ses développements, il estime que React est meilleur.
Post : https://www.reddit.com/r/sveltejs/comments/1gbwi0b/i_moved_from_svelte_to_react/
L'éditeur WSO2 se spécialise dans la gestion des API. Une des principales nouveautés est la gestion des API des fournisseurs d'IA et LLM. "Grâce à la nouvelle fonctionnalité Egress API Management de WSO2, les API d'IA peuvent bénéficier d'une gestion et d'une gouvernance du cycle de vie complet de l'API avec un support intégré pour une gamme de fournisseurs de services populaires, y compris OpenAI, Mistral AI et Microsoft Azure OpenAI." indique l'éditeur.
Egress API Management est disponible avec API Gateway et APK Gateway. Egress API Management permet aux développeurs de gérer les services d'IA internes et externes en tant qu'API.
WSO2 API Manager 4.4, WSO2 APK 1.2, et WSO2 API Microgateway 3.2 sont disponibles aujourd'hui en tant que produits open-source publiés sous la licence Apache 2.0. Le téléchargement et la documentation de chaque produit sont disponibles sur WSO2 API Manager 4.4 Documentation, WSO2 APK 1.2 Documentation, et WSO2 API Gateway.
Le magazine Programmez! organise sa Developer Conference #23 : sécurité & qualité du code.
Rendez-vous le 14 novembre au campus de l'ESGI à Paris. Accueil dès 13h30, début des sessions à 14h.
Venez rencontrer les experts du domaine et échanger avec la communauté.
Au programme : les failles de sécurité dans sa prod, comment sécuriser la JVM, Zéro Trust, LLM et sécurité, les risques GenAI dans un contexte AppSec, RAG & Cybersécurité, analyse de sécurité dans les binaires.
Agenda complet : https://www.programmez.com/page-devcon/devcon-23-securite-qualite-du-code
Inscription : https://www.programmez.com/content/programmez-devcon-23-inscriptions
Merci à nos partenaires de la DevCon : Jfrog, AWS, Elastic, BENQ, ESGI
JetBrains annonce la disponibilité d'Amper 0.5. Amper est outil dédié à la configuration et aux builds. Il est là pour aider les développeurs à créer et à gérer les fichiers de configurations. Ces fichiers sont au format yaml et s'utilisent facilement dans les IDE. La 0.5 supporte Compose Resource et KSP2 et s'améliore sur la partie Android. La liste des améliorations et des corrections de bugs est très longue : https://github.com/JetBrains/amper/releases/tag/v0.5.0
Amper comprend :
- un langage de description avec intégration aux IDE
- supporter un maximum d'usage et de configurations
- il permet de builder des apps pour JVM, Android, iOS, Linux, macOS, supporte aussi Kotlin Multiplatform
- permet de jouer les tests
- il est capable de mixer les codes Kotlin, Java et Swift
Pour découvrir Amper : https://github.com/JetBrains/amper
Annonce de la 0.5 : https://blog.jetbrains.com/amper/2024/11/amper-update-november-2024/
Le 6 novembre 2014, Amazon commercialisait la première version d'Alexa, son assistant à tout faire. Il était accessible avec Echo. La concurrence fut rapidement rude avec Microsoft, Apple, Google. Finalement, Alexa a du mal à évoluer et l'arrivée de ChatGPT / GPT enterre le modèle de l'assistant vocal. Amazon travaille depuis 18 mois sur une refonte complète de la plateforme en promettant un reboot d'Alexa (architecture, usage, fonctionnement), avec l'injection massive d'IA.
Mais les retards se multiplient et il faudra attendre 2025 pour voir Alexa AI. Même l'accès à la bêta du prochain Alexa a été coupé. Les remontées, d'après Bloomberg et The Verge, ne seraient pas assez bonnes alors que la nouvelle version doit permettre justement une interaction bien plus large et une intégration plus profonde avec les objets du quotidien. Un des enjeux est l'entrainement des LLM dédiés et la qualité des réponses tout en éliminer les hallucinations. Au-delà, Alexa AI doit introduire un modèle payant pour les fonctions avancées.
Il semblerait qu'une changement d'architecture soit une des causes des retards : utiliser de LLM externes (Claude AI) et non plus internes.
Djanbo sort son nouveau bug fix : la 5.1.3.
Cette version fixe :
- 2 bugs de régression sur les bases DB-IP et sur les noms de champs non ASCI
- bug sur DomainNameValidator
La 5.1.3 ajoute le support de Python 3.13.
Le prochain bug fix, la 5.1.4, est déjà prévu pour début décembre !
HYCU, spécialiste de la sauvegarde et de la protection des données, propose une solution pour sauvegarder en toute sécurité nos référentiels de codes GitHub, GitLab . L'éditeur étend à Git sa solution de sauvegarde déjà disponible Terraform, AWS, etc.
« Le risque lié aux tiers devient rapidement la principale source de perturbation de l'utilisation des données des applications SaaS », déclare Subbiah Sundaram, SVP, Product chez HYCU. « Si l'on tient compte de l'exposition aux attaques malveillantes ou aux ransomwares, GitHub peut offrir aux pirates un retour sur investissement massif en leur permettant d'accéder aux données sensibles et critiques des développeurs. »
Cette fonctionnalité est disponible dans R-Cloud, la marketplace HYCU.
Les fonctionnalités annoncées sont :
Apple vient de distributer la bêta 2 de son IDE Xcode 16.2. Cette version supporte tous les prochains SDK et OS qui arriveront au fur et à mesure. La 16.2 exige macOS 14.5 minimum. Peu de nouveautés dans cette version hormis les nouveaux SDK : support de la commande swift test dans le paquet Command Line Tools et des corrections bugs.
Note de version : https://developer.apple.com/documentation/xcode-release-notes/xcode-16_2-release-notes
Depuis quelques jours, des rumeurs circulent sur un basculement majeur chez VMware. Phoronix évoque une intégration de KVM sur Linux. Jusqu'à présent, l'éditeur était sur un modèle fermé du code. KVM est une plateforme de virtualisation open source bien connue dans le monde Linux. Cette rumeur vient d'un message d'un développeur Broadcom sur l'exécution de machines virtuelles VMware sur Linux en utilisant KVM.
Lien : https://lore.kernel.org/lkml/20241030033514.1728937-1-zack.rusin@broadcom.com/
Ce post évoque un patch pour exécuter des guest VMware sans modification sur KVM, sur un système Linux (on exclut Windows et macOS). Le message parle d'un switch des solutions VMware sur Linux en utilisant KVM.
Est-ce à dire qu'au moins pour la virtualisation desktop sur Linux, VMware miserait sur KVM et non sur son propre outil de virtualisation ? A court terme non. Que Broadcom teste une autre approche, cela ne doit pas forcément surprendre.
Peu après la publication sur Phoronix, Broadcom a précisé que l'utilisation de KVM pour la virtualisation de CPU ne signifie pas que les logiciels VMware seront abandonnés au profit de KVM...
A suivre.
Source : https://www.phoronix.com/news/VMware-Workstation-KVM