Ladybird est un projet open-source visant à créer un navigateur web indépendant, plutôt qu'un énième navigateur basé sur Chrome ou un Firefox qui tend à devenir une régie publicitaire. Ladybird est écrit en C++ et placé sous une licence BSD à deux clauses. Il a été lancé dans le cadre du projet SerenityOS, mais le développeur Andreas Kling a annoncé au début du mois de Juin qu'il faisait de Ladybird une initiative distincte et qu'il s'éloignait de SerenityOS pour se consacrer en entier au navigateur.
Les fonctionnalités actuelles sont, sans surprise, minimales. Ladybird dispose d'une barre de recherche, d'une fonction de rechargement, d'onglets, d'une fonction de zoom avant/arrière sur le contenu, d'une fonction de capture d'écran et d'une fonction de navigation vers l'avant et vers l'arrière. En revanche, il ne dispose pas de signets, d'affichage de l'historique, d'extensions, de gestion des mots de passe, d'impression, ni même de la possibilité d'enregistrer une image. WebRTC ne semble pas encore être pris en charge. La prise en charge des feuilles de style CSS semble relativement robuste.
Les idées reçues veulent que la création d'un nouveau navigateur à partir de zéro soit impossible sans la mise à contribution d'énormes fonds et la collaboration de nombreuses personnes pendant de nombreuses années. La tête derrière le projet Ladybird s’attèlent à prouver le contraire avec le nouveau navigateur open source et multiplateforme à l’interface graphique implémentée en C++. L’initiative au stade de l’enfance ravive le débat sur la possibilité future de voir l’hégémonie de Google Chrome remise en question. Ladybird pourrait en effet réussir où Microsoft s'est aligné en adoptant le projet open source Chromium dans le développement du navigateur Microsoft Edge sur desktop.
Dans ce sens, le développeur Andreas Kling annonce que Ladybird commencera à utiliser le langage Swift au lieu de C++ cet automne. Pour lui, le langage Swift offre une sécurité contre la course à la mémoire et aux données, et est également un langage moderne avec une ergonomie solide. Swift dispose d'un support OO de premier ordre, à bien des égards plus agréable que le C++. Et depuis l'année dernière, le langage Swift est de plus en plus indépendant, avec l'amélioration de la prise en charge des plateformes autres qu'Apple.
[TWITTER]<blockquote class="twitter-tweet"><p lang="en" dir="ltr">We've been evaluating a number of C++ successor languages for <a href="https://twitter.com/ladybirdbrowser?ref_src=twsrc%5Etfw">@ladybirdbrowser</a>, and the one best suited to our needs appears to be <a href="https://twitter.com/SwiftLang?ref_src=twsrc%5Etfw">@SwiftLang</a> 🪶<br><br>Over the last few months, I've asked a bunch of folks to pick some little part of our project and try rewriting it in the different…</p>— Andreas Kling (@awesomekling) <a href="https://twitter.com/awesomekling/status/1822236888188498031?ref_src=twsrc%5Etfw">August 10, 2024</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>[/TWITTER]
Nous avons évalué un certain nombre de langages successeurs du C++ pour le navigateur Ladybird @ladybirdbrowser et celui qui répond le mieux à nos besoins semble être le langage Swift @SwiftLang.
Au cours des derniers mois, j'ai demandé à plusieurs personnes de choisir une petite partie de notre projet et d'essayer de la réécrire dans les différents langages que nous évaluions. Les réactions ont été très claires : tout le monde a préféré Swift !
Pourquoi aimons-nous Swift ?
Tout d'abord, Swift dispose d'une sécurité contre les courses de mémoire et de données (à partir de la version 6). C'est également un langage moderne avec une ergonomie solide.
Une chose qui nous importe beaucoup est l'OO. Les spécifications Web et les éléments internes des navigateurs ont tendance à être fortement orientés objet, et la vie est plus facile lorsque vous pouvez modéliser les spécifications de près dans votre code. Swift dispose d'un support OO de premier ordre, à bien des égards plus agréable que le C++.
L'équipe Swift investit également beaucoup dans l'interopérabilité avec le C++, ce qui signifie qu'il existe un véritable chemin vers l'adoption progressive, et pas seulement des réécritures gigantesques.
Des liens étroits avec Apple ?
Swift a toujours été fortement lié à Apple et à ses plates-formes, mais l'année dernière, on a assisté à une poussée pour que "swiftlang" devienne plus indépendant. (Il se trouve désormais dans une organisation GitHub distincte, et non plus dans "apple", par exemple).
La prise en charge des plateformes autres qu'Apple s'améliore également, tout comme la prise en charge d'autres environnements de développement basés sur LSP.
Que se passera-t-il ensuite ?
Nous ne pouvons pas encore commencer à l'utiliser, car la version actuelle de Swift est livrée avec une version de Clang trop ancienne pour comprendre notre base de code C++ existante. Mais lorsque Swift 6 sortira de la version bêta cet automne, nous commencerons à l'utiliser !
Aucun langage n'est parfait, et il y a beaucoup de choses que nous ne connaissons pas encore. Je ne sais pas si quelqu'un a déjà fait des choses sur le moteur de navigation en Swift, donc nous finirons probablement par avoir un retour d'information pour l'équipe Swift également.
Je suis très enthousiaste ! Nous devons orienter Ladybird vers la sécurité de la mémoire, et la première étape est la sélection d'un langage successeur que nous pouvons commencer à adopter très bientôt. 🤓🐞
Pensez-vous que cette décision est crédible ou pertinente ?
Quel est votre avis sur le sujet ?
Voir aussi :
Ladybird, le projet qui vise à créer un navigateur indépendant, est désormais piloté par une organisation à but non lucratif avec une contribution de 1 million de dollars du fondateur de GitHub
Apple recrute des développeurs de compilateurs pour améliorer l'interopérabilité entre Swift et C++
Sécuriser par la conception : compléter la transition vers des langages à mémoire sûre par des améliorations de la sécurité du code C++ existant, selon Google
Petite histoire sur l'évolution des navigateurs web de 1993 à 2020, de la première guerre remportée par IE, en passant par l'avènement du web mobile