# PostgreSQL 16

par Xavier Calland

Le 14 septembre 2023, le PostgreSQL Global Development Group a annoncé la publication de PostgreSQL 16.

Autant le dire tout de suite, cette version n’est sans doute pas la plus éblouissante.

Cependant elle apporte son lot d’améliorations que chacun pourra apprécier :

  • côté runtime : l’amélioration des performances sur la parallélisation des requêtes la réplication logique et le chargement en masse
  • côté développeur : de nouveaux éléments de syntaxes SQL/JSON
  • côté exploitation : la vue pg_stat_io donnant accès aux statistiques clés des entrées/sortie et plus de flexibilité dans la définition des règles de contrôle d’accès

PostgreSQL continue à se bonifier de version en version, sa fiabilité et sa robustesse faisant de lui le SGBD-R de référence.

# Bun v1.0 / htmx

par Mathieu Sanchez

La boîte à outils javascript Bun est sortie en version stable 1.0. Bun permet de remplacer le runtime “classique” nodejs. C’est aussi un package manager (on saisit bun add  à la place de npm add par exemple). Il permet également de transpiler du code typescript, les fichiers jsx (avec les marqueurs React) et de les empaqueter : il remplace donc des outils comme webpack, rollup…

Au delà de ces fonctionnalités, on peut noter les très bonnes performances du package manager – bun install est vraiment plus rapide que npm – ainsi que son temps de démarrage très réduit, y compris avec du code typescript.

Tout un écosystème est en train de se créer autour de Bun et avec sa sortie en version stable, nul doute qu’on verra de plus en plus de projets utilisant cette technologie. On peut par exemple citer le framework serveur ElysiaJS qui promet d’être 18 fois (!!) plus rapide que le framework Express pour nodejs. 

Avec la récente re-mise en lumière de la librairie Htmx (cf BOT#57) on note quelques articles décrivant l’association bun et htmx pour mettre en avant la simplicité de développement d’applications qu’elle permet. Et qui sait si au sein d’Atol, on ne verra pas des projets autour de cette stack bun + htmx.

# Java 21

par Thomas Broyer

Comme prévu, Java 21 est là, nouvelle version LTS (chez Oracle et d’autres) destinée à remplacer Java 17 (enfin, tout est relatif : chez Adoptium/Temurin par exemple, Java 11 est encore supporté jusqu’à l’an prochain, et Java 17 pour 4 ans).

Au menu, et notamment depuis la version 17 :

    • le pattern matching for switch (en preview depuis Java 17, mais qui subi un relifting en Java 19), les record patterns et les virtual threads (tous deux en preview depuis Java 19) sont maintenant stables 🎉
    • apparus dans Java 18 : UTF-8 par défaut pour les I/O, jwebserver, une SPI pour la résolution DNS, et la finalisation des objets est dépréciée
    • des nouveautés directement stables :
      • les sequenced collections (toutes les collections qui ont un ordre déterminé gagnent une interface commune avec des méthodes pour manipuler le premier et le dernier éléments, et obtenir une collection en ordre inverse),
      • le ramasse-miettes ZGC peut être générationnel, et
      • le chargement dynamique d’un agent émet un avertissement (en vue d’une désactivation dans une version future, “integrity by default”)
    • des previews : foreign function & memory API est reconduite, la vector API également est partie pour une sixième incubation, mais on voit surtout apparaître :
      • les string templates qui font furieusement penser aux tagged template literals de JavaScript,
      • les scoped values destinées à remplacer de nombreux usages de ThreadLocal pour des valeurs contextuelles, mais avec une sorte d’héritage de ces valeurs par les threads enfants,
      • en travaillant pour cela main dans la main avec structured concurrency (qui était en incubation jusqu’à présent), elle-même s’appuyant sur les virtual threads devenus stables
  • unnamed patterns and variables : on pourra enfin utiliser _ pour les paramètres de lambdas, champs de record patterns, et variables dont on veut ignorer la valeur
  • unnamed classes and instance main methods : le but ici est de faciliter la prise en main du langage par les débutants en évitant de leur imposer d’emblée des concepts orientés objet
  • le support de Windows x86 32 bits est déprécié, mais on voit apparaître (depuis Java 19 en réalité) le support de Linux sur processeur RISC-V
  • au chapitre des APIs :
    • Math et StrictMath gagnent une méthode clamp(),
    • String.indexOf peut désormais se limiter à une portion de la chaîne de caractères,
    • String et Pattern gagnent une méthode splitWithDelimiters(),
    • Runtime.exec, ProcessBuilder, et System.exit et Runtime.exit peuvent maintenant logger leurs appels (pour faciliter le debug ou les audits)
    • le support des Emoji s’améliore : dans la classe Character mais aussi dans les expressions rationnelles,
    • HttpClient est désormais AutoCloseable,
    • StringBuilder gagne une méthode repeat()
  • javac émet un avertissement si une méthode non-finale est appelée depuis un constructeur (elle pourrait être surchargée dans une classe fille et avoir des interactions imprévues avec le constructeur, à cause d’un objet incomplètement initialisé)

# OSRM vous connaissez ?

par Xavier Calland

Le projet OSRM n’est tout jeune, néanmoins c’est une découverte récente en ce qui me concerne et je ne peux résister à l’envie de la partager.

Le projet OSRM (pour Open Source Routing Machine) vise à fournir une solution de calcul d’itinéraire en mode hébergé, donc sans recourir à des services externes (type Google Maps).

L’outil repose sur les données OpenStreetMap, qu’il faudra importer régulièrement pour avoir un système à jour, et permet à tout à chacun de proposer son propre service de calcul d’itinéraire.

Le backend est écrit en C++, ce qui lui permet d’avoir des temps de réponse de quelques millisecondes, et propose une API HTTP et une bibliothèque C++.

Il gère également différents modes de déplacement (voiture, vélo, piéton).

# La billetterie pour le DevFest Dijon 2023 est ouverte

par Allan Cruchaudet

Le Developers Group Dijon a annoncé l’ouverture de la billetterie pour le DevFest Dijon 2023 !

Pour cette deuxième édition, pas mal de changements :

  • Nouveau lieu
  • Plus grande capacité d’accueil
  • Village entreprises

Par contre, on ne touche pas ce qui a fait le succès de cet événement :

  • Bonne humeur
  • Convivialité
  • Sujets tech variés

À n’en pas douter, il y aura du best of best of best of tech 😉

Rendez-vous le 08 Décembre !!