• [^] # Re: Dépendances

    Posté par . En réponse au journal Port de taptempo en Rust. Évalué à 2.

    Je pense que la comparaison est bonne, oui, ça ressemble à NPM dans le sens où on a plein de petits paquets interdépendants. En fait, c'est même considéré comme idiomatique de découper les grosses libs en crates plus petits, voir par exemple le graphe des dépendances de piston_window qui est un crate pour développer des jeux vidéos.

    Il existe cependant quelques différences importantes :
    - La bibliothèque de crates, crates.io, est officielle et maintenue par la communauté Rust, tandis que NPM n'est qu'un gestionnaire de paquets parmi d'autres, et n'est pas lié à ECMAScript.
    - On ne peut pas modifier ou supprimer un crate publié sous une version. Si je publie mon crate foobar dans sa version 0.1, je ne peut plus le modifier ou le supprimer. Si je veux changer mon crate, je dois publier une version 0.2, sachant que la version 0.1 sera toujours disponible pour la rétrocompatibilité.

    L'autre problème est celui des licences, et effectivement, ça peut être assez labyrinthique. C'est à chaque développeur de faire attention à ce qu'il utilise et à ne pas violer de licence. Mais finalement, le problème est le même quelle que soit la façon de procéder. Quand on inclut une bibliothèque dans un projet C++, on doit aussi faire attention à la licence, même si le téléchargement et la compilation de celle-ci ne se fait pas automatiquement à travers l'outil de build.

    Ce commentaire est libre de droit, vous pouvez le réutiliser comme bon vous semble.