Des routes et des ponts (5) – vers l’open source

Voici un nouveau chapitre de l’ouvrage de Nadia Eghbal Des routes et des ponts que le groupe Framalang vous traduit semaine après semaine (si vous avez raté les épisodes précédents). Elle brosse un rapide historique qui permet de distinguer Libre et open source puis établit une liste d’avantages du code dont les sources sont ouvertes et librement modifiables.

Une rapide histoire des logiciels publiquement disponibles et de leurs créateurs

Traduction Framalang : goofy, Julien/Sphinx, jums, xi, woof, Asta, Edgar Lori, jbm, Mika, penguin

Bien que nous ayons utilisé l’expression « free software » pour désigner des logiciels qui ne coûtaient rien à leurs utilisateurs, il faudrait plutôt employer l’expression « logiciel libre ». Cette expression aux riches connotations fait référence en particulier aux propriétés des licences avec lesquelles les logiciels sont publiés. Les partisans du logiciel libre soulignent le fait que « free » doit être compris sous l’angle de la liberté politique et non sous celui de la gratuité. Parfois, c’est le terme espagnol « libre » qui est utilisé pour marquer cette distinction (à la différence de « gratis » qui signifie gratuit).

Pendant les années 1970, lorsque les ordinateurs n’en étaient qu’à leurs balbutiements, les développeurs devaient construire leurs propres ordinateurs et écrire eux-mêmes des logiciels adaptés. Les logiciels n’étaient pas encore standardisés et n’étaient pas considérés comme des produits rentables.

En 1981, IBM a présenté le « IBM PC » pour « Personal Computer » (N.D.T. « ordinateur personnel »), qui a permis au grand public d’accéder au matériel informatique. En quelques années, les ordinateurs construits sur mesure tombèrent en déclin au fur et à mesure que tout le monde adoptait le standard IBM. IBM est ainsi devenu l’ordinateur le plus présent au sein d’un marché fortement fracturé : en 1986, IBM avait conquis plus de la moitié du marché des ordinateurs personnels.

Avec la venue de matériel standardisé est apparue la possibilité de créer des logiciels standardisés. Soudain, tout le monde avait pour objectif de créer un business autour des logiciels. IBM a engagé une société inconnue à l’époque sous le nom de Microsoft pour écrire le système d’exploitation de son nouveau PC. Ce système d’exploitation, MS-DOS, fut publié en 1981. D’autres sociétés lui emboîtèrent le pas, proposant des logiciels sous licences commerciales. Ces licences empêchaient l’utilisateur de copier, modifier ou redistribuer les logiciels.

Il existe encore aujourd’hui de nombreux logiciels propriétaires comme Adobe Photoshop, Microsoft Windows, ou GoToMeeting par exemple. Alors que ces programmes propriétaires peuvent générer du profit pour les entreprises qui créent et distribuent ces produits, leurs restrictions limitent leur portée et leur diffusion. Toute modification apportée au design ou à la conception du programme doit provenir de l’entreprise elle-même. De plus, les logiciels propriétaires sont chers, ils coûtent souvent plusieurs centaines de dollars et n’autorisent l’acheteur dûment identifié à utiliser qu’une seule et unique copie.

Naturellement, certains informaticiens se sont sentis préoccupés par la direction fermée et propriétaire que prenaient les logiciels, estimant que cela nuisait au véritable potentiel du logiciel. Richard Stallman, un programmeur au laboratoire d’intelligence artificielle du MIT, a particulièrement ressenti la nécessité pour le logiciel d’être libre et modifiable.

Au cours des années qui suivirent, comme plusieurs de ses collègues se mettaient à travailler sur des projets de logiciels propriétaires, Stallman a estimé qu’il ne pouvait ignorer la situation plus longtemps. En 1983, il a lancé GNU, un système d’exploitation libre, et ce faisant, a déclenché ce qui est devenu le « mouvement du logiciel libre », qui a galvanisé un groupe de personnes qui croyaient que les logiciels pourraient avoir une plus grande portée et bénéficier à la société si ceux-ci étaient mis à disposition librement. Stallman a fondé plus tard la Free Software Foundation en 1985, afin de soutenir GNU ainsi que d’autres projets de logiciels libres.

Gnou par Benjamin Hollis (CC BY 2.0)
Gnou par Benjamin Hollis (CC BY 2.0)

La Free Software Foundation définit le logiciel libre comme « un logiciel qui donne à l’utilisateur la liberté de le partager, l’étudier et le modifier ». GNU définit quatre libertés associées à de tels logiciels :

Un programme est un logiciel libre si vous, en tant qu’utilisateur de ce programme, avez les quatre libertés essentielles :

  • la liberté d’exécuter le programme comme vous voulez, pour n’importe quel usage (liberté 0) ;
  • la liberté d’étudier le fonctionnement du programme, et de le modifier pour qu’il effectue vos tâches informatiques comme vous le souhaitez (liberté 1) ; l’accès au code source est une condition nécessaire ;
  • la liberté de redistribuer des copies, donc d’aider votre voisin (liberté 2) ;
  • la liberté de distribuer aux autres des copies de vos versions modifiées (liberté 3) ; en faisant cela, vous donnez à toute la communauté une possibilité de profiter de vos changements ; l’accès au code source est une condition nécessaire.

Le mouvement du logiciel libre a été et continue d’être profondément engagé dans la défense d’intérêts sociaux. En 1998, lorsque Netscape libéra le code source de son navigateur populaire, le débat commença à passer de la politique à la technologie.

Certains technologues pensaient que se concentrer sur les bénéfices pratiques des logiciels libres permettrait de diffuser le message associé à un public plus large.

Ils ont par exemple souligné que le logiciel libre était moins cher à créer et qu’il permettait d’obtenir une meilleure qualité car le public pouvait trouver des bogues et contribuer en proposant des correctifs. Ce type de pragmatisme se détachait de l’obligation morale exprimée par Stallman et ses partisans quant à l’obligation de promouvoir le logiciel libre. Ces technologues se sont réunis à Palo Alto pour une séance de discussion stratégique.

Christine Peterson, une spécialiste des nanotechnologies qui était présente suggéra l’expression « open source ».

Peu de temps après, deux personnes qui assistaient aussi à cette rencontre, Bruce Perens et Eric Raymond, créèrent l’Open Source Initiative.

Un logiciel dont le code source est disponible publiquement sera qualifié d’« open source ». C’est un peu comme avoir une voiture et être capable d’ouvrir le capot pour connaître comment elle fonctionne plutôt que d’avoir le moteur verrouillé et inaccessible. Les licences open source incluent toujours des clauses qui permettent au public d’utiliser, de modifier et de redistribuer le code. Sous cet angle, il n’y pas de différence juridique entre les licences libres et les licences open source. En fait, certains font référence à l’open source comme une campagne de publicité pour le logiciel libre.

Cependant, la distinction la plus importante entre ces mouvements reste la culture qu’ils ont fait naître. Le mouvement du logiciel open source s’est écarté des aspects socio-politiques du mouvement du logiciel libre pour se concentrer sur les bénéfices pratiques du développement logiciel et encourager des applications créatives et commerciales plus larges. À ce propos, Stallman a écrit :

« l’open source est une méthodologie de développement ;

le logiciel libre est un mouvement de société. »

Bien que « logiciel libre » et « logiciel open source » soient souvent discutés ensemble, ils sont politiquement distincts, le premier étant plus étroitement lié à l’éthique et le second au pragmatisme (dans la suite de cet ouvrage on utilisera le terme « open source » afin de souligner son rôle essentiel dans l’infrastructure logicielle.) L’open source a ouvert un espace permettant l’émergence de différents styles et façons de développer du logiciel, libérés des complexités éthiques. Une organisation peut rendre son code public, mais n’accepter des changements que de certains contributeurs. Une autre organisation peut exiger que le code soit développé en public et accepter des changements de n’importe qui, de manière à ce que davantage de personnes puissent prendre part au processus. En 1997, Raymond a écrit un essai influent intitulé La cathédrale et le bazar (publié plus tard sous la forme d’un livre, en 1999) qui explore ces divers modes de développement.

Aujourd’hui, l’open source s’est répandue dans le monde du logiciel pour un certain nombre de raisons, liées à la fois à l’efficacité et au coût. C’est aussi comme cela qu’est bâtie une bonne partie de notre infrastructure numérique. Nous avons discuté de la façon dont la disponibilité de ces logiciels a bénéficié à toute la société, mais l’open source a aussi beaucoup apporté à ses créateurs.

L’open source revient moins cher à créer
Avant que les logiciels open source n’existent, les entreprises high-tech considéraient les programmes comme n’importe quel autre produit payant : une équipe d’employés développait le produit en interne puis on le vendait au grand public. Ce qui représentait un modèle économique très clair, mais impliquait aussi des coûts de développement accrus. Les logiciels propriétaires nécessitent une équipe payée à plein temps pour assurer le développement, ce qui inclut des développeurs, des designers, des commerciaux et des juristes. Il est bien moins coûteux de simplement confier le développement à une communauté de développeurs bénévoles qui conçoivent et assurent la maintenance du produit.

L’open source est plus facile à diffuser
On a plus envie d’adopter un logiciel dont l’usage est gratuit et de le modifier, plutôt qu’un logiciel dont la licence coûte des centaines de dollars et qui a été développé dans une boîte noire. Non seulement les développeurs vont vouloir l’utiliser sans frais, mais ils pourraient même inciter leurs amis à l’utiliser eux aussi, ce qui va amplifier sa diffusion.

L’open source est plus ouvert à la personnalisation
Les logiciels open source sont copiables et adaptables aux besoins de chacun, avec différents degrés de permission. Si un développeur veut améliorer un logiciel existant, il ou elle peut copier le projet et le modifier (une pratique appelée « forker » en franglais).

Beaucoup de projets à succès ont commencé comme une modification de logiciels existants, par exemple WordPress (gestionnaire de contenu utilisé par 23% des sites web dans le monde), PostgreSQL (l’une des bases de données parmi les plus populaires et dont l’adoption est croissante dans le monde entier), Ubuntu (un système d’exploitation) et Firefox (un des navigateurs web parmi les plus populaires). Dans le cas de WordPress, le logiciel a été forké depuis un projet existant appelé b2 (aussi connu sous le nom de cafelog). Deux développeurs, Matt Mullenweg et Mike Little, ont décidé qu’ils souhaitaient une meilleure version de b2 et ont donc forké le projet.
Mullenberg a décidé de copier b2, plutôt qu’un autre projet appelé TextPattern, car les licences b2 étaient plus permissives. Son idée d’origine, de 2003, est décrite ci-dessous :

Que faire ? Bon, TextPattern ressemble à tout ce que je rêve d’avoir, mais ça n’a pas l’air d’être sous une licence suffisamment en accord avec mes principes. Heureusement, b2/cafelog est sous GPL [GNU General Public Licence, une licence de logiciel libre], ce qui veut dire que je peux utiliser les lignes de code existantes pour créer un fork/une copie. […]
Ce travail ne sera jamais perdu, car si je disparais de la surface de la Terre dans un an, tout le code que j’aurai écrit sera accessible par tout le monde ; et si quelqu’un d’autre veut continuer le travail, libre à lui.

Si le logiciel était développé dans un environnement fermé et propriétaire, les développeurs n’auraient aucune possibilité de le modifier, à moins de travailler dans l’entreprise propriétaire. S’ils essayaient de réaliser leur propre version qui imite l’original, ils s’exposeraient à des poursuites en lien avec la propriété intellectuelle. Avec les logiciels open source, le développeur peut simplement modifier le logiciel lui-même et le distribuer publiquement, comme l’a fait Mullenweg. Les logiciels open source permettent ainsi une prolifération rapide des idées.

L’open source facilite l’adaptation des employés
Il faut du temps pour étudier une ressource logicielle, qu’il s’agisse d’un nouveau langage de programmation ou d’un nouveau framework. Si toutes les entreprises utilisaient leurs propres outils propriétaires, les développeurs auraient moins envie de changer d’entreprise, parce que leurs compétences techniques ne seraient applicables que sur leur lieu de travail actuel.
Il leur faudrait de nouveau apprendre à utiliser les outils propres à leur nouveau lieu de travail.

Quand les entreprises utilisent la technologie open source, un développeur a un ensemble de compétences réutilisables, ce qui lui donne plus de libertés pour travailler là où il préfère. Par exemple, de nombreuses entreprises utilisent le même langage de programmation Ruby pour leurs logiciels. De plus, si le produit des entreprises lui-même est open source, la production appartient autant au développeur qu’à l’entreprise. Le développeur peut emporter son travail avec lui s’il décide de quitter l’entreprise (alors qu’il pourrait par exemple être au contraire limité par une clause de confidentialité si le le code était propriétaire). Tous ces bénéfices offrent plus de moyens d’actions aux employés par rapport à ce que ces derniers auraient eu avec un logiciel propriétaire. De nos jours, de nombreuses entreprises mettent en avant leur utilisation de logiciels open source comme tactique de recrutement, parce que cette utilisation favorise le développeur.

L’open source est potentiellement plus stable et plus sûre.
Théoriquement, quand un projet de logiciel a de nombreux contributeurs et une communauté florissante, le code devrait être moins vulnérable aux failles de sécurité et aux interruptions de service. En effet, dans ce cas, on devrait avoir plus de personnes révisant le code, cherchant des bugs et résolvant tous les problèmes repérés.
Dans un environnement de logiciel propriétaire au contraire, seule l’équipe en charge du développement du code verra ce dernier. Par exemple, au lieu de 20 personnes pour examiner le code d’Oracle, un projet open source populaire pourrait avoir 2000 volontaires qui recherchent les failles du code (remarquons que cette croyance n’est pas toujours en accord avec la réalité, et a parfois créé le problème inverse : on a pu surestimer le nombre de personnes vérifiant des logiciels open source, alors même qu’en réalité personne n’en prenait la responsabilité. Ceci sera discuté dans une prochaine section).
Le logiciel open source a clairement certains avantages. Comment ces projets s’inscrivent-ils collectivement dans un écosystème plus large ?




Aménager son igloo avec Sweet Home 3D

L’été c’est le moment des vacances, le farniente, les apéros, la plage… Mais c’est également la période où l’on profite des longues journées et du beau temps pour faire des travaux dans la maison.
Notre pinchot se sentant l’âme d’un bricoleur a choisi de réorganiser son igloo. Mais avant de tout casser, il aimerait bien voir ce que ces aménagements pourraient donner. C’est là qu’il tombe sur ce superbe logiciel Sweet Home 3D qui va lui permettre de visualiser les agencements prévus.

Rencontre avec Emmanuel Puybaret, son concepteur, et Véronique, sa community manager.

Bonjour, pouvez-vous nous présenter le logiciel Sweet Home 3D ?

Abri de jardin

Emmanuel : Sweet Home 3D est un logiciel libre d’aménagement intérieur qui permet de dessiner des plans de logements, d’y placer des meubles et de visiter le résultat en 3D. Il est très complet et facile d’utilisation. C’est un peu la 3D pour les nuls ! Sa première version date de 2006 et correspond à une étude de cas décrite dans Les cahiers du programmeur Swing que j’avais écrit pour les éditions Eyrolles. Cet ouvrage faisait lui-même suite à mon Cahier du programmeur Java dont la première édition date de 2003. Tout ça pour dire que Sweet Home 3D est développé en Java et que toute cette expérience acquise avec le temps m’a bien aidé pour obtenir un programme stable et performant.

 

La version 5 vient de sortir ce mois-ci, quelles sont les nouveautés les plus remarquables ?
Emmanuel : Depuis presque 10 ans – et notamment depuis votre dernier article qui regrettait l’absence de niveaux, ajoutés depuis ;-), le logiciel s’est vraiment beaucoup enrichi. La version 5 permet des rendus toujours plus réalistes (ajout de plinthes, intégration de portes arrondies ou de fenêtres triangulaires…) mais aussi la conception d’aménagements plus détaillés (dessin de flèches et de schémas de toutes sortes, ajout de textes libres en 3D…).
Véronique : Outre l’aménagement, on sent de plus en plus un besoin d’utilisation du logiciel dans des pré-projets de construction : avant de faire appel à un architecte, de nombreuses personnes, partout dans le monde, ont envie de « rêver » leur maison. C’est chouette.

 

J’ai envie d’aménager un igloo, c’est possible ?
Emmanuel : Zut, là, vous me posez une colle car, dans Sweet Home 3D, les murs ne peuvent être que verticaux ! On peut faire des murs arrondis, des murs en sous-pentes, mais, pour des igloos ou des coupoles, il faudra que vous passiez par une astuce… par exemple, en important un igloo de la bibliothèque 3D Warehouse au format KMZ / Collada. C’est étonnant d’ailleurs comment les utilisateurs de Sweet Home 3D arrivent à trouver des tas d’astuces pour arriver à leurs fins. Et puis, si vous voulez programmer des fonctionnalités plus complexes, vous pouvez essayer de développer un plug-in, tout est expliqué sur le site du logiciel.

 

Exemple de plan

Sweet Home 3D, cela a une consonance anglaise, mais ce ne serait pas un projet français ?
Emmanuel : 100 % français, oui, mais à visée 100 % mondiale.
Véronique : …et au-delà !
Emmanuel : Maintenant le logiciel est disponible dans 25 langues ! C’est un des trucs formidables du logiciel libre : nous avons régulièrement des propositions de traduction du logiciel et on trouve même des tas de tutoriels sur YouTube dans différentes langues. De même, le forum est très réactif, très sympathique. L’aménagement ou l’architecture semblent être des sujets sans fond et, si jamais je manquais d’idées pour améliorer ce logiciel, les propositions des utilisateurs fourmillent. Merci à eux !

 

Quel est le lien entre Sweet Home 3D et eTeks ?
Emmanuel : C’est le nom de ma boite, tout simplement. Comme Sweet Home 3D, ça sonne anglais, mais ce n’est pas non plus trop dépaysant pour un public français.

 

Vous pouvez nous présenter les différentes personnes qui interviennent autour de ce projet ?
Emmanuel : Euh… moi, essentiellement, pour le développement en tout cas. Mais il y a aussi les créateurs de meubles en 3D, les participants les plus actifs du forum, les traducteurs comme je l’ai dit… Et depuis 5 mois, il y a Véronique qui m’aide pour la communication. J’ai senti que c’était nécessaire pour mieux animer cette communauté que je ne prenais pas assez de temps de connaitre et de faire reconnaitre.
Véronique : J’ai mis notamment en place une série d’articles sur le blog sur les différentes utilisations du logiciel qui s’intitulent : « Et vous, vous faites quoi de votre Sweet Home 3D ? ». Je viens de commencer, mais il y a de quoi faire une véritable saga, vous verrez !

 

Dans les utilisations « détournées » de Sweet Home 3d, saviez-vous que notre ami Gee, utilise le logiciel comme support pour les décors dans sa BD « Superflu » ? Avez-vous eu d’autres retours atypiques d’utilisation ?

Emmanuel : Oui, on aime bien ce qu’il fait et Véronique projette de faire un entretien avec lui à la rentrée (s’il veut bien !). Dans le genre atypique, il faut aller voir aussi sur le blog de Sweet Home 3D ou sur notre page facebook la reconstitution du Château de Rochecorbon, le vaisseau spatial de Star Trek ou le projet de ferme écologique en Afrique. Ce sont des super projets !

 

Modélisation d’une chambre pour la BD Superflu de Gee.

Pourquoi le choix du libre ?
Emmanuel : C’était dans les gènes de Sweet Home3D. Il devait forcément être open source puisque publié dans un livre. Alors, quitte à ouvrir son code source, autant le faire sous une licence libre. Sans être super militant, j’avais bien perçu les avantages d’une licence comme la GNU GPL dans des projets précédents : le partage des connaissances, l’ouverture au monde, l’aide des contributeurs, l’accès à des référentiels comme SourceForge.net, mais aussi la possibilité, avec cette même licence, d’opter pour un modèle de licences multiples. C’est justement ce modèle qui nous permet de vivre de ce projet : ventes de licences propriétaires à des sociétés qui veulent étendre les fonctionnalités du logiciel sans publier le code source de leurs modifications, mais aussi ventes sur l’Amazon Store et le Mac App Store d’une version intégrant tous les meubles sous licence libre disponibles pour le logiciel.

 

Avez-vous besoin d’aide ? Si oui, comment peut-on faire ?
Véronique : Ce n’est pas toujours facile de savoir ce qui motive une communauté : sur Facebook, on avait fait un « jeu des 7 différences », mais personne n’a joué ! Plus sérieusement, toutes les contributions sont bienvenues : documentation, participation au forum, création de meubles en 3D libres avec Blender ou Art of Illusion, par exemple. Pour les designers 3D en quête de reconnaissance, sachez que les pages consacrées aux modèles 3D sont désormais très bien référencées dans Google.
Emmanuel : Quand on pense aux débuts de Sweet Home 3D où j’ai été obligé de concevoir les premiers meubles en 3D moi-même, je suis très content d’avoir contribué aussi à l’émergence de bibliothèques de modèles 3D libres, 10 ans après.

 

Envie de réagencer son salon ?

Un dernier mot pour conclure cet entretien ?
E & V : Merci beaucoup, Framasoft, de votre travail en général et, en ce qui nous concerne, de nous avoir référencés dès nos débuts et de continuer à nous donner la parole. À bientôt !

 




Plus rien ne marche, qu’est-ce qu’on fait ?

Désormais conscients et informés que nos actions et nos données en ligne sont faciles à espionner et l’enjeu de monétisation en coulisses, il nous restait l’espoir que quelques pans des technologies de sécurité pouvaient encore faire échec à la surveillance de masse et au profilage commercial. Pas facile pour les utilisateurs moyens d’adopter des outils et des pratiques de chiffrement, par exemple, cependant de toutes parts émergent des projets qui proposent de nous aider à y accéder sans peine.

Mais quand les experts en sécurité, quittant un moment leur regard hautain sur le commun des mortels à peine capables de choisir un mot de passe autre que 123AZERTY, avouent qu’ils savent depuis longtemps que tout est corrompu directement ou indirectement, jusqu’aux services soi-disant sécurisés et chiffrés, le constat est un peu accablant parce qu’il nous reste tout à reconstruire…

Plus rien ne fonctionne

article original : Everything is broken par Quinn Norton

Traduction Framalang : Diab, rafiot, Omegax, Scailyna, Amine Brikci-N, EDGE, r0u, fwix, dwarfpower, sinma, Wan, Manu, Asta, goofy, Solarus, Lumi, mrtino, skhaen

Un beau jour un de mes amis a pris par hasard le contrôle de plusieurs milliers d’ordinateurs. Il avait trouvé une faille dans un bout de code et s’était mis à jouer avec. Ce faisant, il a trouvé comment obtenir les droits d’administration sur un réseau. Il a écrit un script, et l’a fait tourner pour voir ce que ça donnerait. Il est allé se coucher et il a dormi environ quatre heures. Le matin suivant, en allant au boulot, il a jeté un coup d’œil et s’est aperçu qu’il contrôlait désormais près de 50 000 ordinateurs. Après en avoir pratiquement vomi de trouille, il a tout arrêté et supprimé tous les fichiers associés. Il m’a dit que finalement il avait jeté le disque dur au feu. Je ne peux pas vous révéler de qui il s’agit, parce qu’il ne veut pas finir dans une prison fédérale ; et c’est ce qui pourrait lui arriver s’il décrivait à qui que ce soit la faille qu’il a découverte. Cette faille a-t-elle été corrigée ? Sans doute… mais pas par lui. Cette histoire n’est en rien exceptionnelle. Passez quelque temps dans le monde des hackers et de la sécurité informatique, et vous entendrez pas mal d’histoires dans ce genre et même pires que celle-là.

Il est difficile d’expliquer au grand public à quel point la technologie est chancelante, à quel point l’infrastructure de nos vies ne tient qu’avec l’équivalent informatique de bouts de ficelle. Les ordinateurs et l’informatique en général sont détraqués.

Quand c’est codé avec les pieds, bonjour les vautours

Pour un bon nombre d’entre nous, en particulier ceux qui ont suivi l’actualité en matière de sécurité et les questions d’écoutes sauvages, rien de surprenant dans toutes les dernières révélations. Si nous ne connaissions pas les détails, nous savions tous, dans le monde de la sécurité, que la technologie est vacillante et malade. Depuis des années nous voyons tourner les vautours qui veulent profiter de cet état de fait. La NSA n’est pas et n’a jamais été le grand prédateur unique fondant sur Internet. C’est simplement le plus gros de ces charognards. S’ils arrivent à aller aussi loin, ce n’est pas parce que leurs employés sont des dieux des maths.

Si la NSA s’en sort si bien, c’est parce que les logiciels en général sont merdiques.

Huit mois avant que Snowden ne fasse ses révélations, j’ai twitté ça :

tweetQuinnNorton.png

« alerte de sécu : tout a une faille 0 day, tout le monde est suivi à la trace, toutes les données fuitent, tout est vulnérable, tout est compromis jusqu’à l’os. »

J’en étais arrivée à cette conclusion un peu désespérée : chercher des logiciels de qualité est un combat perdu d’avance. Comme ils sont écrits par des gens n’ayant ni le temps ni l’argent nécessaires, la plupart des logiciels sont publiés dès qu’ils fonctionnent assez bien pour laisser leurs auteurs rentrer chez eux et retrouver leur famille. Pour nous le résultat est épouvantable.

Si les logiciels sont aussi mauvais, c’est parce qu’ils sont très complexes, et qu’il cherchent à parler à d’autres logiciels, soit sur le même ordinateur, soit au travers du réseau. Même votre ordinateur ne peut plus être considéré comme unique : c’est une poupée russe, et chaque niveau est fait de quantité d’éléments qui essaient de se synchroniser et de parler les uns avec les autres. L’informatique est devenue incroyablement complexe, alors que dans le même temps les gens sont restés les mêmes, pétris de la même boue grise originelle pleine d’une prétention à l’étincelle divine.

Le merdier qu’est votre ordinateur sous Windows est tellement complexe que personne sur Terre ne sait tout ce qu’il fait vraiment, ni comment.

Maintenant imaginez des milliards de petites boites opaques qui essaient en permanence de discuter les unes avec les autres, de se synchroniser, de travailler ensemble, partageant des bouts de données, se passant des commandes… des tous petits bouts de programmes aux plus gros logiciels, comme les navigateurs – c’est ça, Internet. Et tout ça doit se passer quasi-simultanément et sans accrocs. Sinon vous montez sur vos grand chevaux parce que le panier de la boutique en ligne a oublié vos tickets de cinéma.

On n’arrête pas de vous rappeler que le téléphone avec lequel vous jouez à des jeux stupides et que vous laissez tomber dans les toilettes au troquet du coin est plus puissant que les ordinateurs utilisés pour la conquête de l’espace il y a de cela quelques décennies à peine. La NASA dispose d’une armée de génies pour comprendre et maintenir ses logiciels. Votre téléphone n’a que vous. Ajoutez à cela un mécanisme de mises à jour automatiques que vous désactivez pour qu’il ne vous interrompe pas au beau milieu d’une séance de Candy Crush…

À cause de tout ça, la sécurité est dans un état effrayant. En plus d’être truffés de bugs ennuyeux et de boîtes de dialogue improbables, les programmes ont souvent un type de faille piratable appelée 0 day (« zéro jour ») dans le monde de la sécurité informatique. Personne ne peut se protéger des 0 days. C’est justement ce qui les caractérise : 0 représente le nombre de jours dont vous disposez pour réagir à ce type d’attaque. Il y a des 0 days qui sont anodins et vraiment pas gênants, il y a des 0 days très dangereux, et il y a des 0 days catastrophiques, qui tendent les clés de la maison à toute personne qui se promène dans le coin. Je vous assure qu’en ce moment même, vous lisez ceci sur une machine qui a les trois types de 0days. Je vous entends d’ici me dire : « Mais, Quinn, si personne ne les connaît comment peux-tu savoir que je les ai ? » C’est parce que même un logiciel potable doit avoir affaire avec du code affreux. Le nombre de gens dont le travail est de rendre le logiciel sûr peut pratiquement tenir dans un grand bar, et je les ai regardé boire. Ce n’est pas rassurant. La question n’est pas : « est-ce que vous allez être attaqué ? » mais : « quand serez-vous attaqué ? »

Considérez les choses ainsi : à chaque fois que vous recevez une mise à jour de sécurité (apparemment tous les jours avec mon ordi sous Linux), tout ce qui est mis à jour a été cassé, rendu vulnérable depuis on ne sait combien de temps. Parfois des jours, parfois des années. Personne n’annonce vraiment cet aspect des mises à jour. On vous dit « Vous devriez installer cela, c’est un patch critique ! » et on passe sous silence le côté « …parce que les développeurs ont tellement merdé que l’identité de vos enfants est probablement vendue en ce moment même à la mafia estonienne par des script kiddies accrocs à l’héro ».

Les bogues vraiment dangereux (et qui peut savoir si on a affaire à eux lorsqu’on clique sur le bouton « Redémarrer ultérieurement » ?) peuvent être utilisés par des hackers, gouvernements, et d’autres horreurs du net qui fouillent à la recherche de versions de logiciels qu’ils savent exploiter. N’importe quel ordinateur qui apparaît lors de la recherche en disant « Hé ! Moi ! Je suis vulnérable ! » peut faire partie d’un botnet, en même temps que des milliers, ou des centaines de milliers d’autres ordinateurs. Souvent les ordinateurs zombies sont possédés à nouveau pour faire partie d’un autre botnet encore. Certains botnets patchent les ordinateurs afin qu’ils se débarrassent des autres botnets, pour qu’ils n’aient pas à vous partager avec d’autres hackers. Comment s’en rendre compte si ça arrive ? Vous ne pouvez pas ! Amusez-vous à vous demander si votre vie en ligne va être vendue dans l’heure qui suit ! La prochaine fois que vous penserez que votre grand-mère n’est pas cool, pensez au temps qu’elle a passé à aider de dangereux criminels russes à extorquer de l’argent à des casinos offshore avec des attaques DDoS.

Récemment un hacker anonyme a écrit un script qui prenait le contrôle d’appareils embarqués Linux. Ces ordinateurs possédés scannaient tout le reste d’Internet et ont créé un rapport qui nous en a appris beaucoup plus que ce que nous savions sur l’architecture d’Internet. Ces petites boîtes hackées ont rapporté toutes leurs données (un disque entier de 10 To) et ont silencieusement désactivé le hack. C’était un exemple délicieux et utile d’un individu qui a hacké la planète entière. Si ce malware avait été véritablement malveillant, nous aurions été dans la merde.

Et ceci parce que les ordinateurs sont tous aussi inévitablement défectueux : ceux des hôpitaux et des gouvernements et des banques, ceux de votre téléphone, ceux qui contrôlent les feux de signalisation et les capteurs et les systèmes de contrôle du trafic aérien. Chez les industriels, les ordinateurs destinés à maintenir l’infrastructure et la chaîne de fabrication sont encore pires. Je ne connais pas tous les détails, mais ceux qui sont les plus au courant sont les personnes les plus alcooliques et nihilistes de toute la sécurité informatique. Un autre de mes amis a accidentellement éteint une usine avec un ‘“ping”’ malformé au début d’un test d’intrusion. Pour ceux qui ne savent pas, un ‘“ping”’ est seulement la plus petite requête que vous pouvez envoyer à un autre ordinateur sur le réseau. Il leur a fallu une journée entière tout faire revenir à la normale.

Les experts en informatique aiment prétendre qu’ils utilisent des logiciels d’un genre complètement différent, encore plus géniaux, qu’eux seuls comprennent, des logiciels faits de perfection mathématique et dont les interfaces semblent sortir du cul d’un âne colérique. C’est un mensonge. La forme principale de sécurité qu’ils offrent est celle que donne l’obscurité – il y a si peu de gens qui peuvent utiliser ces logiciels que personne n’a le moindre intérêt à concevoir des outils pour les attaquer. Sauf si, comme la NSA, vous voulez prendre le contrôle sur les administrateurs systèmes.

Une messagerie chiffrée et bien codée, il ne peut rien nous arriver, hein ?

Prenons un exemple que les experts aiment mettre sous le nez des gens normaux qui ne l’utilisent pas : OTR. OTR, ou Off The Record messaging, ajoute une couche de chiffrement aux échanges via messagerie instantanée. C’est comme si vous utilisiez AIM ou Jabber et que vous parliez en code sauf que c’est votre ordinateur qui fait le code pour vous. OTR est bien conçu et robuste, il a été audité avec attention et nous sommes bien sûrs qu’il ne contient aucune de ces saloperies de vulnérabilités zéro jour.

Sauf que OTR n’est pas vraiment un programme que vous utilisez tel quel.

Il existe un standard pour le logiciel OTR, et une bibliothèque, mais elle ne fait rien par elle-même. OTR est implémentée dans des logiciels pour des neuneus par d’autres neuneus. À ce stade, vous savez que ça va se terminer dans les pleurs et les grincements de dents.

La partie principale qu’utilise OTR est un autre programme qui utilise une bibliothèque appelée ‘“libpurple”’. Si vous voulez voir des snobs de la sécurité aussi consternés que les ânes qui ont pondu leur interface, apportez-leur ‘“libpurple”’. ‘“Libpurple”’ a été écrit dans un langage de programmation appelé C.

Le C est efficace dans deux domaines : l’élégance, et la création de vulnérabilités jour zéro critiques en rapport avec la gestion de la mémoire.

Heartbleed, le bogue qui a affecté le monde entier, permettant la fuite de mots de passe et de clés de chiffrement et qui sait quoi encore ? – Du classique et superbe C.

La ‘“libpurple”’ a été écrite par des gens qui voulaient que leur client de discussion open source parle à tous les systèmes de messagerie instantanée du monde, et se foutaient complètement de la sécurité ou du chiffrement. Des gens du milieu de la sécurité qui en ont examiné le code ont conclu qu’il y avait tellement de façons d’exploiter la ‘“libpurple”’ que ça n’était probablement pas la peine de la patcher. Elle doit être jetée et réécrite de zéro. Ce ne sont pas des bugs qui permettent à quelqu’un de lire vos messages chiffrés, ce sont des bugs qui permettent à n’importe qui de prendre le contrôle total de votre ordinateur, regarder tout ce que vous tapez ou lisez et même probablement vous regarder vous mettre les doigts dans le nez devant la webcam.

Ce magnifique outil qu’est OTR repose sur la ‘“libpurple”’ dans la plupart des systèmes où il est utilisé. Je dois éclaircir un point, car même certains geeks n’en ont pas conscience : peu importe la force de votre chiffrement si celui qui vous attaque peut lire vos données par-dessus votre épaule, et je vous promets que c’est possible. Qu’il sache le faire ou pas encore, cela reste néanmoins possible. Il y a des centaines de bibliothèques comme ‘“libpurple”’ sur votre ordinateur : des petits bouts de logiciels conçus avec des budgets serrés aux délais irréalistes, par des personnes ne sachant pas ou ne se souciant pas de préserver la sécurité de votre système.

Chacun de ces petits bugs fera l’affaire quand il s’agit de prendre le contrôle de tout le reste de votre ordinateur. Alors on met à jour, on remet à jour, et peut-être que ça mettra les intrus dehors, ou peut-être pas. On n’en sait rien ! Quand on vous dit d’appliquer les mises à jour, on ne vous dit pas de réparer votre navire. On vous dit de continuer à écoper avant que l’eau n’atteigne votre cou.

oldSchoolSecurity.jpg (Crédit image : sridgway, licence CC BY 2.0)

Pour prendre un peu de recul par rapport à cette scène d’horreur et de désolation, je dois vous dire que la situation est tout de même meilleure que par le passé. Nous disposons aujourd’hui d’outils qui n’existaient pas dans les années 90, comme le ‘“sandboxing”’, qui permet de confiner des programmes écrits stupidement là où ils ne peuvent pas faire beaucoup de dégâts. (Le « sandboxing » consiste à isoler un programme dans une petite partie virtuelle de l’ordinateur, le coupant ainsi de tous les autres petits programmes, ou nettoyant tout ce que ce programme essaie de faire avant que d’autres puissent y accéder).

Des catégories entières de bugs horribles ont été éradiqués comme la variole. La sécurité est prise plus au sérieux que jamais, et il y a tout un réseau de personnes pour contrer les logiciels malveillants 24h sur 24. Mais ils ne peuvent pas vraiment garder la main. L’écosystème de ces problèmes est tellement plus vaste qu’il ne l’était ne serait-ce qu’il y a dix ans, qu’on ne peut pas vraiment dire que l’on fait des progrès.

Les gens, eux aussi, sont cassés

« Je vous fais confiance… » est ce que j’aime le moins entendre de la part des mes sources Anonymous. C’est invariablement suivi de bribes d’informations qu’ils n’auraient jamais dû me confier. Il est naturel de partager quelque chose de personnel avec quelqu’un en qui on a confiance. Mais c’est avec exaspération que je dois rappeler aux Anons qu’avant d’être connectés à un autre être humain ils sont d’abord connectés à un ordinateur, relayé à travers un nombre indéterminé de serveurs, switches, routeurs, câbles, liaisons sans fil, et en bout de chaîne, mon ordinateur parfaitement ciblé par les attaques. Tout ceci se déroule le temps d’une longue inspiration. Cela semble une évidence, mais il est bon de le rappeler : les humains ne sont pas conçus pour penser de cette manière.

Personne n’arrive à utiliser les logiciels correctement. Absolument tout le monde se plante. OTR ne chiffre pas avant le premier message, un fait que des éminents professionnels de la sécurité et des hackers qui subissent une chasse à l’homme dans une vingtaine de pays oublient en permanence. Gérer toutes les clés de chiffrement et de déchiffrement dont vous avez besoin pour garder vos données en sûreté sur plusieurs appareils, sites, et comptes est théoriquement possible, de la même façon que réaliser une appendicectomie sur soi-même est théoriquement possible. Il y a un gars qui a réussi à le faire en Antarctique, pourquoi pas moi, hein ?

Tous les experts en programmes malveillants que je connais ont un jour oublié ce que faisait là un certain fichier, ont cliqué dessus pour le voir et ensuite compris qu’ils avaient exécuté un quelconque logiciel malveillant qu’ils étaient censés examiner. Je sais cela parce que ça m’est arrivé une fois avec un PDF dans lequel je savais qu’il y avait quelque chose de mauvais. Mes amis se sont moqués de moi, puis m’ont tous confessé discrètement qu’ils avaient déjà fait la même chose. Si quelques-uns des meilleurs spécialiste de rétro-ingénierie de logiciels malveillants ne peuvent surveiller leurs fichiers malveillants, qu’espérer de vos parents avec cette carte postale électronique qui est prétendument de vous ?

Les pièces jointes exécutables (ce qui inclut les documents Word, Excel, et les PDF) des emails que vous recevez chaque jour peuvent provenir de n’importe qui (on peut écrire à peu près ce que l’on veut dans le champ « De : » d’un email) et n’importe laquelle de ces pièces jointes pourrait prendre le contrôle de votre ordinateur aussi facilement qu’une vulnérabilité jour zéro. C’est certainement de cette façon que votre grand-mère s’est retrouvée à travailler pour des criminels russes, ou que vos concurrents anticipent tous vos plans produits. Mais dans le monde d’aujourd’hui, vous ne pourrez sûrement pas conserver un emploi de bureau si vous refusez d’ouvrir des pièces jointes. Voilà le choix qui s’offre à vous : prendre en permanence le risque de cliquer sur un dangereux programme malveillant, ou vivre sous un pont, laissant sur la pelouse de votre ancienne maison des messages pour dire à vos enfants combien vous les aimez et combien ils vous manquent.

Les experts de la sécurité et de la vie privée sermonnent le public à propos des métadonnées et des réseaux d’échange de données, mais prendre en compte ces choses est aussi naturel que de se faire une batterie de tests sanguins tous les matins, et à peu près aussi facile. Les risques sur le plan sociétal de renoncer à notre vie privée sont énormes. Et pourtant, les conséquences pour chacun de ne pas y renoncer sont immédiatement handicapantes. Il s’agit au final d’un combat d’usure entre ce que l’on veut pour nous-mêmes et nos familles, et ce que l’on doit faire pour vivre dans notre communauté en tant qu’humains – un champ de mines monétisé par les entreprises et monitoré par les gouvernements.

Je travaille en plein là-dedans, et je ne m’en sors pas mieux. J’ai dû une fois suivre un processus pour vérifier mon identité auprès d’un informateur méfiant. J’ai dû prendre une série de photos montrant où je me trouvais ainsi que la date. Je les ai mises en ligne, et on m’a permis de procéder à l’interview. Au final, il se trouve qu’aucune de ces vérifications n’avait été envoyées, parce que j’avais oublié d’attendre la fin du chargement avant d’éteindre nerveusement mon ordinateur. « Pourquoi m’avez-vous quand même permis de vous voir ? » demandais-je à ma source. « Parce qu’il n’y a que vous qui pourrait faire une chose aussi stupide », m’a-t-il répondu.

Touché.

Mais si cela m’arrive à moi, une adulte relativement bien entraînée qui fait attention à ce genre de sujets systématiquement, quelle chance ont les gens avec de vrais boulots et de vraies vies ?

Finalement, c’est la culture qui est cassée.

Il y a quelques années, j’ai rencontré plusieurs personnes respectées qui travaillent dans la confidentialité et la sécurité logicielle et je leur ai posé une question. Mais d’abord j’ai dû expliquer quelque chose : « La plupart des gens n’ont pas de droits d’administration sur les ordinateurs qu’ils utilisent. »

computerClassBolts.jpg (Crédit image : amelungc, licence CC BY 2.0)

C’est-à-dire que la plupart des gens qui utilisent un ordinateur dans le monde n’en sont pas propriétaires… Que ce soit dans un café, à l’école, au travail, installer une application bureautique n’est pas directement à la portée d’une grande partie du monde. Toute les semaines ou toutes les deux semaines, j’étais contacté par des gens prêts à tout pour améliorer la sécurité et les options de confidentialité, et j’ai essayé de leur apporter mon aide. Je commençais par « Téléchargez le… » et on s’arrêtait là. Les gens me signalaient ensuite qu’ils ne pouvaient pas installer le logiciel sur leur ordinateur. En général parce que le département informatique limitait leurs droits dans le cadre de la gestion du réseau. Ces gens avaient besoin d’outils qui marchaient sur ce à quoi ils avaient accès, principalement un navigateur.

Donc la question que j’ai posée aux hackers, cryptographes, experts en sécurité, programmeurs, etc. fut la suivante : quelle est la meilleure solution pour les gens qui ne peuvent pas télécharger de nouveau logiciel sur leurs machines ? La réponse a été unanime : aucune. Il n’y a pas d’alternative. On me disait qu’ils feraient mieux de discuter en texte brut, « comme ça ils n’ont pas un faux sentiment de sécurité ». À partir du moment où ils n’ont pas accès à de meilleurs logiciels, ils ne devraient pas faire quoi que ce soit qui puisse déranger les gens qui les surveillent. Mais, expliquais-je, il s’agit d’activistes, d’organisateurs, de journalistes du monde entier qui ont affaire à des gouvernements et des sociétés et des criminels qui peuvent vraiment leur faire du mal, ces gens sont vraiment en danger. On me répondait alors que dans ce cas, ils devraient s’acheter leurs propres ordinateurs.

Et voilà, c’était ça la réponse : être assez riche pour acheter son propre ordinateur, ou bien littéralement tout laisser tomber. J’ai expliqué à tout le monde que ce n’était pas suffisant, j’ai été dénigrée lors de quelques joutes verbales sans conséquences sur Twitter, et je suis passée à autre chose. Peu de temps après, j’ai compris d’où venait l’incompréhension. Je suis retourné voir les mêmes experts et j’ai expliqué : dans la nature, dans des situations vraiment dangereuses – même quand les gens sont traqués par des hommes avec des armes – quand le chiffrement et la sécurité échouent, personne n’arrête de parler. Ils espèrent seulement ne pas se faire prendre.

La même impulsion humaine qui nous pousse vers le hasard et les loteries depuis des milliers d’années soutient ceux qui luttent même quand les chances sont contre eux. « Peut-être bien que je m’en sortirai, autant essayer ! » Pour ce qui est de l’auto-censure des conversations dans une infrastructure hostile, les activistes non techniques s’en sortent de la même manière que les Anons, ou que les gens à qui l’on dit de se méfier des métadonnées, ou des réseaux d’échanges de données, ou de ce premier message avant que l’encodage OTR ne s’active. Ils foirent.

Cette conversation a été un signal d’alerte pour quelques personnes de la sécurité qui n’avaient pas compris que les personnes qui devenaient activistes et journalistes faisaient systématiquement des choses risquées. Certains ont rallié mon camp, celui où on perd son temps à des combats futiles sur Twitter et ils ont pris conscience que quelque chose, même quelque chose d’imparfait, pouvait être mieux que rien. Mais beaucoup dans le domaine de la sécurité sont toujours dans l’attente d’un monde parfait dans lequel déployer leur code parfait.

Alors apparaît l’Intelligence Community (Communauté du renseignement), ils s’appellent entre eux le IC. Nous pourrions trouver ça sympathique s’ils arrêtaient d’espionner tout le monde en permanence, et eux aimeraient bien que l’on cesse de s’en plaindre. Après avoir passé un peu de temps avec eux, je pense savoir pourquoi ils ne se préoccupent pas de ceux qui se plaignent. Les IC font partie des humains les plus surveillés de l’histoire. Ils savent que tout ce qu’ils font est passé au peigne fin par leurs pairs, leurs patrons, leurs avocats, d’autres agences, le président, et parfois le Congrès. Ils vivent surveillés, et ne s’en plaignent pas.

Dans tous les appels pour augmenter la surveillance, les fondamentaux de la nature humaine sont négligés. Vous n’allez pas apprendre aux espions que ce n’est pas bien en faisant encore plus qu’eux. Il y aura toujours des failles, et tant qu’elles existeront ou pourront être utilisées ou interprétées, la surveillance sera aussi répandue que possible. Les humains sont des créatures généralement égocentriques. Les espions, qui sont humains, ne comprendront jamais pourquoi vivre sans vie privée est mal aussi longtemps qu’ils le feront.

Et pourtant ce n’est pas cela le pire. La catastrophe culturelle qu’ils provoquent rend plus facile leur boulot d’épier le monde. Les aspects les plus dérangeants des révélations, ce sont le marché des failles 0 day, l’accumulation des moyens de les exploiter, l’affaiblissement des standards. La question est de savoir qui a le droit de faire partie de ce « nous » qui est censé être préservé de ces attaques, écoutes et décryptages et profilages. Quand ils ont attaqué Natanz avec Stuxnet et laissé tous les autres centres nucléaires vulnérables, nous avons été tranquillement avertis que le « nous » en question commençait et finissait avec l’IC lui-même. Voilà le plus grand danger.

Quand le IC ou le DOD ou le pouvoir exécutif sont les seuls vrais Américains, et que le reste d’entre nous ne sommes que des Américains de deuxième classe, ou pire les non-personnes qui ne sont pas associées aux États-Unis, alors nous ne pouvons que perdre toujours plus d’importance avec le temps. À mesure que nos désirs entrent en conflit avec le IC, nous devenons de moins en moins dignes de droits et de considération aux yeux du IC. Quand la NSA accumule des moyens d’exploiter les failles, et que cela interfère avec la protection cryptographique de notre infrastructure, cela veut dire qu’exploiter des failles contre des gens qui ne sont pas de la NSA ne compte pas tellement. Nous sécuriser passe après se sécuriser eux-mêmes.

En théorie, la raison pour laquelle nous sommes si gentils avec les soldats, que nous avons pour habitude d’honorer et de remercier, c’est qu’ils sont supposés se sacrifier pour le bien des gens. Dans le cas de la NSA, l’inverse s’est produit. Notre bien-être est sacrifié afin de rendre plus aisé leur boulot de surveillance du monde. Lorsque cela fait partie de la culture du pouvoir, on est en bonne voie pour que cela débouche sur n’importe quel abus.

Mais le plus gros de tous les problèmes culturels repose toujours sur les épaules du seul groupe que je n’aie pas encore pris à partie – les gens normaux, qui vivent leurs vies dans cette situation démentielle. Le problème des gens normaux avec la technologie est le même qu’avec la politique, ou la société en général. Les gens pensent être isolés et sans pouvoir, mais la seule chose qui maintient les gens seuls et sans pouvoir est cette même croyance. Ceux qui travaillent ensemble ont un énorme et terrible pouvoir. Il existe certainement une limite à ce que peut faire un mouvement organisé de personnes qui partagent un rêve commun, mais nous ne l’avons pas encore trouvée.

Facebook et Google semblent très puissants, mais ils vivent à peu près à une semaine de la ruine en permanence. Ils savent que le coût de départ des réseaux sociaux pris individuellement est élevé, mais sur la masse, c’est une quantité négligeable. Windows pourrait être remplacé par quelque chose de mieux écrit. Le gouvernement des États-Unis tomberait en quelques jours devant une révolte générale. Il n’y aurait pas besoin d’une désertion totale ou d’une révolte générale pour tout changer, car les sociétés et le gouvernement préfèreraient se plier aux exigences plutôt que de mourir. Ces entités font tout ce qu’elles peuvent pour s’en sortir en toute impunité – mais nous avons oublié que nous sommes ceux qui les laissons s’en sortir avec ces choses.

Si les ordinateurs ne satisfont pas nos besoins de confidentialité et de communication, ce n’est pas en raison d’une quelconque impossibilité mathématique. Il existe un grand nombre de systèmes qui pourraient chiffrer nos données de façon sécurisée et fédérée, nous disposons de nombreuses façons de retrouver la confidentialité et d’améliorer le fonctionnement par défaut des ordinateurs. Si ce n’est pas ainsi que les choses se passent en ce moment c’est parce que nous n’avons pas exigé qu’il en soit ainsi, et non pas parce que personne n’est assez malin pour que ça arrive.

C’est vrai, les geeks et les PDG et les agents et les militaires ont bousillé le monde. Mais en fin de compte, c’est l’affaire de tous, en travaillant ensemble, de réparer le monde.




Prototypo : vos polices sur mesure

prototypo-i.gif

En marge de la préparation d’un événement organisé sur Lyon par la communauté Mozilla (dont on vous reparlera bientôt), nous avons eu le plaisir de rencontrer l’un des développeurs de Prototypo, un logiciel libre de dessin typographique, à l’usage très innovant.

Une soirée de présentation du logiciel ayant lieu ce soir (Lyon 7ème)[1], nous avons souhaité poser quelques questions aux créateurs du projet, afin qu’ils nous présentent le parcours de ce logiciel, qui sera bientôt disponible.

Faisons un peu connaissance : pouvez-vous vous présenter ?

Yannick, 28 ans. Depuis maintenant 4 ans je dessine et intègre des sites webs, des interfaces et parfois je touche un peu au papier. J’ai commencé à toucher au code durant ma dernière année des Arts Décoratifs de Strasbourg lorsque j’ai réalisé la version Alpha de Prototypo, développée en Processing. Après une année passée en agence à Paris, j’ai décidé de me lancer en freelance, à Lyon, et j’essaie depuis de me perfectionner dans tout ce qui m’intéresse, c’est-à-dire le dessin de caractère, le développement et le design interactif en général.

Louis-Rémi, 27 ans, développeur web indépendant depuis trois ans. Je suis tombé dans le logiciel libre en même temps que je suis tombé dans le web : sur le tard (en 2007), et très naturellement, parce le web et le libre étaient déjà largement entremêlés à cette époque. J’ai participé il y a quelques années au développement de la branche 1.X de jQuery et créé quelques plugins assez populaires. Et je suis un Mozillien depuis six ans, j’ai participé à “Jetpack / addon SDK”, à la documentation sur MDN. Aujourd’hui je développe Prototypo avec Yannick tout en essayant de rendre ce “logiciel libre de niche” viable financièrement.

prototypo-devs.jpg

Alors, Prototypo, c’est quoi ?

Prototypo est un logiciel de dessin typographique, il permet de créer de nouvelles polices des caractère qui seront utilisées dans le design graphique (affiches, sites web, jeux vidéo, etc.). Dans Prototypo, le dessin démarre en modifiant une vingtaine de paramètres qui vont changer l’apparence de toutes les lettres de l’alhabet en même temps. Alors que dans les autres logiciels (Fontlab, Glyphs, Robofont et l’alternative libre Fontforge) on dessine chaque caractère un à un. L’intérêt c’est qu’on démarre plus vite, même avec des connaissances limités dans cette discipline exigeante, et que l’on peut explorer de nouvelles formes et proportions en quelques clics.

Comment vous est venu cette idée ?

Y. : En étant graphiste papier à la base, l’intérêt pour la typographie m’est venu tout naturellement, car c’est une pierre d’angle de la création graphique quelque soit son envergure et ses objectifs. Assez rapidement, j’ai essayé de créer moi-même un caractère typographique que je pourrais utiliser en petit corps (corps de labeur) dans mes projets. Mais dessiner un caractère de qualité requiert un investissement important et n’est pas du tout une tâche accessible si l’on n’y consacre tout son temps. Il existe une multitude de règles optiques, de dessin, à respecter (et avant tout à connaître) pour que le caractère soit fonctionnel. Étant donné que beaucoup de ces règles sont récurrentes et mesurables, je me suis dit qu’il serait possible de les systématiser et donc de les coder. Prototypo est né de cette idée : permettre à l’utilisateur de se concentrer sur le design et laisser la machine s’occuper des tâches répétitives et gérer ces micro-corrections.

LR. : moi j’ai découvert la vidéo de la première version développée par Yannick il y a à peu près un an. Visuellement c’était bluffant, et comme j’ai une écriture manuscrite déplorable, j’ai peut-être vu inconsciemment en Prototypo un moyen à ma porté d’avoir une écriture personelle ET lisible. Quoi qu’il en soit j’ai contacté l’auteur de cette vidéo pour savoir où en était le projet. Il aurait pu habiter aux US, il aurait pu ne jamais me répondre ou être passé à autre chose… Mais non, il habitait à Lyon, à trois kilomètres de moi, il avait envie de redémarrer le projet avec des technos web et il était prêt à me rencontrer (plus tard on s’est apperçu qu’on s’était croisé dans son école et à un déménagement sans le savoir). On a commencé à travailler sur notre temps libre et à voir que ça marchait, puis on s’est dits qu’on voulait faire les choses en grand, qu’on travaillerait à temps plein un mois ou deux avant de tenter une campagne de financement participatif.

Selon vous, quels sont les publics d’une telle application ?

Les logiciels de dessin typographique s’adressent aux graphistes et typographes. Prototypo est utile aux amateurs et étudiants pour s’initier de manière ludique, ainsi qu’aux professionnels, particulièrement pendant la phase de recherche graphique. Mais nous espérons aussi rendre cette discipline accessible aux novices qui veulent une police sur mesure pour leur site, leur jeu vidéo, ou toute autre création qui utilise du texte.

prototypo-i-et-code.gif

Pourquoi avoir choisi une licence libre ?

LR. : Cétait une évidence. J’ai toujours publié le code que j’écrivais sur mon temps libre sous licence libre, parce que j’ai toujours développé avec du logiciel libre. Et Yannick s’était initié au développement principalement sur Processing dont la communauté est très encline au partage. Mais cette fois-ci il y avait un vrai défi : gagner sa vie en créant un logiciel libre.

Y. : J’ai aussi fait mes premiers pas avec des CMS comme SPIP et la communauté m’a beaucoup apporté. Depuis tout ce temps, j’ai beaucoup reçu mais jamais donné; avec Prototypo c’était l’occasion ou jamais.

prototypo-libre.gif

Parlons du financement : vous avez travaillé à plein temps dessus pendant plusieurs mois, vous ne viviez que de 0 et de 1 ?

Presque. Le plan initial était d’arriver rapidement à un prototype qui prouverait que le concept marchait aussi dans un navigateur, en plus de créer de la nouveauté pour les personnes qui suivaient le projet depuis plusieurs années. Et ensuite de lancer très tôt une campagne de financement participatif pour vérifier l’intérêt du public et la viabilité du projet. Dans les faits ça a pris beaucoup de temps. Nous rallongions contamment la liste des “fonctionnalités essentielles” et avons mis cinq mois à être satisfaits, puis encore un mois à lancer la campagne sur Kickstarter. À l’origine nous pensions donc devoir vivre deux ou trois mois sur nos économies (ce qui est tout à fait envisageable tant qu’on n’habite pas Paris). Finalement il a fallu se serrer la ceinture les trois derniers mois et accepter des petits contrats.

Vous avez lancé une campagne Kickstarter. Où en est-elle ?

La campagne visait à rassembler 12.000£ (15.000€) en un mois, pour financer les cinq mois de travail nécessaire à la sortie de la version 1. Nous avons atteint cet objectif en trois jours, et au bout de deux semaines nous en sommes à presque 20.000£ (24.000€). Cela va nous permettre d’ajouter des fonctionnalités avancées telles qu’un éditeur intégré permettant d’importer ses propres polices pour les rendre paramétrables, ou des extensions de navigateur pour prévisualiser en temps réel la police dans des pages web.

prototypo-goals.png

C’est le résultat d’une longue préparation, entamée dès le début de notre collaboration : nous avons animé un blog et des comptes sur les réseaux sociaux, et aussi mis en place un formulaire pour s’abonner à notre newsletter, sur notre site principal. En six mois 10.000 personnes s’y sont inscrites, dont la moité après un effet boule de neige démarré par un simple tweet de Smashing Magazine. C’est grâce à ces inscrits que la campagne a connu un bon démarrage. Désormais nous sommes occupés à plein temps par son animation : nous répondons aux questions des utilisateurs, sollicitons des blogs pour des interviews (big up au Framablog), et participons à des évènements autour du design et de la typographie.

Et après ? Envisagez-vous d’autres modèles de financement pour ce projet ?

Pendant la campagne et par la suite, nous vendons un abonnement qui permet d’utiliser le logiciel sur nos serveurs pendant un an. Pour nous c’est un moyen d’obtenir un revenu régulier qui nous permette de nous consacrer à temps plein à l’amélioration du logiciel. Pour les utilisateurs, c’est la possibilité de bénéficier instantanément de tous les avantages d’une web-app (applications et données disponibles partout, toujours à jour), en gardant la possibilité d’installer l’application en local. Nous sommes aussi en discussion avec des éditeurs de solutions hébergées qui souhaitent intégrer Prototypo à leurs applications.

Techniquement, quelles solutions avez-vous retenues ?

Nous utilisons les languages de base du web : HTML, SVG, JS et SCSS (CSS avec des variables et règles imbriquées). Cela nous permet d’être le plus ouvert aux contributions externes. Pour structurer notre application et simplifier le développement de l’interface utilisateur nous avons choisi AngularJS, qui est très activement développé et dispose d’une bonne documentation et d’une forte communauté de développeurs. Pour que l’application fonctionne de manière “hors-ligne par défaut” nous utilisons Hoodie, un projet encore perfectible mais très activement développé par une équipe expérimenté et ambitieuse. Pour gérer les interactions tactiles et à la souris de manière unifiée nous utilisons la librairie PointerEvents, qui est un sous-projet de Polymer, développé par Google. Et nous utilisons encore jQuery, parce que les navigateurs modernes ont et auront toujours des bugs, que son API conserve des avantages par rapport à celle du DOM (chaînages des méthodes, délégation d’évènements), et qu’elle intègre des optimisations internes (différents caches et utilisation de fragments DOM). Enfin, nous nous sommes rapprochés d’autres développeurs de webapps libres de dessin typographique pour créer une librairie capable de générer des fichiers de polices binaires (.otf) directement dans le navigateur.

Par ailleurs, nous créons petit à petit notre propre language afin de créer les “caractères paramétrables” qui sont au coeur de Prototypo : des caractères qui se transforment lorsque l’utilisateur interragit avec les paramètres de l’interface. À la base c’était un mélange de SVG et de JS mais nous permettons de rajouter des contraintes (un point placé à une interection par exemple), et d’inclure dans un tracé des composants réutilisables. C’est en évolution constante et très spécifique à notre usage, mais nous espérons bien que les utilisateurs s’en saisiront pour enrichir les possibilités du logiciel. Quelle est la suite des évènements ? (annoncer entre autre l’apéro)

Nous allons encore être occupé à plein temps par la campagne pendant ses 15 derniers jours. Nous organisons mardi soir un Apéro Prototypo sur Lyon (chez KolleBolle) auquel nous convions tous nos amis, mais aussi les graphistes et libristes qui voudraient essayer la version de développement du logiciel et discuter avec nous autour d’un verre. Les 6 et 7 Mai nous seront au Automatic Type Design organisé par l’ANRT à Nancy. Une fois que la campagne sera finie nous nous remettrons enfin au dévelopement et essayerons de créer les conditions favorables à l’accueil de contributeurs externes. La version de travail sera accessible fin Mai et la version 1.0 devrait être disponible en Septembre prochain. Nous continuerons à développer Prototypo aussi longtemps que notre trésorerie le permettra.

prototypo-code.png

Merci à vous deux ! Un petit mot pour la fin ?

On remercie toutes les personnes qui nous ont soutenu jusqu’ici, en donnant de leur temps, en participant à la campagne de financement, en affichant leur soutien sur Twitter et Facebook, en nous inviant dans leurs colonnes, et on remercie par avance toutes les personnes qui vont le faire. Dès le début Prototypo a été un projet passionnant, maintenant grâce à vous c’est un projet exaltant.

Notes

[1] Oui, je sais, on prévient “un peu” tard :-/




Le Libre est-il dans le pré ?

2013-10-10_10-13-23_745.jpg
Nous avons reçu il y a quelque jours un appel téléphonique. Jusque là, rien d’anormal. Ce qui l’était plus, c’était qu’il émanait d’un groupe d’agricultrices. Leur demande ? Faire réaliser un logiciel qui leur permettrait de suivre un programme expérimental d’utilisation de produits en médecines alternatives (homéopathie/aromathérapie notamment). Pour le suivi de l’expérimentation, elles souhaiteraient utiliser un logiciel leur permettant de saisir des données sur leurs smartphones, ainsi qu’obtenir différents types de bilans ou statistiques.

Ce type de développement (quand bien même rémunéré, ce qui serait le cas ici) ne rentre pas vraiment dans le cadre des missions de Framasoft. Cependant, en répondant à leurs questions, il nous est apparu assez clairement que nous avions des valeurs communes (partage du savoir, non appropriation du bien commun, volonté d’agir “ensemble”, etc.).

Nous avions déjà, il y a quelques mois, mis en avant un logiciel libre dédié à l’agriculture : Agritux (on me souffle à l’oreille que si vous êtes intéressés par le sujet, vous devriez aussi jeter un œil à Ekylibre). Il est donc plutôt passionnant de voir des liens se tisser entre ces deux mondes en théorie relativement éloignés.

Pour en savoir plus, nous avons demandé à ces agricultrices de répondre à quelques questions.

Et si vous souhaitez développer une application libre (avec une interface pour smartphone) répondant à leur problématique, n’hésitez pas à les contacter.

2013-12-13_14-52-24_349.jpg

Bonjour, pouvez-vous vous présenter, ainsi que votre projet ?

Nous sommes 8 agricultrices regroupées en collectif GEDA (Groupe d’Études et de Développement Agricole) au niveau d’un canton au Nord de Rennes.

Nous échangeons régulièrement sur des thèmes variés techniques ou pas, professionnels ou pas suivant nos propres choix. Nous cherchons également à faire mieux connaitre notre métier en intervenant dans les écoles primaires et maternelles. Nous collaborons également avec les élus de notre territoire. La réflexion collective est en effet un moyen de nous sentir rassurées dans notre métier. Elle nous donne la force d’oser dialoguer avec l’ensemble des acteurs non agricoles de notre territoire et de partager nos travaux au-delà des frontières de nos fermes.

Nous avons décidé en 2012 d’en connaitre davantage sur les médecines alternatives en élevage bovin pour maîtriser la santé de nos troupeaux d’une manière plus respectueuse de l’environnement et de la santé humaine. Très vite nous avons donc commencé à tester l’homéopathie et à observer des résultats positifs sur nos troupeaux. Et depuis notre soif de savoirs et d’expériences s’est accrue : l’aromathérapie, les méthodes d’observation du troupeau (Obsalim®), la phytothérapie, … sont aujourd’hui autant de voies que nous souhaitons découvrir et tester sur nos exploitations pour adapter au mieux notre stratégie d’exploitation. En parallèle notre envie de communiquer pour revaloriser notre beau métier s’est développé. De là est né notre projet sur trois ans qui nous permettra de :

  • Assurer le bien-être et améliorer la santé de nos vaches ;
  • Acquérir une plus grande autonomie décisionnelle ;
  • Limiter l’impact de nos élevages sur l’environnement ;
  • Valoriser notre beau métier d’éleveur auprès des acteurs de notre territoire.

Pour atteindre ces objectifs, nous avons notamment décidé de travailler à la conception d’un outil de suivi de notre expérimentation sur Smartphone. C’est dans ce cadre que notre collectif vous a contacté.

Pour cela, vous souhaitez éventuellement faire réaliser un projet logiciel. Pouvez-vous nous en dire plus ?

Pour bien appréhender les problèmes de santé des animaux, une observation minutieuse des bovins est indispensable au quotidien et à tout moment. Un suivi également des traitements alternatifs appliqués (homéopathie, aromathérapie,..) est indispensable aussi pour ensuite pouvoir identifier les facteurs d’échecs ou de réussites de nos expérimentations. Un support pour enregistrer ces informations est donc nécessaire et doit correspondre à nos conditions de travail : plus on a d’animaux, plus le nombre de remarques et d’actions effectuées est important. Comment tout noter en permanence de façon confortable et surtout efficace ?

De nombreux agriculteurs sont aujourd’hui équipés de smartphones. Celui-ci permettrait un enregistrement rapide et confortable quel que soit le lieu d’observation : de la salle de traite aux pâturages. Toutes les informations concernant chaque animal dès sa naissance doivent pouvoir être enregistrées dans cette application: les événements importants et marquants, ses particularités (caractère, physique,…), son comportement, avec les dates, etc… Pour être efficace dans la pratique des médecines alternatives, le moindre événement dans la vie de l’animal peut être important et le choix du traitement à appliquer tout comme sa réussite en dépendent. Ce logiciel nous permettra également de capitaliser plus facilement puis d’analyser collectivement nos résultats d’expérimentations de soins alternatifs aux traitements conventionnels.

Le logiciel libre semble porter certaines valeurs communes avec votre projet, comme par exemple la mutualisation, la coopération, la volonté de partager le savoir et les connaissances, etc. Pourtant, le monde du logiciel et celui de l’agriculture semblent bien éloignés. Aviez-vous entendu parler de logiciel libre ou de culture libre avant d’avoir ce projet logiciel ?

Bien sûr nous en avions entendu parler mais uniquement dans le cadre de la sphère privée avec les logiciels libres de traitement de texte par exemple.

Avant l’émergence de notre projet collectif, nous n’avions pas vraiment fait le lien entre notre métier et le monde de la culture libre, mais dès que l’idée d’un logiciel a émergé nous avons tout de suite pensé à une application gratuite et diffusable à tous. Pourquoi ? Tout simplement parce que notre démarche collective qui vise l’échange et le partage, la reconquête notre autonomie, notre liberté de choisir et celle du mouvement des logiciels libres sont parallèles et cohérentes. Dans les 2 cas il s’agit de démarche de partage et de liberté.

Pour aller plus loin dans le parallèle, grâce à ce projet et en partenariat avec le lycée agricole de notre secteur, nous voulons également transmettre nos expériences au plus grand nombre agriculteurs et aux générations futures d’agriculteurs. Les communautés qui prônent le logiciel libre sont également dans cette démarche puisque les outils développés sont transmissibles, modifiables et adaptables librement.

Et nous ne nous étendrons pas sur la similitude entre les semences agricoles qui pourraient être comparées à des logiciels. Si aujourd’hui nous avons le droit de pouvoir ressemer l’année suivante notre propre semence récoltée (cela est de plus en plus remis en question), nous ne pouvons échanger ou vendre des semences non certifiées. Pourquoi devoir en permanence dépendre des grosses firmes multinationales “de semences” ? Le côté économique est un élément important car une semence “certifiée” a un coût beaucoup plus élevé qu’une semence récoltée sur l’exploitation. Et on ne parle que de blé et d’orge car le maïs hybride ne se développera pas ou de manière dégénérée l’année suivante si on tente de le semer. Sur ce point encore nos idées se rejoignent : à quand la semence libre ? 🙂

2013-08-07_19-00-38_835.jpg

Pour les non-initiés, l’informatique (et internet) semble jouer un rôle croissant dans le quotidien d’une exploitation agricole. Vous confirmez ?

Effectivement, sans internet, l’exploitation fonctionne au ralenti…L’accès à l’information se fait de plus en plus via les sites agricoles spécialisés : marchés, réglementation, résultats d’analyses (réaction plus rapide si résultats connus précocement).

La gestion financière de l’exploitation se fait au jour le jour et est facilitée par la consultation régulière des comptes bancaires. La gestion administrative, de plus en plus exigeante et importante est facilitée par les messageries électroniques qui permettent de communiquer plus rapidement et efficacement avec nos différents partenaires, le téléchargement de formulaires.

La gestion des cultures et de ses différents enregistrements se fait fréquemment sur des logiciels spécialisés qui permettent de répondre aux exigences réglementaires (intrants…).

La gestion des troupeaux peut être gérée informatiquement via différents supports : quantités de lait produites, gestion de la reproduction via des aides à la détection de chaleurs, de vêlage, gestion de l’alimentation (en production porcine notamment). L’identification animale se fait via des serveurs spécialisées qui permettent l’accès aux bases de données animales.

Merci ! 🙂 Un petit mot pour la fin ?

Nous aurons bien sûr besoin d’un développeur pour notre logiciel :=), donc si des personnes sont intéressées, contactez-nous par email : frgeda.bretagne (chez) gmail (point) com

Pour financer notre projet sur trois ans, nous avons répondu à l’appel à projet de la Région Bretagne sur Agriculture Écologiquement performante, alors croisez les doigts pour nous 😉

Et surtout merci à vous de nous guider pour nos premiers pas dans ce monde du logiciel libre!!!!




…et c’est le modèle ouvert qui l’emporte à la fin ? — ça dépend…

Libre ou propriétaire, open source ou sources closes, voilà des lignes de fracture radicales qui sont familières dans le monde du logiciel. Les choses sont moins tranchées peut-être du côté des entreprises qui se définissent non sans arrière-pensées comme plus ou moins « ouvertes ».

Tim Wu nous invite à prendre un peu de recul par rapport à notre conception commune suivant laquelle les modèles ouverts sont destinés à l’emporter. La réussite ou non des grandes entreprises de technologies informatiques ces dernières années montre que la question n’est pas si simple et la partition pas si flagrante.

En adoptant une perspective bien étatsunienne, celle du pragmatisme qui consiste à comparer les résultats, l’auteur tend à évaluer l’ouverture en termes de degrés. À vous de dire si les valeurs du libre ne sont pas écornées au passage.

Une entreprise fermée comme Apple peut-elle réussir sans le talent d’un Steve Jobs ?

par Tim Wu dans cet article du New Yorker

Traduction Framasoft : Texmix, Sphinx, Garburst, Husi10, lamessen, Paul-Arthur, ehsavoie, goofy

On dit depuis un bon moment dans le milieu techno que « le modèle ouvert l’emporte sur le modèle fermé ». En d’autres termes, les systèmes technologiques ouverts, ou bien ceux qui permettent l’interopérabilité, finissent toujours par surpasser leurs concurrents fermés. C’est une véritable profession de foi chez certains ingénieurs. C’est aussi la leçon qu’on peut tirer de l’échec de MacIntosh face à Windows dans les années 90, du triomphe de Google au début des années 2000 et plus largement, de la victoire d’Internet sur ses rivaux au modèle fermé (vous souvenez-vous d’AOL ?). Mais est-ce encore justifié ?

Depuis quelques années, cet adage a été remis en question, principalement à cause d’Apple. Cette entreprise, ignorant les idéaux des ingénieurs et les prêches des experts techno, s’est rapidement cloisonnée dans une une stratégie semi-fermée — ou « intégrée » comme elle aime à le dire — et a défié la règle. Sur le plan structurel, Apple pratique l’intégration bien mieux que ses rivales. Elle possède le matériel, le logiciel et le circuit de distribution. Elle bloque et dessert également beaucoup plus ses concurrents. Eh oui, de cette manière, elle est devenue l’entreprise la plus rentable la planète. Au dernier trimestre, Apple a enregistré plus de bénéfices qu’Amazon n’en a réalisé depuis sa création.

Mais maintenant, depuis les six derniers mois, de manière plus ou moins flagrante, Apple a commencé à trébucher. Vous allez dire que j’exagère, mais je propose une révision du vieil adage « le modèle fermé peut l’emporter, mais vous devez être un génie ». Dans des conditions normales, dans une industrie imprévisible, et étant donné le niveau normal d’erreurs humaines, le libre continue à surpasser le fermé. Pour le dire autrement, une entreprise doit être fermée dans l’exacte proportion de ses talents de visionnaire et de conception.

Pour m’expliquer, je vais d’abord devoir soigneusement exposer ce que j’entends par « ouvert » et « fermé », des mots qui sont largement employés dans le monde de l’informatique, mais avec de multiples sens. La vérité c’est qu’aucune des entreprises n’est complètement ouverte ou fermée ; elles se répartissent sur un spectre, un peu comme celui qu’utilisait Alfred Kinsey pour décrire la sexualité humaine. Pour moi, ici, cela signifie la combinaison de trois éléments.

Tout d’abord, « ouvert » et « fermé » peuvent faire référence à la permissivité de l’entreprise technologique vis-à-vis des partenariats et des interconnexions qu’elle peut créer pour que ses produits arrivent jusqu’aux utilisateurs. Nous disons qu’un système d’exploitation comme GNU/Linux est « ouvert » parce que n’importe qui peut concevoir un produit sur lequel faire tourner GNU/Linux. En revanche, Apple est très exclusif : il ne laissera jamais iOS s’exécuter sur un téléphone Samsung ni vendre des Kindle dans un Apple store.

En second lieu, l’ouverture peut décrire l’impartialité avec laquelle une entreprise technologique traite les autres entreprises par rapport la manière dont elle se traite elle-même. Firefox, le navigateur, traite tous les sites internet de la même manière. En revanche, Apple se traite mieux que les autres (essayez donc de désinstaller iTunes de votre iPhone).

Troisièmement, et pour conclure, cela décrit le niveau de transparence et d’ouverture d’une entreprise selon la manière dont ses produits fonctionnent et peuvent être employés. Les produits open source, ou ceux qui dépendent de standards ouverts, rendent leur code largement accessible. En attendant, une compagnie comme Google peut être ouverte sur bien des points mais garder jalousement le secret sur certaines choses, comme le code de son moteur de recherche. Dans le monde des technologies, la métaphore classique utilisée pour décrire cette dernière différence est la cathédrale contre le bazar.

Aucune entreprise privée n’est entièrement ouverte, bien que quelques fondations à but non-lucratif, comme Mozilla, s’en approchent. De la même manière, aucune entreprise ne peut se permettre d’être entièrement fermée. Un exploitant de plateforme gagne à avoir de bonnes applications disponibles (pensons à ce que serait, hum, l’iPhone sans Google Maps), et trop bloquer détruira ce qui donne sa valeur au produit. Même Apple a besoin d’être assez ouvert pour ne pas trop déranger les consommateurs. Vous ne pouvez pas lancer le Flash d’Adobe sur un IPad, mais vous pouvez brancher presque n’importe quel type d’écouteur dessus.

L’idée que « le modèle ouvert l’emporte sur le modèle fermé » est historiquement assez récente. Dans la majeure partie du XXe siècle, l’intégration était considérée comme la forme d’organisation commerciale supérieure. Les modèles fermés ou intégrés arrivent avec des avantages reconnus depuis longtemps et même proclamés haut et fort par les économistes. La coordination est un avantage-clé : en théorie, avec une entreprise qui coordonne tous les aspects et caractéristiques d’un produit donné, le résultat peut mieux fonctionner que celui d’un rival non-coordonné. L’économiste Joseph Farell a appelé ceci « internalisation des économies complémentaires ». Si cela ne vous dit rien, considérez l’effet Disneyland. Disney contrôle tout avec une poigne de fer ou presque, et le parc d’attractions fonctionne sans anicroches, avec une réussite impressionnante bien supérieure par exemple à une fête foraine classique.

Andrew Carnegie s’est appuyé sur une logique similaire à celle d’Apple lorsqu’il a intégré l’extraction minière avec la production d’acier au sein de U.S. Steel. Les vieux studios Hollywood des années trente et quarante ont intégré le jeu, les scénarios, la production et les cinémas dans une seule et même entreprise. Elle a ainsi chassé tous les autres de son industrie. I.B.M. avait un modèle fermé et le vieux monopole de A.T. & T. était le système fermé par excellence : vous n’aviez pas le droit de posséder votre propre téléphone mais seulement d’en utiliser un produit par quelqu’un d’autre.

La sagesse populaire commença à changer dans les années soixante-dix. Sur le marché des technologies, des années quatre-vingt au milieu des années deux mille, les systèmes ouverts ont vaincu à plusieurs reprises leurs concurrents fermés. Windows de Microsoft a battu ses rivaux en adoptant un modèle plus ouvert. À la différence du système d’exploitation d’Apple qui était supérieur sur le plan technique, Windows fonctionnait sur n’importe quel matériel et faisait marcher presque tous les logiciels. Au même moment, Microsoft surpassa I.B.M. et son modèle intégré verticalement (qui se souvient de Warp O.S. ?), Google était audacieusement ouvert dès sa conception originale et passa devant Yahoo et son système sélectif de publicité au placement. La plupart des vainqueurs, entre quatre-vingt et deux mille, tels que Microsoft, Dell, Palm, Google et Netscape, suivaient un modèle ouvert. Internet même, basé sur un projet financé par le gouvernement, était à la fois incroyablement ouvert et incroyablement réussi. Un mouvement était né et avec lui la règle selon laquelle : « le modèle ouvert l’emporte sur le modèle fermé ».

Le triomphe des systèmes ouverts a révélé un défaut majeur dans les conceptions fermées. Selon la théorie économique, dans un état d’information parfaite, un concepteur central devrait être capable de produire un meilleur produit. Mais c’est seulement vrai si le futur est prévisible, et si on ignore la tendance des êtres humains à commettre des erreurs bêtes. Dans un système fermé, avec un seul décideur, les erreurs coûtent très cher. Les décisions stupides, ou qui compromettent le produit pour des profits à court terme, ne vont pas rendre les produits seulement un peu moins bons mais vraiment pires que ceux du concurrent direct. Par exemple, la politique de chasse gardée d’AOL des années 90 consistait à essayer de deviner ce que les utilisateurs allaient vouloir, mais AOL a fait un tas d’erreurs, et finalement ça ne correspondait pas à un Web ouvert.

En revanche, un produit ouvert est mieux protégé des erreurs humaines car ce n’est pas une unique entité qui prend une décision susceptible de détruire le produit. Les économistes Tim Bresnahan et Shane Greenstein, dans les années 90, ont décrit ce phénomène sous le terme « direction technique partagée », et ils lui donnaient un sens mélioratif. Le produit est le résultat collectif de plusieurs, voire parfois de milliers de décideurs. Un produit ouvert peut aussi profiter des contributions volontaires et collectives des masses, un point mis en avant par Yochai Benkler. Ainsi, une entrée sur Wikipédia peut être vague et contenir des erreurs, mais le corpus dans son ensemble restera impressionnant. Au milieu des années 90, Windows n’était pas aussi intuitif que Macintosh, mais tous les accessoires et les applications en firent collectivement un produit supérieur.

Ce qui nous amène aux années 2000 et au magnifique parcours d’Apple. Pendant presque douze années, Apple a battu la mesure avec succès. Mais c’est parce qu’il avait le meilleur des systèmes possibles, à savoir, un dictateur disposant d’un contrôle absolu, qui était aussi un génie. Steve Jobs était la version entreprise de l’idéal de Platon : le roi-philosophe nettement plus efficace que toute forme de démocratie. L’entreprise dépendait d’un unique esprit central, mais il a fait très peu d’erreurs. Dans un monde sans erreurs, le fermé bat l’ouvert. En conséquence, pour un temps, Apple triompha de ses rivaux.

Alors que doit faire une entreprise technologique ?

Chacun est confronté à cette question du modèle ouvert ou fermé, et voici comment y répondre. Premièrement, il existera toujours un compromis difficile entre systèmes ouverts et fermés, et il est donc inutile de trop s’enfermer dans l’une ou l’autre des options. Il est facile de sous-estimer les projets ouverts (personne ne pensait que Wikipédia fonctionnerait), mais même les projets ouverts ont besoin de contrôle à certains niveaux. Finalement, plus votre vision et vos compétences de créateur sont bonnes, plus vous pouvez essayer d’être fermé. Si vous pensez que vos concepteurs de produits peuvent égaler le quasi sans-faute de Jobs ces vingt dernières années, allez-y. Mais si de simples mortels font tourner votre entreprise, ou si vous êtes face à un futur très imprévisible, les analyses économiques suggèrent qu’un système ouvert est plus sûr. Vous pourriez peut-être vous fier à ce test : en vous levant le matin, regardez dans le miroir et demandez-vous : suis-je Steve Jobs ?

Crédit image : the opensourceway CC-BY-SA




La quête du logiciel de qualité — suite et fin (Libres conseils 22c/42)

Chaque jeudi à 21h, rendez-vous sur le framapad de traduction, le travail collaboratif sera ensuite publié ici même.

Traduction Framalang : peupleLà, lerouge, goofy, alpha, Sky, Julius22, vvision, okram, lamessen

Les transformations qui préservent la structure

Le deuxième tome de The Nature of Order décrit comment chacune de ces propriétés définit également une transformation. En voici des exemples.

  • Des frontières solides. Vous pouvez parfois transformer quelque chose positivement en lui adjoignant une frontière. Vous installez une palissade autour d’un jardin qui sert alors d’ornement, de coupe-vent afin que des vents forts ne viennent pas endommager le jardin, mais elle existe aussi comme structure en soi. Dans une interface graphique utilisateur, des boîtes à ascenseurs sans cadre sont difficiles à distinguer de l’arrière-plan de la fenêtre (pensez à toutes ces pages web blanches dont les formulaires d’entrée de texte n’ont pas de cadre). Vous placez une corniche sur le toit d’un immeuble afin que la transition entre l’immeuble et le ciel ne soit pas abrupte.
  • Des symétries locales. Il est plus facile de construire de petites parties de manière symétrique : parce qu’elles sont fabriquées sur un tour, parce qu’on doit y accéder des deux côtés, parce qu’elles se plient comme un livre. Faire des choses asymétriques, seulement pour l’intérêt de la chose, demande un travail supplémentaire et il est plus difficile d’obtenir quelque chose qui fonctionne bien.
  • Un espace positif. Vous vous sentez trop exposé quand vous êtes au bureau ? Ajoutez une étagère à mi-hauteur à côté de vous pour délimiter votre espace mais ne vous enfermez pas complètement. Est-ce que votre interface utilisateur donne l’impression qu’il y a beaucoup d’espace restant une fois que vous avez mis les contrôles en place ? Faites plutôt en sorte que les contrôles entourent l’espace utilisable.

Chacun des points qui précèdent est une transformation qui préserve la structure. Vous effectuez un changement dans la structure existante non pas en la démolissant et en la refaisant, mais en ajustant une chose après l’autre selon ces propriétés comme transformations.

En termes de logiciel, il s’avère que c’est ce en quoi le « Refactoring » consiste surtout, quand vous traduisez les concepts en code. Réorganiser, c’est seulement appliquer des transformations qui préservent la structure ou, comme Martin Fowler — l’auteur de Refactoring — l’aurait présenté, des transformations qui préservent le comportement. Vous ne changez pas ce que fait le programme ; vous changez seulement la manière dont il est construit à l’intérieur, morceau par morceau.

En extrayant un morceau de code et en l’insérant dans une fonction nommée, vous ajoutez essentiellement une frontière solide autour du code et créez un noyau robuste. En enlevant une variable globale et en ajoutant des variables de classe, vous permettez la robustesse, car chaque instance peut maintenant avoir une valeur différente dans cette variable, comme nécessaire. En ayant un producteur/consommateur, ou un émetteur/récepteur, vous avez des symétries locales, des imbrications fortes et ambiguës, et une bonne forme.

Richard Gabriel, l’une des principales personnalités du Common Lisp , a étudié comment appliquer les théories d’Alexander au logiciel (et aussi à la poésie ; le code n’est-il pas similaire à la poésie après tout ?). Il donne l’exemple suivant :

  1. Imaginez que vous créez la classe AppelTelephonique. C’est un objet central implicite, qui pourrait être beaucoup plus puissant.
  2. Gerard Meszaros dans le modèle DemiObjet + Protocole suggérait de séparer l’objet en deux demi-appels, liés par un protocole. On obtient ainsi une symétrie locale, un centre fort et un effet d’échelle.
  3. Maintenant, dessinons cela sous forme de diagramme. On obtient alors de la symétrie locale, de l’effet

    d’échelle, des frontières, une imbrication forte et de l’ambiguïté. C’est ici que Meszaros a arrêté sa démarche.

  4. Richard Gabriel suggère alors de renforcer les centres existants en appliquant d’autres transformations qui préservent la structure. Que faire de l’objet central implicite au milieu ? Vous lui ajoutez une frontière explicite (Appel) qui lie les demiAppels entre eux. Cela améliore les symétries locales, maintient l’imbrication forte et l’ambiguïté, et c’est composable.

  5. Oui, c’est composable. Des appels multidirectionnels, des conférences téléphoniques, tout cela s’effectue 

    grâce à la mise en œuvre de transformations qui préservent la structure.

Chaque développeur garde probablement une image mentale du programme qu’il est en train de créer ou de modifier. La partie la plus difficile dans la modification d’un code que vous n’avez pas écrit est de commencer par visualiser cette image mentale. Quand vous travaillez pour que le code affiche une image plus jolie, il s’améliore — et Alexander nous propose une bonne façon de le faire.

Le processus fondamental

Alexander argumente longuement pour expliquer l’intérêt de suivre ce processus : appliquer des transformations qui préservent la structure est la seule manière de réussir une conception de qualité et fonctionnelle. Cela ne vaut pas seulement pour les immeubles, mais pour tout ce que nous construisons. Peu importe que vous partiez de l’existant — un programme, un bâtiment ou une ville — ou que vous partiez de zéro. Nous imitons la nature dans ses processus d’évolution et de régénération, mais nous allons plus vite.

  1. Commencez avec ce que vous avez : un espace vide, un immeuble déjà construit ou bien un programme qui ne ressemble à rien et difficile à utiliser.
  2. Identifiez les centres existant dans cet espace. Trouvez le centre le plus faible ou le moins cohérent.
  3. Voyez comment appliquer l’une au moins des quinze transformations qui préservent la structure afin de renforcer ce centre faible. A-t-il besoin d’être délimité ? A-t-il besoin de se confondre avec son entourage ? A-t-il besoin de plus de détails ? A-t-il besoin d’être dégagé ?
  4. Trouvez les nouveaux centres qui sont apparus quand vous avez appliqué les transformations à l’ancien centre. Cette nouvelle combinaison rend-elle les choses plus fortes ? Les rend-elle plus jolies ? Les rend-elle plus fonctionnelles ?
  5. Assurez-vous que vous avez fait la chose la plus simple possible.
  6. Retournez au début pour l’étape suivante.

Un résumé extrêmement simple pourrait être : trouvez les mauvaises parties, améliorez-les de la façon la plus simple possible, testez les résultats, réitérez.

Alexander ne tient pas à détruire les choses juste pour les reconstruire de façon différente. Il ne s’agit pas de pas démolir des quartiers d’une ville pour les reconstruire mais de les améliorer progressivement. Pour les logiciels, il est bien connu que vous n’allez pas réécrire quelque chose juste parce que vous ne le comprenez plus. Démolir quelque chose, c’est perdre toutes les connaissances qui avaient été incorporées à cette chose en train d’être détruite, même si elle semble étrange dans son état actuel.

De même, Alexander s’oppose à la création de modèles détaillés au préalable. Il donne un bon argument montrant pourquoi les modèles pré-établis ne peuvent pas fonctionner en fin de compte : parce qu’on ne peut pas prévoir de manière absolue tout ce qui va se passer lors de la construction et de l’implémentation ; parce qu’on oubliera forcément une partie des détails de l’environnement au sein duquel notre création évoluera ; parce que la nature en elle-même n’est pas pré-ordonnée et croît plutôt de manière libre et pousse sans pitié à l’évolution jusqu’à ce que les éléments qui la constituent survivent d’eux-mêmes.

De cette façon, vous ne concevez pas l’interface utilisateur en entier ou la structure complète, pour un grand programme, en une seule étape. Vous allez du grand au petit ou du petit au grand (niveaux d’échelle) ; vous testez chaque partie individuellement jusqu’à ce que ce soit bon (des centres solides) ; vous vous assurez que les parties ne sont pas trop déconnectées les unes des autres (interdépendance). Vous déplacez quelques widgets là où ils sont plus accessibles ou plus proches des données auxquelles ils se réfèrent. Vous enlevez quelques cadres et séparateurs pour réduire le désordre. Par dessus tout, vous évaluez continuellement ce que vous avez créé avec de vrais utilisateurs et des cas d’usage réels pour confronter les choses à la réalité, et non à votre imagination.

Un nom pour la qualité

Tout au long de The Nature of Order, Alexander parvient à montrer que les environnements ou les structures construites selon cette méthode finissent toutes par avoir la Qualité sans Nom. Il appelle cela une structure vivante. Cela peut être mesuré et comparé. Ce n’est plus sans nom ; on peut parler d’environnements ou de programmes qui ont une structure plus ou moins vivante par rapport à d’autres — et nous tendons à développer et à obtenir toujours plus de cette propriété.

J’ai seulement intitulé cet article « Le logiciel comme Qualité sans Nom » parce que ça semblait ainsi plus mystérieux.

Je ne peux prétendre connaître la façon parfaite de concevoir et écrire des logiciels. Mais au moins, j’ai une bonne méthode basée sur ce qui produit de bonnes choses ailleurs. Cela a fonctionné pour ma maison et, jusqu’à présent, ça a très bien marché pour mes logiciels. J’espère que ça fonctionnera bien pour vous aussi !

Références

  • Christopher Alexander, A Pattern Language. Version en ligne : http://bit.ly/8n6igg (NdÉ : lien invalide, le 1er février 2013).
  • Christopher Alexander, The Nature of Order. Une page web très moche http://www.natureoforder.com (NdÉ : visité le 1er février 2013).
  • Photos et dessins des 15 propriétés – http://bit.ly/b82Dxu (NdÉ : visité le 1er février 2013).
  • Richard Gabriel, Patterns of Software. Un superbe libre qui traite d’un grand nombre d’aspects du développement des logiciels, en transposant les idées de Christopher Alexander pour atteindre les meilleures techniques possibles en développement de logiciel. Version en ligne : http://bit.ly/dqGUp4 (NdÉ : visité le 1er février 2013).
  • Richard Gabriel, Christopher Alexander, the search for beauty. Une excellente présentation des idées de Christopher Alexander et une galerie de modèles dans le domaine du logiciel. http://bit.ly/ztE6cp (NdÉ : visité le 1er février 2013).
  • Richard Gabriel, The Nature of Order. Le monde post-modèles. Une autre très bonne présentation, qui fait suite à la précédente, explique les 15 propriétés, le processus fondamental et comment cela peut s’appliquer au logiciel. http://dreamsongs.com/Files/NatureOfOrder.pdf (NdÉ : visité le 1er février 2013).
  • Federico Mena Quintero, Software that has the Quality Without A Name. Présentation Desktop Summit de Berlin en 2011. http://bit.ly/oYgJUf (NdÉ : visité le 1er février 2013).



La quête du logiciel de qualité (Libres conseils 22a/42)

Chaque jeudi à 21h, rendez-vous sur le framapad de traduction, le travail collaboratif sera ensuite publié ici même.

Traduction Framalang : Sphinx, peupleLà, lerouge, goofy, alpha, Julius22, SaSha_01, vvision, lamessen, Bob, lamessen, Garburst, okram

Le logiciel comme Qualité sans Nom

Federico Mena Quintero

Federico Mena Quintero est l’un des pères fondateurs du projet GNOME et fut auparavant le mainteneur de GIMP. Il travaillait aux Red Hat Advanced Development Labs durant les débuts de GNOME puis fut l’un des premiers à être recruté chez Ximian où il a principalement travaillé sur le calendrier d’Evolution. Il travaille toujours autour de GNOME pour Novell/Suse et vit au Mexique.

Lorsque j’apprenais la programmation, j’ai remarqué que je rencontrais souvent le même problème, encore et encore. J’écrivais souvent un programme qui fonctionnait relativement bien et était même bien structuré. Mais après quelques modifications et améliorations, je ne pouvais plus l’améliorer davantage. Soit sa complexité me surpassait, soit il était écrit de telle manière qu’il ne permettait pas d’évolution, comme une maison que vous ne pouvez pas agrandir à cause d’un toit pentu ou que vous ne pouvez pas étendre sur les côtés à cause des murs qui l’entourent.

À mesure que je progressais, j’ai appris à gérer cette complexité. Nous apprenons tous à le faire avec différents outils et techniques : l’abstraction, l’encapsulation, l’orientation objet, les techniques fonctionnelles, etc. Nous apprenons comment diverses techniques nous permettent d’écrire des programmes plus complexes.

Cependant, le problème d’un programme trop optimisé ou bien trop intimement enchevêtré pour être modifié a persisté. Parfois, je pensais tenir une superbe conception. Mais la modifier d’une façon quelconque l’aurait « amochée » et je ne le souhaitais pas. D’autres fois, j’avais quelque chose avec tellement de parties imbriquées que je ne pouvais plus y connecter quoi que ce soit sans que tout s’effondre sous son propre poids.

Il y a quelques années, la manie de la réécriture a débuté sans que j’y prête trop attention. Je me disais que c’était une façon de nettoyer le code, mais après ? Je sais déjà comment prendre un morceau de code et le transformer en fonction ; je sais déjà comment prendre des morceaux de code similaires et les transformer en classes dérivées. Je sais déjà écrire du code presque entièrement propre. Quel est donc le problème ?

J’ai écarté la refactorisation(1) en la considérant comme destinée aux programmeurs les moins expérimentés ; comme de jolies recettes de nettoyage de code mais rien qui ne puisse être découvert par soi-même.

La même chose s’est produite avec les canevas de conception. Je pensais qu’ils donnaient simplement des noms pompeux tels que Singleton et Strategy à des types de structures de tous les jours qu’on utiliserait naturellement dans un programme. Peut-être mon ego de programmeur était-il trop démesuré pour considérer ces travaux avec sérieux. C’est alors que quelque chose s’est produit.

Le travail de Christopher Alexander

Il y a quelques années, mon épouse et moi avons acheté une petite maison de plain-pied et nous souhaitions l’agrandir. Nous envisagions d’avoir un enfant et avions, par conséquent, besoin de plus d’espace. J’avais besoin d’un vrai bureau à domicile, pas une simple niche inoccupée dans laquelle mon bureau et mes étagères de livres tiendraient à peine. En tant que cuisiniers avides, nous avions tous les deux besoin d’une cuisine plus spacieuse et confortable que celle de notre maison. Mon épouse avait besoin d’une pièce bien à elle.

Nous ne voulions pas payer pour un architecte coûteux et aucun de nous deux n’avait la moindre connaissance en matière de construction. Comment allions-nous concevoir notre maison ?

Par moments, en naviguant sur le Web, je me rappelais que j’avais déjà vu le nom d’un auteur, le titre d’un livre ou quelque chose comme ça. Il se peut que je n’y aie pas vraiment porté attention par le passé mais, d’une manière ou d’une autre, plus je vois la même chose mentionnée, plus il est probable que je finirai par m’y intéresser suffisamment pour aller voir de quoi il s’agissait. « Oh, plusieurs personnes ont déjà mentionné ce nom ou ce livre ; je devrais peut-être y jeter un coup d’œil  »

C’est exactement ce qui s’est passé avec le nom de Christopher Alexander. J’avais lu que c’était un architecte assez spécial (de vrais bâtiments, pas de logiciels), connecté en quelque sorte au monde du logiciel par le biais de techniques orientées objet. J’ai été passionné par son travail dès que j’ai commencé à le découvrir par mes lectures.

Dans les années 1970, Christopher Alexander était un mathématicien et professeur d’architecture à l’université de Californie, Berkeley. Lui et un groupe d’architectes de la même mouvance que lui ont parcouru le monde, essayant de comprendre pourquoi il existait des endroits construits par des humains (cités, villes, parcs, immeubles, maisons) où il était très agréable de vivre, confortables, conviviaux et jolis, tandis que d’autres endroits ne l’étaient pas. Des lieux agréables étaient présents dans toutes les architectures traditionnelles du monde — européennes, africaines, asiatiques et américaines — amenant à l’idée que des facteurs communs étaient sans doute extractibles.

Alexander et son équipe ont réparti leurs découvertes au sein d’une liste de motifs architecturaux cohérents et publié trois livres : The Timeless Way of Building (NdT « L’art de la construction intemporelle » en français), où sont décrites la philosophie et la méthode nécessaires à une bonne construction ; A Pattern Language (NdT : « Un langage de schémas » en français), que je décris ci-après et The Oregon Experiment (NdT « L’expérience de L’Oregon » en français) où sont détaillés la conception et la construction d’un campus universitaire grâce à leur méthode.

Une grammaire de modèles

Un modèle (ou schéma) est un problème récurrent lors de la conception et de la construction d’objets, en lien avec les contraintes qui modèlent le problème et avec une solution connectée, quasi-récursivement à d’autres modèles-pères ou modèles-fils. Par exemple, considérons le GRADIENT D’INTIMITÉ, un modèle important dans le livre (les modèles étant en capitales dans ce livre pour en faciliter l’identification, je ferai donc de même) :

GRADIENT D’INTIMITÉ

Modèles-pères, et préambule : … si vous savez à peu près où vous avez l’intention de placer les ailes du bâtiment, LES AILES DE LUMIÈRE, et combien d’étages elles auront, le NOMBRE D’ÉTAGES, et où L’ENTRÉE PRINCIPALE se trouve, alors il est temps de travailler sur la disposition approximative des zones principales de chaque niveau. Dans tout bâtiment, la relation entre les zones publiques et les zones privées est de la plus haute importance.

Énoncé du problème : à moins que les volumes d’un édifice ne soient disposés dans un ordre correspondant à leur degré d’intimité, les visites des étrangers, amis, invités, clients, famille seront toujours un peu gênantes.

Explication : je ne vais pas tout citer. Prenez, par exemple, un appartement où la seule façon d’atteindre la salle de bain est de passer d’abord par la chambre à coucher. Les visites sont toujours gênantes car vous avez l’impression de devoir d’abord ranger votre chambre si vous voulez que vos visiteurs puissent utiliser les toilettes. Ou bien considérez des bureaux dans lesquels vous ne voulez pas qu’un espace de travail calme soit à côté de la réception, car alors celui-ci ne sera pas calme du tout — vous voulez qu’il soit plus privé, à l’arrière.

Résumé de la solution : disposez les espaces de l’édifice de façon à ce qu’ils créent une suite qui commence avec l’entrée et la partie du bâtiment ouverte au public, puis conduit aux zones un peu plus privées pour finir avec les domaines les plus intimes.

Modèles-fils à consulter : ZONES COMMUNES AU CENTRE. HALL D’ENTRÉE pour les maisons ; UNE PIÈCE PROPRE À CHACUN pour les particuliers. UNE RÉCEPTION VOUS SOUHAITE LA BIENVENUE dans les bureaux avec, BUREAU SEMI-PRIVÉ à l’arrière.

Les modèles deviennent plutôt précis, ils n’imposent cependant jamais un style ou une forme déterminée au résultat. Par exemple, il existe un modèle qui s’appelle « ÉTAGÈRES OUVERTES ». Des placards profonds vous incitent à mettre les choses les unes derrière les autres, ainsi, vous ne pouvez plus voir ni attraper les objets qui sont au fond. Ils prennent aussi beaucoup de place. Les étagères dont la profondeur permet de ne mettre qu’un seul objet restent rangées et vous savez toujours, en un seul coup d’œil, où se trouve chaque chose. Les objets que vous utilisez fréquemment ne devraient pas être derrière une porte.

Vous pouvez ainsi entrevoir l’essence même des modèles de conceptions : de bonnes recettes éprouvées qui n’imposent pas de contraintes inutiles à votre implémentation

Les modèles ne demandent pas un style particulier ou des décorations superflues : le livre ne vous dit pas : « appliquez ces motifs floraux sur les rampes », mais plutôt : « les pièces d’une maison devraient être orientées de telle sorte que le soleil les éclaire harmonieusement, au moment de la journée où elles sont le plus utilisées — à l’est pour les chambres le matin, à l’ouest pour le salon l’après-midi ».

J’avais acquis un exemplaire de A Pattern Language peu avant de commencer à agrandir notre maison. Le livre fut une révélation : c’était le moyen d’aborder la conception de notre maison et nous pouvions alors la réaliser par nous-mêmes au lieu de payer très cher une solution inadaptée. Nous étions capables de faire un plan sommaire de notre maison et ensuite d’imaginer des détails plus fins au fur et à mesure de la construction. C’est le genre de livres qui, pendant que vous le lisez, parvient à confirmer les intuitions que vous éprouviez confusément — le genre de livres qui vous fait dire en permanence : « Bien sûr, c’est exactement à ça que je pensais  »

Design Patterns, le fameux livre publié par Gamma et autres, puise directement son inspiration dans les schémas architecturaux d’Alexander. Ils voulaient faire la même chose : dresser une liste de problèmes apparaissant fréquemment lorsque l’on programme et présenter de bonnes solutions qui n’imposeront pas de contraintes inutiles à votre implémentation.

Une chose dont j’ai pris conscience en lisant A Pattern Language, c’est une chose importante que l’on retrouve à la fois dans les modèles architecturaux et logiciels) : ils nous fournissent un vocabulaire pour discuter de la façon dont les objets sont construits. Il est beaucoup plus pratique de dire : « Les propriétés de cet objet ont des observateurs » plutôt que : « il est possible de lui attribuer des fonctions de rappel qui sont appelées lorsque ses propriétés changent ». Ce que je pensais être uniquement des termes pompeux ne sont, en fait, qu’une manière d’exprimer la connaissance de manière compacte.

La Qualité Sans Nom

La plus grande partie de l’explication d’Alexander sur les modèles de conception et leur philosophie se rapporte à quelque chose qu’il appelle « La qualité sans nom ». Vous connaissez des endroits qui ont cette qualité sans nom. Elle est présente dans le café où vous aimez aller lire car la lumière de l’après-midi entre avec exactement la bonne intensité. Et il y a là-bas des chaises et des tables, c’est toujours plus ou moins rempli de gens sans pour autant que vous vous sentiez oppressé. Elle est présente au coin d’un parc où un arbre ombrage un banc. Il y a peut-être un peu d’eau vive, et il importe peu qu’il pleuve ou bien que le temps soit ensoleillé, cela semble toujours être un plaisir d’y être. Pensez à une maison de hobbit où tout est à portée de main, où tout est confortable et où tout est fait élégamment.

Un objet ou un endroit possède la qualité sans nom s’il est convivial, s’il a évolué dans le temps selon sa logique propre, s’il ne recèle pas de contradiction interne, n’essaie pas d’attirer l’attention et semble réunir toutes les qualités archétypales — comme s’il avait suivi tout naturellement la voie optimale pour aboutir à sa conception. Plus important, Alexander affirme que c’est une qualité objective et non subjective, et qu’elle peut être mesurée et comparée. Bien que cela semble être une définition floue, c’est l’état le plus abouti dans lequel Alexander a pu l’amener lors de la première phase de son travail. La vraie révélation n’apparaitrait que plus tard.

En tant que développeurs, nous avons tous vu de beaux programmes à un moment donné. Ce sont peut-être les exemples de Programming Pearls, un beau livre que tout hacker devrait lire. Peut-être avez-vous vu un algorithme bien implémenté qui regorge de justesse. Vous vous souvenez peut-être d’un morceau de code très compact, très lisible, très fonctionnel et très correct. Ce logiciel possède la qualité sans nom. Il était devenu évident pour moi que je devais apprendre à écrire des logiciels qui atteignent le niveau de la qualité sans nom et que la méthode d’Alexander était le bon point de départ pour y parvenir.

(à suivre…)

(1) Refactorisation : bien que critiqué, cet anglicisme (voir http://fr.wikipedia.org/wiki/Refactorisation) semble d’un emploi courant chez les développeurs. On pourrait parler plus simplement de remaniement