• [^] # Re: Support rust

    Posté par (site web personnel, Mastodon) . En réponse à la dépêche 25 ans de GIMP et version de développement 2.99.2 : premiers pas vers GIMP 3 !. Évalué à 10.

    Théoriquement c'est déjà possible car notre système de binding utilise GObject Introspection et il y a déjà un système de binding pour Rust. D'ailleurs quelqu'un avait déjà essayé de le faire (c'est aussi celui qui a fait le binding Vala). Je crois qu'il a mis le sujet en pause et ne sais pas s'il compte relancer ce projet.

    Dans tous les cas, ce serait bien un binding qui permet d'écrire en Rust mais qui appelerait la libgimp en C derrière. Vraisemblablement exactement ce que les dévs de Rust appellent du code unsafe. Et ça, ça changera pas, sauf si on se mettait à avoir un développeur de longue durée qui décidaient d'entièrement réimplémenter la libgimp en rust et surtout de la maintenir (pas de nous lâcher le code et byebye).

    Ce serait un boulot bien plus énorme que nos bindings à l'ancienne (qui sont eux même bien plus de travail que les nouveaux bindings grâce à GObject Introspection). Or on l'a vu avec ces anciens bindings. Ils finissent peu (voire pas du tout) maintenus avec le temps, remplis de bugs, avec une logique propre (donc problèmes de cohérence) et avec énormément de fonctionnalités manquantes.

    Perso je conseillerais donc à ceux qui veulent un libgimp rust de faire un binding GObject Introspection et d'accepter le unsafe. Au moins ils auraient un binding facile à maintenir, qui a toutes les fonctionnalités et les corrections de bugs à apporter profiteraient à tous, quelque soit son langage de prédilection. 🙂

    Film d'animation libre en CC by-sa/Art Libre, fait avec GIMP et autre logiciels libres: ZeMarmot [ http://film.zemarmot.net ]