Symbolibre est un projet axé entièrement sur les calculatrices graphiques et le logiciel libre. Mais à quoi sert exactement le logiciel libre pour que nous lui dédiions une calculatrice entière ?
Une histoire de liberté
Fondamentalement l'idée du logiciel libre est de donner un maximum de liberté aux utilisateurs. Contrairement aux idées reçues, ça ne veut ps forcément dire qu'un logiciel libre doit être gratuit, même si c'est souvent le cas. (En anglais, la confusion est encore pire puisque « logiciel libre » se dit traditionnellement "free software"). C'est le sens du mot « libre » dans Symbolibre.
Tout logiciel libre vient avec quatre libertés fondamentales:
- Utiliser le logiciel pour tout usage.
- Étudier le logiciel, y compris faire de la rétro-ingénierie.
- Redistribuer le logiciel et en créer de copies.
- Modifier le logiciel et redistribuer les versions modifiées.
Cela peut paraître évident, mais ces libertés ne sont généralement pas acquises. Les calculatrices graphiques de votre constructeur préféré ne vous autorisent probablement pas à soumettre les binaires à rétro-ingénerie ou à redistribuer des copies du système d'exploitation.
Avec le temps, le modèle libre s'est imposé comme un philosophie de développement logiciel solide, et a produit de nombreux logiciels, des systèmes d'exploitation (par exemple GNU/Linux) aux bibliothèques cryptographiques (comme OpenSSL et LibreSSL) en passant par des systèmes de développement ultra-portables (comme Qt) et à peu près tout logiciel communément trouvé sur un ordinateur... ou une calculatrice.
L'objectif de Symbolibre est de montrer que ce modèle libre s'applique tout aussi bien aux calculatrices graphiques, un produit qui embarque souvent du code propriétaire et veillissant à cause d'un manque de concurrence et d'efforts de développement. Notre but est de concevoir une calculatrice que vous pouvez assembler, utiliser, améliorer et étudier à volonté : en d'autres yermes, un outil que vous possédez vraiment.
Le modèle de contribution open-source
Le logiciel libre est souvent distribué suivant le modèle open-source, qui consiste à publier le code source et (la plupart du temps) à interagir avec les utilisateurs pour identifier des problèmes et améliorations à apporter au logiciel.
Parenthèse: Le logiciel libre ne requiert l'accès aux sources que pour les utilisateurs (qui ne sont, pour un logiciel payant par exemple, que les personnes l'ayant acheté), et n'implique donc pas que le logiciel est open-source. De même, un logiciel open-source peut être distribué sous des conditions incompatibles avec les libertés fondamentales et donc ne pas être du logiciel libre. Les deux concepts sont différents : il se trouve seulement que beaucoup de logiciels publics (comme ceux qu'on trouve sur GitHub) sont les deux. C'est une confusion classique.
Quelques aspects courants des logiciels open-source sont la capacité pour les utilisateurs de signaler des problèmes et de soumettre des « pull requests », un terme sophistiqué pour désigner une proposition de modification du code. Les plateformes de développement se sont beaucoup adaptées à ces techniques avec le temps, ce qui fait de l'open-source un mode de développement tout à fait compétitif.
Bien sûr, rien n'est parfait, et les logiciels libre et open-source ont aussi des inconvénients. Les petits et moyens projets sont souvent gérés par une seule personne (une poignée au mieux), et peuvent cesser d'être maintenus si les auteurs ne peuvent plus assurer la charge de travail. Lorsque la vision des contributeurs diverge de celle des auteurs, il est aussi très tentant de créer une copie du projet pour travailler sur une version dérivée (un « fork »), ce qui divise l'effort de développement et augmente le risque qu'une version ne soit plus maintenue. Et comme autant de ressources sont publiques, il est plus difficile d'en tirer un modèle économique (peu de gens achèteront les binaires d'un logiciel qu'ils peuvent compiler eux-mêmes).
Dans l'ensemble, les logiciels libres et open-source encouragent les utilisateurs à s'approprier les programmes. Nous pensons que c'est on ne peut plus naturel pour un outil éducatif d'adhérer à ces philosophies, et d'inciter les étudiants à explorer le fonctionnement d'une combinaison somme toute complexe d'électronique et de logiciel.
La différence entre Symbolibre et Numworks
Cet article est une bonne occasion de répondre à une question commune. Durant le projet, beaucoup de personnes nous ont demandé : "Numworks ne le fait-il pas déjà ?"
Eh bien... plus ou moins. Numworks publie son code source (principalement son système d'exploitation Epsilon) sous une license assez permissive et échange avec sa communauté à son sujet, et c'est tout à son honneur. En tant que produit fini qui concurrence directement les modèles établis, la société prend le parti de la transparence et on apprécie cette position qui montre bien qu'un programme n'a pas besoin d'être privé pour être bon.
Cela étant dit, le code source d'Epsilon est publié sous la license CreativeCommons BY-NC-SA, qui autorise les modifications et la redistribution, mais pas les usages commerciaux — on ne peut donc pas construire de calculatrice avec. Le but de Numworks n'est pas de créer un logiciel libre ; la société prône la transparence mais Epsilon reste son produit. Ça se voit dans le contrat de license (CLA, en anglais) que les contributeurs doivent signer, où ils lèguent à Numworks leur propriété du code avant qu'il ne soit intégré au logiciel.
Ultimement, leur modèle de développement n'est pas vraiment open-source (et surtout pas libre). Bien que les développeurs acceptent régulièrement des corrections de bugs et quelques fois des nouvelles fonctionnalités, seul le code des versions majeures est public, et de nombreuses contributions communautaires sont déclinées. Même des corrections majeures restent parfois longtemps dans les sources privées (on pense aux crashs d'émulateurs Android et à des bugs Python). Cela a conduit les utilisateurs à créer leur fork d'Epsilon, Omega. C'est parfaitement raisonnable du point de vue technique, mais nécessite que la communauté maintienne ses fonctionnalités à jour à chaque nouvelle version d'Epsilon, avec peu ou pas d'aide de l'équipe Numworks (le code d'Epsilon n'ayant aucune garantie de stabilité et très peu de documentation).
Et puis il y a l'autre idée derrière Symbolibre : créer une calculatrice graphique qui soit moderne à la fois au niveau matériel et logiciel. Sur cet aspect-là, Numworks ne brille pas plus que ses prédécesseurs. Leurs caractéristiques techniques annoncent seulement 256 Kio de RAM, ce qui impose des limites très dures comme la mémoire de travail Python de 32 Kio. Je n'ai pas été surpris d'apprendre qu'ils ne pouvaient pas se permettre d'allouer les arbres d'expressions dans le tas.
Ce type d'environnement matériel et logiciel limité (systèmes d'exploitation personnalisés compris) a coûté à Casio et TI des mois de travail pour porter MicroPython lorsque Python est apparu dans les programmes de lycée (Numworks l'a toujours supporté mais est tout autant limité dans son ensemble de fonctionnalités et modules disponibles). Il ne faut pourtant que quelques minutes pour installer l'interpréteur standard python3
et tous ses modules sur notre système GNU/Linux.
Dans l'ensemble, même si nous reconnaissons à Numworks le mérite de publier leur code et d'interagir avec leur communauté, nous pensons qu'il y a encore beaucoup de progrès à faire en termes de liberté et de modernité dans les calculatrices graphiques.
Conclusion
Le logiciel libre est une philosophie unique qui donne à ses utilisateurs le plus de liberté possible. Elle est souvent combinée au modèle open-source qui permet aux utilisateurs de contribuer au logiciel des informations, des idées et du code.
Ces deux philosophies ont été historiquement inexistantes dans le monde des calculatrices graphiques. Depuis 2017, Numworks les a mises en valeur de façon ambiguë en n'adhérent à aucune tout en ressemblant aux deux. Symbolibre adhère sans équivoque aux deux, et nous nous attachons à montrer en quoi cela sert les utilisateurs et les outils éducatifs. 😀
Merci beaucoup aux membres de l'équipe Omega, RedGl0w and Quentin (ainsi que d'autres contributeurs Omega !) pour m'avoir expliqué les subtilités du modèle de développement de Numworks et s'être assurés que cet article soit aussi juste que possible.
Commentaires
De Ne0tux le 12 Février 2021
Merci pour cet article qu'on sent écrit avec passion.
Symbolibre n'a pas vocation à ma connaissance à produire puis distribuer en grande surface tout en rémunérant une équipe, comme le fait Numworks. Des choix de production ont été faits, dans le but de proposer un produit relativement stable (testé en tout cas) tout en prévenant a minima les copies hardwares/softwares. Le modèle économique n'étant pas le même, il me parait naturel que la philosophie soit différente. Les points communs sont déjà très positifs !
Le passage sur les capacités hardwares semble en décalage avec le sujet de l'article. Même s'il est intéressant, il montre une volonté d'opposer Symbolibre et Numworks. A titre d'illustration des paragraphes précédents, le face à face est pertinent, mais certains détails concernant l'écoute de la communauté, l'intégration des proposition et l’absence de bugs etc me semblent "de trop". Ou en tout cas pousseront à regarder ce qu'il en sera côté Symbolibre.
Du reste, lorsqu'il est simplement question de libre, on sent que le projet est fondamentalement encré dans cette philosophie. Ça fait plaisir !
De Sébastien Michelland le 12 Février 2021
Merci ! En effet, les méthodes de conception de Symbolibre et Numworks sont très différentes. Cet article n'a pas de vocation à attaquer Numworks, il s'agit plus de montrer aux lecteurs non familiers avec le logiciel libre ce qu'une communauté peut désirer que Numworks n'accomplit pas.
Plusieurs personnes qu'on a rencontrées contemplaient Numworks en se disant « tout y est du coup ? », et... cet article a pour du but d'expliquer que pas tout à fait. Cette « opposition », dans l'esprit où j'ai écrit l'article, est surtout pour donner à Symbolibre un caractère qui échappe à l'argument de « Numworks le fait déjà ».
Les points communs ne sont que des raisons de réjouir ; il me semble simplement important de s'attarder une fois sur le caractère unique de chaque projet pour éviter les ambiguïtés. Promis, ce ne sera pas un motif récurrent. 😀
Soumettre un commentaire
Les commentaires sont relus avant d'être publiés, pour éviter le spam.