Je sais, MAIS, concrètement, combien de pourcents des utilisateurs ont les compétences pour coder eux-mêmes la fonction dont ils ont besoin ?
Cela m’inspire plusieurs choses.
(1) Pragmatiquement, il y en a peu. Mais comme je l’ai mentionné, cela suffit à donner une pléthore de contenu intéressant.
(2) Si on ne maîtrise pas, on peut payer pour faire coder ce que l’on désire. Le but du libre est de faire en sorte que cela soit possible… pas forcément que cela soit gratuit.
(3) Demandons nous pourquoi les gens ne savent pas coder. Est ce vraiment si compliqué ? Au fond, les os modernes n’ont t’ils pas tout fait éloigner les gens du codage ? Cela n’a pourtant pas toujours été comme ça. Mais les Os libres tentent de diminuer cette difficulté, même s’il est difficile d’inverser les choses du jour au lendemain.
De plus, dans certains logiciels propriétaires (je pense à la suite Office notamment), on a la possibilité d’utiliser un langage de macro (VBA chez MS), alors, je sais ce n’est pas aussi puissant que du C / C++ / Python ou autre, mais cela permet déjà de faire certaines choses de manière assez simple.
Je vous recommanderais plutôt un bon langage de programmation couplé à une bonne base de données que de bricoler à coup de macro dans une suite bureautique. Et cela, qu’elle soit libre ou propriétaire.
Tout informaticien digne de ce nom vous confirmera que l’informatique d’une entreprise construite à coup de spaghettis de feuilles de tableur et de macro, c’est le mal absolu, le boss de fin de niveau.
Quand vous dites « faire certaines choses de manière assez simple », il faut comprendre qu’en informatique, la simplicité c’est à double tranchant. Dans un choix de la simplicité aujourd’hui vous pouvez creuser une jolie tombe de complexité pour demain. A l’inverse, se prendre la tête aujourd’hui pour éviter des complexités demain peut éviter bien des soucis.
Vous voulez un bel exemple plus courant qu’on ne l’imagine : Un utilisateur qui se prends pas la tête, qui ne fait pas de sauvegarde (peu importe qu’il ne sache pas ou qu’il soit laxiste). Et paf, 5 ans de boulot perdu, tout à recommencer.
Parce que selon ce que tu veux faire, un logiciel commercial peut largement suffire et si au pire il faut ajouter quelques trucs, il est fréquent que l’on arrive a se débrouiller en VBA et dans ce cas, il n’y a pas besoin non plus de se farcir des années d’études en C (ou autres) et de se plonger dans une doc rebutante (et en anglais dans 95% des cas.
Cette idée fut très à la mode dans les années 90 et 2000. Mais il faut bien comprendre que si d’autres outils plus « traditionnels » sont revenus en force, c’est qu’il a de bonnes raisons.
Encore une fois, la facilité immédiate est une chose, ce à quoi l’on abouti après quelques années d’empilement en est une autre.
Ajoutons que si les macro en VBA (ou d’autres langages) permettent d’ajouter quelques fonctionnalités à un soft, le fait de posséder la source permet de faire bien plus. En particulier de corriger des bugs, ce qui est primordial quand cela bloque un projet . Et aussi le fait qu’il est parfois utile de pouvoir vraiment tout faire en terme de modifications dans un soft.
Parce que modifier le code source d’un logiciel c’est très vite hors de portée des utilisateurs lambdas même avancées, perso, c’est un truc que je ne me sentirais pas de faire, déjà parce que je n’ai ni le temps ni l’envie de suivre des années de cours pour pouvoir ajouter deux boutons ou trois fonctions qui feraient pile poil ce que je voudrais.
Modifier un logiciel est plus ou moins compliqué. Cela dépends beaucoup du logiciel et de la modification que l’on veut faire.
Mais en effet, de nos jours, pour un utilisateur lambda, c’est une chose très difficile, voir impossible.
La raison, n’est pas compliquée : c’est parce que les utilisateurs ne touchent jamais à la programmation et donc qu’ils n’acquièrent jamais ce savoir faire, ni l’expérience nécéssaire.
Mais ils ne touchent jamais à la programmation parce que des gens ont décidé que l’utilisateur devait rester derrière la barrière et devaient laisser la programmation aux « vrais professionnels ».
Donc au final, c’est le serpent qui se mords la queue.
Pour comprendre comment nous en sommes arrivé la, il faut comprendre qu’a une époque, il fallait démocratiser l’informatique et réussir à toucher une population qui avait peur pour lui fourguer des produits.
Pour combattre cette peur est venu le marketing axé sur la simplicité. Et l’obsession de virer tout ce qui pouvait être perçu comme étant compliqué.
L’énorme problème, c’est que plus on enlève de la difficulté, moins cela pousse les utilisateurs à apprendre et à comprendre comment ça fonctionne. Ce qui conduit à les rendre plus vulnérables aux difficultés… et par conséquent à devoir simplifier toujours plus. C’est un cercle vicieux.
Le seul langage que j’ai plus ou moins « maitrisé » (j’ai mis des guillemets, je n’ai pas la prétention d’avoir fait de grands trucs avec) c’est vb.net (oui, je sais, tu vas sans doute me sortir que les « vrais » codent en C, etc.), je me suis fait quelques outils sympas dont j’avais besoin avec, mais par contre, il n’y a pas, C, je n’y pige que dalle et je n’ai pas envie, là encore de m’imposer des mois d’études pour arriver à créer deux boutons).
Un langage de programmation comme le basic fait déja beaucoup pour comprendre les bases de la programmation. Pour moi, cela n’a rien d’un langage « pas vrai ». Il y a de bien meilleurs candidats au titre de pire langage.
Mais il est certain que les logiciels sont souvent codés en C/C++ pour des raisons d’efficience. Et donc, pour modifier des logiciels, il faut comprendre ce langage.
Ce qui pose de grosses difficultés dans l’apprentissage du C tient à ses aspect de manipulation « bas niveau ». Rien de sorcier, juste que le piège courant est d’essayer de comprendre ce langage sans apprendre d’abord les bases qui permettent de comprendre ses abstractions.
Il faut comprendre que le C fut crée pour remplacer l’assembleur. Cela explique pourquoi il vaut mieux commencer par de l’assembleur et un peu d’architecture du matériel. C’est ce qu’on faisait à une époque. Il y a 40 ans ou on voyait des mioches de 12 ans arriver à coder de l’assembleur sans aucun enseignement sur du 6502, du Z80 ou les 68xx. Des trucs comme les C64 étaient de bonnes écoles pour comprendre le matériel, le logiciel et se constituer des solides connaissances en très peu de temps et un minimum d’effort.
je n’ai pas envie, là encore de m’imposer des mois d’études pour arriver à créer deux boutons).
Et entre faire un petit « machin » tranquillou dans un coin et modifier un gros projet pour y ajouter des fonctions, il y a un monde de différences.
Parce qu’il faut pas l’envisager d’emblée comme ça. Se prendre la tête pendant des mois, surtout pas. Il faut vraiment apprendre dans le temps, en s’amusant, petit à petit en mettant les pieds dans les bons étriers. Et surtout ne pas se fixer des objectifs d’emblée, parce que c’est juste le meilleur moyen de se casser les dents.
Au départ, faire des trucs un peu ludiques, pas compliqué et qui sont gratifiant, comme bidouiller avec les arduino, même s’il n’y a rien d’idéal aujourd’hui.
Je vais faire un parallèle avec l’automobile :
Beaucoup de gens conduisent leur voiture, bien moins la réparent par eux-même, est-ce que ce fait détermine pour autant le fait que ceux qui confient la réparation de leur véhicule à un garage sont de mauvais conducteur de fait (sans tenir compte de la conduite elle même) ?
Il me semble qu’il serait malhonnête de répondre oui.
L’automobile est un objet complexe, mais qui se pilote simplement parce qu’elle réalise substantiellement des actions très simples : accélérer, freiner, tourner.
L’ordinateur est un objet très complexe ET qui est très complexe à piloter parce qu’il peut réaliser une infinité d’actions et de combinaisons d’actions d’une énorme complexité.
C’est simple, demandez vous qui a inventé l’idée que l’on pourrait utiliser un ordinateur de manière aussi simple qu’une voiture. Demandez vous quels étaient les intérêts de ces personnes. Par exemple, avaient t’ils des produits à vendre ?
Je le redis, la plupart des utilisateurs d’ordinateurs se moquent de savoir si les softs qu’ils utilisent sont libres ou proprios, parce qu’ils veulent utiliser leurs outils pour faire ce qu’ils ont a faire.
Bien sûr, mais est ce pour autant que c’est une bonne chose ? Il faut comprendre que les licences sont des contrats, parfois très complexes. Et il ne faut pas se voiler la face, le fait que la plupart des gens ne les lisent pas… n’est pas sans conséquences. Les multinationales y mettent presque tout ce qu’elles veulent. Et ne se privent pas d’en profiter. D’autant que le législateur peine à suivre et que ces conditions changent tout le temps.
Les licences libres sont beaucoup plus simples … et infiniment plus saines.
Alors certes, un logiciel proprio a des limites (comme tous les logiciels) et dans ce cas, on ne peut pas le modifier pour en faire ce qu’on veut, mais quoi ? Est-ce que du coup, cela fait de ses utilisateurs des idiots ?
Non, ce n’est pas ce que je pense. Je ne considère pas que l’on soit idiot parce que l’on ne maîtrise pas tel ou tel savoir. Pour avoir travaillé tout en bas de l’échelle, j’ai connu des gens qui ne savaient ni lire, ni écrire, mais qui avaient une grande intelligence et m’ont appris énormément de choses. L’intelligence ou la culture ne se résume pas à un savoir unique. C’est plutôt une démarche, une curiosité.
Cela étant dit, il faut quand même réaliser que les ordinateurs sont partout. Et il faut comprendre une chose à leur sujet : ce sont des monstres de complexité. Et si ce n’est pas vous qui contrôlez ce qui se passe dans votre ordinateur, c’est quelqu’un d’autre qui le fera. Et pas forcément dans votre intérêt comme les actualités récentes commencent à le démontrer.
Je reviens sur ton discours à propos du logiciel libre, je le trouve contre productif, dans la mesure où selon moi on peut souhaiter utiliser des logiciels libres (pour diverses raisons) sans souhaiter devenir développeur système senior et sans se frapper des centaines de lignes de code ou encore faire une compil à la mano (oui, je l’ai fait pour certains soft et oui, c’est intéressant, mais cela peut-être hyper reloud pour la gestion - entre autres - des dépendances).
Je peux comprendre qu’actuellement, il soit difficile d’imaginer un état intermédiaire entre l’utilisateur et le développeur. Mais cet état était courant il y a plusieurs décénnies.
Comme je l’ai expliqué plus haut, des générations de système d’exploitation ont progressivement accentué le clivage pour arriver aujourd’hui à un état bien séparé.
Ce qui change dans le libre, c’est qu’il y a des gens qui travaillent pour essayer de rendre les choses plus accessibles de ce côté. Donc pour réduire cette distance. Il y a des choses qui progressent dans le but de rendre la programmation moins élitiste.
C’est assez paradoxal : Tu conseilles l’achat d’un truc proprio ultra fermé dont on n’a pas les sources alors même que tu tapes sur les logiciels propriétaires pour ces mêmes raisons …
Oui, car il faut être pragmatique. Pas faire de l’idéologie pour de l’idéologie. Le libre n’est pas une religion, c’est quelque chose vers lequel on va parce qu’objectivement, c’est une meilleur logique.
Donc, que vaut t’il mieux ? Acheter un lecteur DVD fermé et profiter d’un environnement libre sur son ordinateur ? Ou avoir un ordinateur avec un Os propriétaire juste à cause d’un lecteur de DVD… qui aura un firmware tout aussi fermé et propriétaire.
Après, c’est un débat qui existe dans le libre : même si tout le monde le souhaiterait, il est encore difficile d’obtenir que tous les firmwares soient libres. Mais tout le monde dans le libre ne partage pas les mêmes opinions à ce sujet.