Le passage du logiciel à l’application
Les plates-forme et api permettent à n’importe qui de créer des « applications ». On peut légitimement penser que cette mutation terminologique incarne une conception particulière de notre rapport aux productions numériques. Nous avons vu que la nouveauté des « modèles » du « Web 2.0 » se liait à de vieilles théories économiques. L’application, trop fermée, est définie par O’Reilly comme perdant toujours contre la plate-forme. Que se joue-t-il exactement ici ? Qu’est-ce qui différencie algorithme, programme, logiciel et application ?
L’algorithme désigne une puissance de calcul mathématique. C’est une suite finie et non ambiguë d’opérations et/ou d’instructions permettant de résoudre un problème donné. L’algorithme est dit correct si la solution est juste. Son efficacité est mesurée par la vitesse de résolution, ainsi que par les ressources utilisées par les machines pour l’effectuer. En ce sens, un algorithme est une méthode claire et définie pour calculer un résultat ou effectuer un traitement. L’algorithme doit toujours se terminer sur un résultat précis, dans un temps d’exécution fini. À l’inverse, un programme peut conduire à ce qu’on appelle une boucle infinie, qui ne s’arrête jamais. Ce qui va différencier l’algorithme du programme, c’est que l’algorithme est exprimé dans un langage générique, indépendant d’un langage de programmation particulier. Un programme, comme son nom l’indique, est retranscrit dans un langage de programmation particulier. On peut donc décliner un algorithme dans plusieurs langages de programmation. Tout comme l’algorithme, le programme est une liste d’instructions à réaliser. Le programme est destiné à être effectué par un ordinateur, c’est une liste de tâches. Un programme est un algorithme exprimé dans un langage donné, pour une machine donnée281.
De l’anglais software, le logiciel (de logique) désigne selon le Journal Officiel un « ensemble des programmes, procédés et règles, et éventuellement de la documentation, relatifs au fonctionnement d’un ensemble de traitement de données282. » Le logiciel comprend donc un ensemble de programmes (des algorithmes contextualisés) organisés dans des fichiers et dossiers, le tout accompagné de documentations. Il y a plusieurs types de logiciels :
– Le logiciel de base, plus communément appelé « système d’exploitation ». C’est lui qui fait interface entre le matériel (hardware) et les autres types de logiciels (softwares). Il permet d’allouer des ressources matérielles aux autres types de logiciels. Les plus connus sont Windows, Mac os (propriétaires) et Linux (libre).
– Le logiciel dit applicatif, qui est le type le plus courant. Wikipedia le définit comme « un logiciel dont les automatismes sont destinés à assister un utilisateur dans une de ses activités. » Citons pour exemple Word (traitement de texte), Adobe Photoshop (retouche d’images), iTunes (écoute de musique), etc. Tout comme les logiciels « de base », ils peuvent être propriétaires ou libres. Les termes de logiciel et d’application sont souvent vus comme synonymes, en témoigne l’expression hybride de « logiciel applicatif ».
Le terme d’« App » fait référence à application. Ce diminutif d’Apple est donc à la fois un petit bout de la marque, et autre chose que l’application vue comme strict synonyme de logiciel (une petite application ?). Le terme d’application, dans son acception actuelle, provient essentiellement de l’App Store d’Apple [ Fig. 136 ], mis en place en juillet 2008238, huit mois après la sortie du téléphone iPhone. Partant du constat que les logiciels sont compliqués à installer sur un terminal mobile techniquement limité, Apple va développer un système destiné à simplifier ce processus. La première étape consista à fournir aux développeurs un sdk (« Software Developpement Kit »), kit de développement logiciel qui permet de fixer des normes économiques, esthétiques, techniques et morales. Ces règles (« guidelines284 ») sont scrupuleusement vérifiées par Apple, qui refuse de valider les applications qui ne s’y conforment pas. Les contraintes peuvent notamment porter sur l’ergonomie (obligation d’utiliser au maximum les boutons de base), sur le contenu (pas de contenu à caractère érotique), sur les fonctions (interdiction de dupliquer des fonctions du téléphone), économiques (30% de commission sur toutes les transactions), etc. Il s’agit pour Apple de filtrer scrupuleusement ce qui est proposé dans son magasin (« store » ) pour assurer la cohérence et la stabilité de « l’expérience utilisateur ». Pour développer sur l’App Store, il faut tout d’abord s’acquitter d’une licence de développement à 99€/an qui donne le droit de soumettre ses réalisations (le prix de la licence ne sera pas amorti pour beaucoup de petites structures). Il faut aussi acquérir un ordinateur Apple pour valider le certificat payant et pour pouvoir coder en Objective-C, langage propriétaire. Le kit de développement « logiciel » (sdk) sert à donc à développer des « applications ».
C’est bien ce qui relève de la fermeture de l’environnement de développement et d’installation qui définit l’application. Certes, Windows ou Mac os imposent des contraintes de développement, mais il n’y a pas de comité de validation des contenus ou de prélèvement financier systématique. N’importe qui peut proposer un logiciel Windows ou Linux (libre ou propriétaire) sans rien demander à personne. Ce qui change avec l’application telle que l’envisage Apple, c’est la soumission permanente et l’approbation a priori et a posteriori du processus de création. Cet environnement de conception (aussi appelé écosystème) a évidemment des conséquences directes sur ce qui est produit. On peut ainsi constater que bien souvent les possibilités d’interaction des « apps » sont moins poussées que sur les logiciels, elles sont plus dédiées à des tâches simples. On reste souvent dans le portage (adaptation) de services ou de jeux déjà existants. Peu d’applications tirent vraiment parti des spécificités des appareils mobiles. Citons comme contre-exemples Shazam285 [ Fig. 137 ] (reconnaissance de musique), ou les jeux hybrides des Éditions Volumiques286 [ Fig. 138 ]. Certaines applications (comme celles de mixage de musique) sont même plus complètes que leurs équivalents logiciels, notamment en employant judicieusement les capacités tactiles des terminaux. Malgré des conséquences nuisibles, le modèle des App Store a cependant permis de faire émerger des techniques nouvelles ou peu répandues, qui ont été reprises par les concurrents, comme le paiement simplifié (en un clic) ou la recherche et les mises à jour automatisables. Le modèle applicatif des terminaux mobiles est décliné depuis janvier 2011 sur le système d’exploitation Mac os287, destiné aux ordinateurs fixes ou transportables. Cela signifie que des logiciels existants deviennent des applications.
Le devenir applicatif du logiciel opéré par le Mac App Store entraîne une série de nouvelles restrictions. Citons, en plus des limitations déjà présentes sur l’App Store iPhone et iPad : impossibilité d’y intégrer des logiciels achetés auparavant pour profiter des mises à jour (il faut donc les racheter) ; pas de mise à jour payante depuis un ancien logiciel (il faut racheter une version complète) ; pas de version d’essai (il faut acheter pour pouvoir tester) ; un support technique éloigné (Apple fait intermédiaire avec les développeurs, qui n’ont plus la main sur le code) ; pas de code fonctionnant en arrière-plan une fois l’application fermée (contrairement aux logiciels Apple) ; pas d’accès aux code de bas niveau (ce qui exclue des fonctions type sauvegardes complètes de données) ; pas de duplication des interfaces graphiques développées par Apple (où fixer la limite ?) ; pas de téléchargements d’autres applications dans une application (pour préserver l’exclusivité du dispositif).
Ces services dominants sont uniquement ouverts aux développeurs qui acceptent les restrictions. La place de marché « agrège la banlieue » (O’Reilly) des développeurs en son centre, du moins ceux qui sont prêts à accepter ces règles non-négociables. Elle s’inscrit complètement dans la volonté de démocratisation rentable et intéressée du « Web 2.0 ». Elle modélise la façon dont nous accédons aux programmes, au sens où l’on perd progressivement la possibilité d’avoir d’autres choix. Le dispositif d’Apple pose problème en tant qu’outil dominant et (potentiellement) incontournable. Certains développeurs ne veulent déjà plus perdre de temps à développer une version annexe de leurs logiciels pour les quelques acheteurs qui ne se reconnaissent pas dans l’App Store. Les possesseurs de Mac n’auront peut-être bientôt plus le choix de ne pas passer par elle. Mais que veut-dire « posséder » si j’abandonne une part fondamentale de mes possibilités à une instance non réglable ? Jusqu’où cette façon de faire du numérique orientée vers une fluidification des usages ne remet-elle pas en question la possibilité même d’un Web pleinement travaillable ?
-
281
Chez Alan Turing, on peut déjà parler de « programme » au sens où le langage mis en place ne s’applique qu’à sa machine éponyme. Ce qui est spécial, c’est que sa machine entend démontrer par un langage de programmation si telle ou telle fonction est ou non calculable. ↩
-
282
« Commission Générale de Terminologie et de Néologie, répertoire terminologique 2000 ». ↩
-
283
L’App Store est annoncé par Steve Jobs dans sa keynote (présentation de produit) du 6 mars 2008. ↩
-
284
« ios dev center », Apple.com. ↩
-
285
Shazam : « Shazam is the best way to discover, explore and share the music and TV you love. » ↩
-
286
B. Duplat, É. Mineur, Éditions Volumiques : « Les éditions volumiques sont une maison d’édition dédiée au livre en papier considéré comme une nouvelle plateforme informatique, ainsi qu’un laboratoire de recherche sur le livre, le papier et leurs rapports avec les nouvelles technologies. » ↩
-
287
On retrouve aussi des App Store dans Google Chrome, Windows Phone, Windows 8 (février 2012), etc. ↩