Android passe à Rust

LE système d’exploitation Android de Google est écrit en plusieurs langages. Les couches les plus basses du système d’exploitation sont écrites en C ou C ++.

Ces deux langages ont été conçus pour exceller comme langages systèmes : très rapides, très proches du matériel, applicable à un grand nombre de domaines d’applications.

Revers de la médaille : il est facile de faire des erreurs liées à la gestion de la mémoire, et ces erreurs se transforment souvent en vulnérabilités de sécurité.

Bien sûr, il existe des options de compilateurs et des outils afin d’éviter de coder la gestion de la mémoire correctement, et des outils pour détecter les erreurs, voire les corriger automatiquement.

Mais d’après Google, ces outils sont limités parce qu’il faudrait se placer en condition d’erreur, ce qui n’est pas toujours facile. Et parce que la correction des bogues coûte beaucoup de temps et d’argent.

Dans ces basses couches, l’utilisation de Java, avec son collecteur automatique de mémoire invalidée, ne serait pas idéale.

Dans ces conditions, Google a décidé de passer à Rust, un langage développé par Mozilla, où il est possible de garantir qu’il n’y a pas d’erreur de gestion de la mémoire, et qui serait aussi rapide que C/C ++. Rust possède d’autres propriétés inintéressante, telle la gestion de la concurrence.

S’il est hors de question pour Google de reprogrammer les dizaines de millions de lignes de code existantes en Rust, les prochains développements seront effectués dans ce langage.

Cela prendra un peu de temps, puisqu’il faut développer à nouveau tous les outils de développement nécessaires afin qu’ils soient compatibles avec Rust, former les programmeurs, et des chaînes d’outils et de dépendances qui devront être maintenues.