Lorsque Mickaël me demande lors d'un billet précédent ce qui m'a poussé vers Android comme plateforme pour mon téléphone, je me dis que la réponse est assez complexe car le résultat d'une série de considérations et un vécu personnel au contact de l'outil informatique.

Et l'on va pour cela commencer par remonter quelques trente années. À ce moment là, l'ordinateur est bien éloigné de ce qu'il est à présent. Pourtant, il sert aux même choses : aide au travail (calcul, traitement de texte), enseignement, communication, jeux. Il y a beaucoup de machines de types différents, peu de normes, l'informatique se détache tout juste de l'électronique et il y a une chose qui est certaine : programmer fait partie de l'utilisation de l'ordinateur. Ce n'est pas une obligation, l'outil peut être utilisé sans, mais tout magazine informatique contient sa partie programmation et tous les ordinateurs (ou peu s'en faut) sont livrés avec un moyen d'être programmé.

Cet ordinateur, lorsqu'il est personnel, est un outil que l'on peut utiliser et bricoler dans son intégralité. Construire le sien était un hobby accessible [1].

La première machine que j'ai eu livrée sans moyen d'être programmée était un Atari STe. Une incompréhension pour moi à l'époque, qui avait fait qu'en même temps que la machine, j'avais acheté le GFA Basic.

Puis, progressivement, le nombre de systèmes a diminué et le principal qui commence alors à s'imposer, Windows 3.1, ne fourni pas de moyen d'être programmé. Le BASIC livré avec le DOS (Windows est alors une surcouche du DOS) disparaît tout à coup.

C'est à ce moment là que j'entends parler de Linux. J'avais découvert les systèmes Unix entre temps, un Unix à installer chez soi, ça me semblait plutôt pas mal. Et FreeBSD, vers la même époque, demandait trop à mon PC. Ne pas pouvoir me servir pleinement de ma machine me rebute, je vire Windows 3.1 et j'installe un Linux. Double bonheur, je peux exploiter mon ordinateur comme je l'entends et le système de base l'exploite mieux.

Arrive Windows 95. Pas de possibilité de programmation livré avec, des performances catastrophiques sur une machine qu'un copain me prête, des capacités en réseau proche du néant. J'ai l'impression que, sous couverture d'être simple pour l'utilisateur, la machine échappe à l'utilisateur qui veut s'approprier son outil. En parallèle, j'ai l'occasion de donner quelques cours d'informatiques qui me montrent que pour le moment, aucun des systèmes ne se met réellement à la hauteur d'un utilisateur néophyte. Les distributions Linux n'essaient pas vraiment, et Windows ne fait que le clamer sur les dépliant publicitaires. Mes élèves ont déjà assez de mal avec le concept de pointeur souris. Je ne vois donc pas d'intérêt à lâcher ma liberté d'utilisation de mon PC pour la promesse d'une utilisation plus facile.

Cette notion continuera à se fortifier au fil des années : j'ai un outil qui me sert à produire des choses, qui m'aide dans mon travail ou qui me fourni des loisirs. Je tiens à garder le contrôle de cet outil, je ne veux pas que l'on m'en ferme des parties arbitrairement et, si je choisis d'utiliser un logiciel qui me cache ce qu'il fait, je veux que cela soit mon propre choix en fonction de la confiance que j'accorde au fournisseur.

De nos jours, beaucoup de fournisseurs de services ou de logiciels voudraient fermer le fonctionnement de la machine à leur utilisateur. En façade, la raison est la facilité d'utilisation ou chez les plus retords, l'assurance d'une « expérience de qualité » [2].

Chez Windows, il n'y a toujours pas possibilité de programmation avec l'ordinateur seul. En fait, jusqu'aux versions les plus récentes, il n'y avait pas beaucoup de possibilités. Heureusement, le développement d'Internet permet, via des sites spécialisés, d'équiper rapidement, facilement et librement sa machine de programmes en fonction des besoins.

Chez Apple côté bureau avec MacOS-X, le système est installé avec Python et des outils de développement sont fournis et installables. Ce n'est pas écrit en gros sur la plaquette, mais pas en petit non plus. Apple vend un système qui se programme. Certaines parties sont restent fermées.

Chez les différents revendeur/packageur de Linux, programmer ou même modifier son système sont des utilisations permises, documentées et naturelles. Elles ne sont pas mises en avant dans les grandes distributions (Ubuntu par exemple), mais elles sont là. L'utilisateur peut, s'il le souhaite, faire ce qu'il veut de son système. Et s'il ne le veut pas, ce n'est pas nécessaire non plus. Il a acheté son PC, il y a installé un système : il est libre de faire ce qu'il veut de son outil.

Puisque les ordinateurs personnels semblent pouvoir échapper à des enfermements de l'utilisateur et puisque les utilisateurs se tournent de plus en plus vers des solutions mobiles (Smartphones et Tablets) pour leur utilisations courantes, c'est sur ce terrain que se joue à présent la bataille qui oppose, grossièrement, d'un côté ceux qui veulent garder un contrôle sur le logiciel et le matériel, au dépend de l'utilisateur mais en lui présentant ce système comme un avantage et de l'autre ceux qui considère qu'un outil aussi versatile que les outils informatiques ne doit pas être limité arbitrairement.

Dans le camp fermé, il est difficile de programmer son propre matériel (il est nécessaire d'obtenir un sésame, payant, pour devenir développeur). Il est parfois interdit d'y installer ce que l'on veut sans passer par une plateforme centralisée. Pour contre balancer cette forte limitation, le fournisseur du matériel (qui est aussi le contrôleur/censeur du logiciel qui pourra être installé) va tabler sur une grosse logithèque. Côté développeurs, ils promettent une rétribution (potentielle) qui rentabilisera rapidement le coût d'entrée pour attirer un maximum d'entre eux. Côté utilisateur, ils promettent que l'application dont ils auront besoin sera forcément disponible. À vrai dire, il y en aura probablement trop, ce qui permettra à la plateforme centralisée de jouer sur la visibilité des applications pour en avantager certaines.

Dans le camp ouvert, ce système est incompréhensible. Si je suis moi même développeur et que je fais une application pour mes propres besoins, pourquoi irai-je payer une société tierce pour installer mon programme sur mon matériel ? Et que je sois ou non développeur et que je veux installer telle application, sans que celle-ci passe par le filtre d'une société tierce, car je considère qu'elle n'a pas à savoir ce que je fais de ma machine, ni même qu'elle me donne son avis sur cette utilisation, pourquoi en serais-je empêché ?

C'est là que je fais la différence entre un outil de consommation, qui met en avant l'intérêt de l'outil par le catalogue disponible à l'achat, très étoffé mais qui par ses diverses restrictions entrave la liberté de l'utilisateur (et donc sa liberté à produire quelque chose), et l'outil de production, qui ne met pas d'entrave à l'utilisation de l'outil, laissant l'utilisateur décider de ce qu'il en fera.

C'est tout cela qui m'a amené à choisir Android comme système pour mon smartphone. À un bouton prêt dans la configuration, le système permet d'être utilisé en mode de développement. À un autre bouton prêt, l'utilisateur signal au système qu'il l'autorise à installer des applications qui ne passe pas par la plateforme officielle. Notez bien : l'utilisateur autorise le système à effectuer une opération ! Et non pas le contraire (le système autorise l'utilisateur), comme il est d'usage dans les systèmes fermés.

Il y a une petite ombre au tableau cependant : les smartphones ne sont généralement pas complètement ouverts. Lorsqu'ils sont livrés par un opérateur téléphonique, cet opérateur ne donne pas l'accès au cœur du système. Généralement, cette limitation peut être levée, mais pas officiellement. Chez certains constructeurs, comme Motorola, quelques smartphone ont des parties chiffrées qui empêchent cet accès au cœur du système.

Il reste donc un peu de chemin à parcourir, dans le sens de l'ouverture, bien entendu.

Notes

[1] cette pratique existe toujours (voir par exemple), mais plus sous la forme de défis personnels ou de projets étudiants.

[2] autre façon de dire : ne venez pas nous ennuyer avec vos problèmes en SAV.