Quotidien Shaarli
Hier - April 16, 2026
Je m'étais mise à Kotlin début 2016 puis j'ai appris Rust courant 2018. C'est dire à quel point les années passent !
Depuis le début, j'aime Kotlin parce qu'il m'apporte ce que Rust ne m'apportera jamais : une syntaxe et un langage sympa et conviviale. Tout dans ce langage est pensé pour être pratique, pour être facile, pour être direct. Bref, Kotlin c'est cool, c'est fun !
En parallèle j'aime Rust pour ce que Kotlin ne m'apportera jamais : des binaires performants qui ne consomment presque pas de ressources. Tout dans ce langage est pensé pour de la performance, pour minimiser le CPU et la consommation mémoire. Bref, Rust c'est optimisé, c'est efficace !
Le problème avec Kotlin est que la consommation mémoire est absurde à cause du fonctionnement de l'environnement Java derrière (JRE) qui a toujours été pensée pour de très GROS serveurs (genre 16 Go - 2 To de RAM) et à cause des LLM ça devient inenvisageable. On peut compenser avec du Kotlin natif grâce à GraalVM mais ça prend une plombe à compiler. Je déteste avoir un truc lourd et ne pas avoir de base ce qui devrait être la norme (comme en Go par exemple).
Le problème avec Rust est qu'il vous déteste. Sa syntaxe est tirée de la programmation fonctionnelle des années 60 qui n'a jamais pris, le système de modules est à gerber, le borrow-checker-qui-vous-veut-du-bien est aussi chiant que l'unification de Martelli-Montanari en PROLOG. De plus, les tech-bros Rust passent leur temps à tout recoder en licence APACHE ou MIT plutôt qu'en GPL / AGPL afin de pouvoir close-sourcer toute la tech parce qu'il espère un jour avoir un monopole, ceux qui fait les choux gras des GAFAM. Je déteste le langage, sa philosophie et sa communauté ; surtout avec les classiques :
- Quoi !!! Tu n'as pas appris par coeur Rustbook de 300 pages et tu poses une question ?
- Quoi !!! Tu n'as codé les 25 Rustlings (i.e. exercices) avant de commencer à programmer en Rust ?
Quand soudain, internet m'apporte un truc totalement inattendu : le langage C3 qui ressemble à s'y méprendre au meilleur des deux mondes :
- Une interopérabilité complète avec l'ABI C.
- Une syntaxe claire, moderne (où les
Optionalsont les types eux-mêmes et non des wrappers qui polluent le code). - Des interfaces, des vraies, pour casser le couplage sans se prendre la tête avec les VTables, les Box, les Arc ou les Cell comme en Rust.
- Des lambas qui ressemblent à des lambdas, sans des pipes sortis de nulle part.
- La surcharge des fonctions/méthodes !
- Une gestion automatisée de la mémoire calculée lors de la compilation (via des @pool), sans GC qui pollue le runtime et sans borrow-checker.
- Les mêmes performances CPU et mémoire que C ou Rust.
- Des temps de build raisonnables !
Il manque cependant quelques trucs :
- Un éditeur de code digne de ce nom, mais la roadmap indique qu'un plugin pour IntelliJ est en cours de développement.
- Un système de build/gestion de dépendances, mais ça peut se faire facilement.
- Des frameworks de test (TU + Mock), parce que le mot
assertc'est limité. - Une cross-compilation native et intuitive.
Je fonde de GRANDS ESPOIRS en C3 et je vais m'y mettre dans les prochains jours !