Plates-Formes

30 août 2002
Extrait du Carnet Web de Joel on Software, http://www.joelonsoftware.com
(Ndt : Traduction en cours : seul le lien original fait référence... Relecteurs bienvenus merci christophe@elanceur.org)




La plupart des développeurs de logiciels, Fog Creek Software compris, sont tout bonnement heureux d'écrire des applications logicielles. Vous savez, des programmes qui font quelque chose ou résolvent un problème particulier. Mais les plus courageux d'entre nous veulent changer le monde d'une manière plus significative et choisissent de travailler sur des plates-formes : de grosses dalles logicielles qui ne font pratiquement rien hors de la boîte, mais qui ouvrent à tout un monde d'applications nouvelles et intéressantes. Aussi écrivent-t'ils des systèmes d'exploitation, ou des DBMS ou des langages runtime comme Java espérant attirer des développeurs indépendants pour créer de nouvelles applications brillantes offertes par leurs plates-formes.

Quasiment dans tous les cas, par définition, un système d'exploitation est une plate-forme. Beaucoup de plates-formes, comme Java Runtime vivent au dessus du système d'exploitation. Et n'oublions pas que Windows n'a pas été lancé comme un système d'exploitation, il a été lancé en tant que programme que vous faisiez tourner sur DOS lequel (hors de la boîte) ne faisait pas grand chose, mais permettait aux développeurs de créer des applications GUI pour des boîtes bon marché Intel.

C'est vraiment, vraiment très important d'estimer si votre produit est une plate-forme ou non, parce que les plates-formes ont besoin d'être "marketées" d'une toute autre manière pour réussir. Simplement parce qu'une plate-forme a besoin d'abord et avant tout d'attirer des développeurs, pas des utilisateurs finaux.

J'ai eu simplement l'heureux privilège de lire une copie en avant-première de l'excellent livre de Rick Chapman traitant de la stupidité dans l'industrie logicielle. (Prédiction : "best-seller"). Etant une sorte de type analytique, j'y ai cherché des sujets ordinaires. Un des sujets les plus importants abordant les loupés de l'industrie logicielle était un vendeur de plates-formes qui ne comprenait pas qu'il n'était qu'un vendeur de plate-forme, ainsi il aliénait les personnages-clés : les programmeurs.

Par exemple : NetWare mettait tellement de temps à sortir des outils raisonnables pour créer des NLM que quand Unix et Windows NT débarquèrent avec des outils de développement plus performants et meilleurs marché, ils furent chassés de la part d'esprit des programmeurs de logiciels pour serveurs. 

Exemple : Apple a passé des décennies à rendre la vie dure à ses développeurs. Chaque nouvel OS depuis presque 20 ans nécessitait des pincements et des changements dans le code application. Si vous connaissiez trop de succès, Apple vous concurrençait (même si souvent ils avaient une marionnette appelée Claris pour vous concurrencer afin de pouvoir prétendre que ce n'était pas eux). 

Exemple : Développer du logiciel pour OS/2 1.0 nécessitait un investissement de 3000 USD pour le SDK et vous deviez écrire tous vos propres pilotes d'imprimantes si vous jugiez importante la fonction impression. Imprimer fut important, ainsi OS/2 n'eut pas d'applicatifs.

Mais les contre-exemples sont tout aussi intéressants :

Exemple : les premières versions de Windows comprenaient un runtime gratuit à la distribution de telle manière que si vous écriviez une application Windows, vous pouviez la vendre à n'importe qui avec DOS, vous n'étiez pas limités aux petit nombres d'excentriques (moi !) qui achetaient Windows 1.0.

Exemple : Malgré les erreurs que Sun fit avec Java, la "runtime" était toujours gratuite et de bons outils Java étaient bon marché ou gratuits. Aucune autre plate-forme de développement ne prédomina si rapidement (même Visual Basic, le langage machine le plus vendu de tous les temps, mit des années à émerger).

Si vous voulez qu'une plate-forme réussisse, vous avez besoin d'une adoption massive et cela sous-tend que vous avez besoin de programmeurs pour développer dessus. Le meilleur moyen de tuer une plate-forme est de la rendre difficile d'accès aux développeurs qui construisent dessus. La plupart du temps, cela arrive parce que les sociétés de plates-formes ne savent pas si c'est une plate-forme (elles pensent que c'est une application) ou alors  deviennent trop gourmandes (elles veulent tout le revenu pour elles).

Les sociétés de plates-formes gloutonnes ne peuvent se faire à l'idée que toutes sortes de racailles mal lavées soient avides de faire de l'argent sur leur plateforme, aussi rendent-elles les reprisages presque impossibles à développer. Probablement l'échec le plus spectaculaire illustrant cet exemple fut IBM PS/2, avec son gigantesque portefeuille de technologies propriétaires, comme la nouvelle architecture Microchannel conçue pour garantir à IBM une barrière à l'entrée sur la production de cartes d'extension. Cela démontre évidemment une vue d'esprit monumentement rétrécie. Personne n'a voulu de PS/2 parce que les cartes d'extension n'étaient pas disponibles et étaient trop chères quand elles l'étaient (ndt disponibles ?). En tant que vendeur de plates-formes, vous ne réusssissez que grâce aux gens qui bâtissent sur vous.

Un problème plus subtil se pose quand les vendeurs de plates-formes ne pensent pas qu'ils disposent d'une plate-forme, ils pensent qu'ils ont une application. Pour illustrer cela, je dois une fois de plus accuser Groove.

¨"Pourquoi continues-tu à accuser Groove, Joel ?" Trois raisons :

  • Ils ont une architecture intéressante qui fournit une fonctionnalité plate-forme importante que je pourrais vraiment utiliser dans mes propres produits ;
  • Ils rendent le développement impossible (ou au moins irréaliste) sur leur plate-forme pour des ISV, ceci les condamnant à tomber dans l'oubli, soit par leur avidité ou parce qu'il pensent que Groove est une application, pas une plate-forme.
  • et l'inventeur de Groove Ray Ozzie a un carnet Web (weblog), aussi il peut me répondre s'il pense que je suis hors propos. ( Il le fit)

Voilà comment je perçois le problème Groove. J'ai un produit, CityDesk, pour de la gestion de contenu simple à partir du bureau. Carnets Web (Weblogs), sites de sociétés, petites organisations, etc... -- tous les gens qui ont besoin de gestion de contenu mais ne peuvent pas s'offrir les gros systèmes, ne contrôlent pas un serveur où qu'il soit ou simplement ne veulent pas se soucier à l'installation de scripts Perl sur un serveur.

La version 1.0 du produit a encore des points faibles. Un des plus importants est que les gens veulent collaborer sur CityDesk via internet. Une demande fondée. Pour la prochaine mise à jour majeure, nous devons faire quelque chose sur cette fonctionnalité. Pour faire simple, nous avons deux choix. Le choix traditionnel serait de construire quelquechose du type client-serveur : mettre un serveur CityDesk que vous pouvez installer quelque part de telle manière que n'importe qui puisse collaborer.

Mais un autre choix, qui serait de maintenir le bénéfice de CityDesk - "ne rien exiger quoi que ce soit sur le serveur" -, serait d'utiliser une architecture "pair à pair" sécurisée. Exactement ce que Groove fournit.

Aussi j'ai réfléchi à porter CityDesk vers Groove. Puis j'ai remarqué que :

  1. Il n'existe pas de runtime gratuite pour Groove. Cela obligerait chacun de mes clients à acheter Groove
  2. Personne n'a encore Groove à ce jour.

Cela dégomma l'idée Groove dès le départ. J'ai parlé à quelques "partenaires" Groove prétendus développeurs de logiciels pour Groove. "Est ce que la relation Groove vaut la peine ?" je leur demandais. "Hmm" répondaient-ils. "Nous payons 1500 USD et en échange nous avons moins de 10 clics par mois provenant de leur page Web. Une perte d'argent. Nous ne pouvons même pas obtenir de Groove un partage de leurs fichiers clients".  

Ce n'est pas le genre de plate-forme sur laquelle je veux développer. A ce jour, technologiquement, c'est exactement le genre de plate-forme que je veux développer, mais elle est contrôlée par une société gourmande (ou qui ne sait rien ?) qui va s'asphyxier -- sur les applications obligatoires de Groove. Ray Ozzie "s'emporte" sur la dimension cool des weblogs -- Où est l'application weblog pour Groove ? Qui va en écrire une ? Ev Williams, le créateur de Blogger ? Même Blogger Pro ne vaut que 35 US$ par an et ça ne va pas très loin pour payer une simple licence utilisateur Groove à 99 US$.

Qu'arriverait-il si la "runtime" Groove était gratuite ? Suivez l'arc de Windows. Il a démarré avec une runtime gratuite qui vous laissait tourner une application GUI à la fois. Naturellement, beaucoup de gens achetaient la version complète pour bénéficier du gestionnaire de fichiers Windows, couper et coller entre les applications Windows, etc... Puis Windows 3.0 est sorti et devint populaire et disposait de tant d'applications livrées avec chaque PC. Aujourd'hui Windows est comme la redevance télévisée en Bretagne. Tout le monde la paie à part le développeur -- si vous écrivez du logiciel pour Windows, elle ne coûte pas un centime. En fait jamais dans l'histoire de Windows les développeurs n'eurent à se soucier du coût de Windows lui-même.

Quiconque a déjà essayé de vendre des composants logiciels (contrôles ActiveX, beans, etc.) sait que vous devez avoir une runtime libre de droit sous peine de ne voir aucun développeur la toucher. Même Microsoft vous laisse redistribuer Jet, un moteur de base de données relationnelle qui est 9/10 de Microsoft Access. En plus, il est pré-installé sur Windows 2000. 

Si Groove veut être une plate-forme à succès, ils ont besoin de faire la même chose. Une version Groove redistribuable signifierait que des centaines d'applications émergeraient et provoqueraient une diffusion large et lointaine de la runtime. Nombre de ces utilisateurs verraient la valeur en achetant la version complète de Groove avec des fonctionnalités intégrées de collaboration. Les services Groove comme les réflecteurs hébergés bénéficieraient d'une bien plus grande audience potentielle.

Bien sûr, ils peuvent continuer à suivre la route de Notes, assumant que le seul moyen de vendre du logiciel est d'acclamer le PDG avec des Powerpoint et de vendre des licences grands comptes à 1 000 000 USD. Eventuelllement, cela produit beaucoup d'argent pour Lotus, parce que Notes a une application irrésistible -- le courrier électronique -- intégrée. Mais imaginez si la runtime Notes avait été gratuite. Si Notes avait une industrie logicielle assise au sommet de sa gloire des années 80, quelque startup en sommeil aurait pu lui produire une application hypertexte irrésistible à la place et préempté le Web. Les rêves de gigantesques réseaux Notes auraient pu voir le jour. Notes serait devenu aussi banal que les PC comme Solitaire. Aujourd'hui ce n'est qu'un Autre Système de Courrier Electronique, un sans beaucoup d'avenir.

Je poursuis l'accusation Groove, pas uniquement parce qu'il y a quelque chose d'intéressant à l'intérieur, une des rares technologies suffisamment intéressantes pour s'en préoccuper. Oui, les ingénieurs de Groove sont des astronautes de l'architecture. That's OK. Ils construisent une architecture. Mais se positionnent comme une application et je ne pense pas que Groove réussisse s'il font cela. Quelque part ailleurs viendra une architecture P2P qui se vendra comme un composant ou sera produite en Librairie Open Source (oui, je connais JXTA), et c'est ce que les programmeurs utiliseront.

The contents of these pages represent the opinions of one person.
All contents Copyright 1999-2002 by Joel Spolsky. All Rights Reserved.


Valid HTML 4.01!