Platformen

From The Joel on Software Translation Project

Revision as of 09:07, 1 February 2006 by 194.183.127.10 (Talk)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

< Main Page | Dutch | 2002-Aug-30 Platforms >

Door Joel Spolsky
Vertaald door Adriaan van den Brand
Geredigeerd door Mark Tetrode
30-8-2002

Platformen

De meeste software ontwikkelbedrijven, inclusief Fog Creek Software, zijn erg gelukkig met het schrijven van enkel software applicaties. Je weet wel, programma's die wat doen, of die een bepaald probleem oplossen. Maar de dapperen onder ons willen de wereld in belangrijkere mate veranderen, en verkiezen om te werken aan platformen: reusachtige brokken software die out-of-the-box niet echt iets doen, maar die een hele wereld van nieuwe en interessante applicaties mogelijk maken. Dus schrijven zij besturingssystemen, of DBMS-en, of taal-run-times zoals Java en daarmee hopen ze onafhankelijke software-ontwikkelaars te trekken om de grote nieuwe applicatie te bouwen die door hun platform mogelijk gemaakt worden. Vrijwel per definitie is een besturingssysteem een platform. Veel platformen leven bovenop een besturingssysteem, zoals de Java run-time. En vergeet niet dat Windows niet als besturingssysteem begonnen is, het is begonnen als een programma, wat je startte vanuit DOS wat (uit de doos) niet echt veel deed, maar wat software ontwikkelaars toeliet om GUI applicaties te maken voor goedkope Intel-dozen.

Het is heel erg belangrijk om uit te vinden of je product een platform is of niet, want platformen moeten op een heel andere manier in de markt gezet worden om succesvol te zijn. Dat is omdat een platform in de allereerste plaats moet appelleren bij de software ontwikkelaars, en minder de eindgebruikers.

Ik heb het geluk gehad om een voorpublicatie te lezen van Rick Chapman's geweldige nieuwe boek over stommiteiten in de software industrie (voorspelling: bestseller). Als analytische jongen keek ik naar gelijke thema's. Eén van de grootste thema's in de stommiteiten van de software industrie is de platform-leverancier die niet begrijpt dat hij een platform-leverancier is, en dus verdreven ze de sleutelfiguren: de ontwikkelaars.

Voorbeeld: NetWare heeft er zo lang over gedaan om redelijke tools vrij te geven om NLM's te bouwen, dat toen Unix en Windows NT met superieure en goedkopere ontwikkeltools kwamen, deze de aandacht van de server softwareontwikkelaars wegkaapten.

Voorbeeld: Apple heeft er tientallen jaren lang aan gewerkt om het leven voor hun ontwikkelaars te verzieken. Gedurende bijna 20 jaar heeft ieder nieuw OS vele aanpassingen en veranderingen aan applicaties vereist. Als je te succesvol werd, dan trok Apple tegen je ten strijde (hoewel ze soms een handpop genaamd Claris hadden die je tegen kon werken, zodat zij konden voordoen dat zij het niet waren).

Voorbeeld: Het ontwikkelen van software voor OS/2 1.0 vereiste een investering van $3000 voor de SDK, en je moest al je eigen printer-drivers schrijven wanneer printen belangrijk voor je was. Printen was belangrijk, dus had OS/2 geen applicaties.

Maar de tegenvoorbeelden zijn even interessant:

Voorbeeld: De eerste versies van Windows werden geleverd inclusief een vrij distribueerbare run-time, zodat als je een Windows applicatie schreef, je die aan iedere DOS-bezitter kon verkopen, niet beperkt tot die enkele rare excentriekelingen (ik!) die Windows 1.0 gekocht hadden.

Voorbeeld: Ondanks de vergissingen die Sun gemaakt heeft met Java was de run-time altijd gratis en goede tools waren ook goedkoop of gratis. Geen ander ontwikkelplatform werd zo snel zo populair (zelfs Visual Basic, de meest verkochte computertaal aller tijden, heeft jaren nodig gehad om te groeien).

Als je wilt dan een platform succesvol wordt, dan heb je een massale omarming nodig, en dat betekent dat je ontwikkelaars nodig hebt om er voor te ontwikkelen. De beste manier om een platform om zeep te helpen is door het moeilijk te maken voor ontwikkelaars om er op te bouwen. Meestal gebeurt dit omdat platformbedrijven ofwel niet weten dat ze een platform hebben (ze denken dat het een applicatie is), of ze zijn te hebzuchtig (ze willen alle winst voor zichzelf).

Hebzuchtige platform bedrijven kunnen niet tegen het idee dat allerlei ongeschoren types geld verdienen aan hun platform, dus maken ze het zo goed als onmogelijk voor een ieder om er voor te ontwikkelen. Waarschijnlijk de meest spectaculaire fout die dit illustreert was IBM's PS/2, met zijn grote portfolio aan eigen gesloten technologieën, zoals de nieuwe Microchannel architectuur, die ontwikkeld was om te garanderen dat alleen IBM uitbreidingskaarten kon maken. Dit is, natuurlijk, monumentaal kortzichtig. Niemand wilde PS/2s omdat, uh, insteekkaarten niet beschikbaar waren en ze te duur waren wanneer ze wel bestonden. Als een platform-leverancier, ben je slechts zo succesvol als de mensen die op je bouwen.

Een subtieler probleem is als platform-leveranciers niet denken dat ze een platform hebben, maar dat ze een applicatie hebben. Om dit te illustreren ga ik nog een keer vitten op Groove.

"Waarom blijf je vitten op Groove, Joel?" Drie redenen:

  • ze hebben een interessante architectuur die een belangrijke platform-functionaliteit biedt die ik goed in mijn eigen producten kan gebruiken,
  • ze maken het onmogelijk (of in ieder geval onrealistisch) voor ISVs (onafhankelijke software verkopers) om op hun platform te bouwen, daarom doemen zij zichzelf de vergetelheid in, hetzij uit hebzuchtigheid of omdat ze denken dat Groove een applicatie is, en geen platform,
  • en Groove uitvinder Ray Ozzie heeft een weblog, dus kan hij mij antwoorden als hij denkt dat ik er naast zit (heeft hij gedaan (enkel engels)).

Zo merkte ik het probleem van Groove op. Ik heb een product, CityDesk, voor eenvoudig desktop web content beheer. Weblogs, websites voor bedrijven, kleine organisaties, etc. - mensen die content nodig hebben maar de grote systemen niet kunnen betalen, geen server beheren of gewoon niet lastig gevallen willen worden met het gerommel om perl scripts op een server te installeren.

Omdat het een 1.0 product is, hebben we onze portie zwakheden gehad. Een van de grootste is dat mensen samen Citydesk sites willen creëren over het Internet. Een redelijke vraag. Voor de volgende versie moeten we hier iets aan doen. We hebben twee keuzes. De traditionele keuze zou zijn om iets client-server-achtigs te doen: maak een CityDesk server die je ergens kunt installeren zodat iedereen kan samenwerken.

Maar een andere keuze, die het voordeel van CityDesk (onafhankelijkheid van speciale serverfunctionaliteit) behoudt, zou zijn om een veilige peer-to-peer architectuur te gebruiken. Zoiets is precies vat Groove biedt.

Dus dacht ik aan het omzetten van CityDesk naar Groove. Toen viel het me op dat

  1. er geen gratis Groove run-time is. Iedere, maar dan ook iedere klant van mij zou Groove moeten kopen;
  2. niemand Groove al heeft.

Dat doemde het Groove idee vanaf het begin te mislukken. Ik sprak met enkele van de Groove "partners" die naar men beweert software voor Groove ontwikkelen. "Was de Groove relatie iets waard?" vroeg ik. "HA!" zeiden ze. "We hebben $1500 betaald en in ruil daarvoor krijgen we minder dan 10 doorkliks per maand van hun website. Weggegooid geld. We hebben Groove niet eens zo ver gekregen om hun klantenbestand met ons te delen."

Dit is niet het soort platform waarvoor ik wil ontwikkelen. Toch, technologisch gezien, is het precies het soort platform waarvoor ik wil ontwikkelen, maar het wordt gecontroleerd door een hebberig (of onbedachtzaam) bedrijf dat zichzelf de eigen zuurstof af gaat sluiten - de aanlokkelijke applicaties bovenop Groove. Ray Ozzie gaat door het lint over hoe vet weblogs zijn - waar is de weblog applicatie voor Groove? Wie gaat er een schrijven? Evan Williams, maker van Blogger? Zelfs Blogger Pro kost slechts $35 per jaar en dat is lang niet zo gek als het betalen van $99 Groove licentie per gebruiker.

Wat zou er gebeuren als de Groove run-time gratis was? Volg het pad van Windows. Het begon met een gratis run-time waarmee je één GUI applicatie tegelijk kon gebruiken. Uiteindelijk kochten veel mensen de volledige versie om de voordelen van Windows bestandsbeheer te gebruiken, knippen en plakken tussen Windows applicaties, enzovoort. Dan kwam Windows 3.0 uit en het was zo populair en het had zoveel applicaties dat het met iedere PC gebundeld werd. Vandaag is Windows zoals de TV -belasting in Engeland. Iedereen betaalt het behalve de ontwikkelaar - wanneer je software schrijft voor Windows, dan kost het geen cent extra. Feit is dat nooit in de geschiedenis van Windows, ontwikkelaars zich zorgen hebben hoeven te maken over de kosten van Windows zelf.

Iedereen die ooit geprobeerd heeft om software componenten (ActiveX controls, beans, etc.) weet dat je een run-time nodig hebt die vrij is van royalty's, of geen ontwikkelaar komt bij je in de buurt. Microsoft laat je zelfs gratis Jet herdistribueren, een complete relationele database motor die 9/10e van Microsoft Access is. Ach wat, het is voor geïnstalleerd op Windows 2000.

Als Groove een succesvol platform wil zijn, moet het hetzelfde doen. Een gratis distribueerbare kern zou betekenen dat er honderden applicaties zouden ontstaan die de run-time wijd en zijd zouden verspreiden. Vele van die gebruikers zouden de waarde zien van een volledige versie van Groove met de ingebouwde samenwerkings-functionaliteit. Groove services zoals de servergebaseerde reflectors zouden een veel groter potentieel publiek krijgen.

Natuurlijk, kunnen ze het pad van Notes volgen, aangenomen dat de enige manier om software te verkopen is om CEOs met vette Powerpoints te overdonderen en $1.000.000 van-de-plank bedrijfslicenties te verkopen. Uiteindelijk heeft dit echt wat geld opgeleverd voor Lotus, omdat Notes een aantrekkelijke applicatie - email - ingebouwd had. Maar stel je eens voor, wat als de Notes run-time gratis was geweest. Als Notes een software industrie rond zich had in de 80er jaren, zou een zolderkamer-startup wellicht een aantrekkelijke hypertekst applicatie ervoor gemaakt hebben en het Web jaren voor zijn geweest. De droom van enorme openbare Notes-netwerken zou wellicht uitgekomen zijn. Notes zou net zo algemeen zijn voor PC's als Solitaire. Vandaag is het gewoon Een van de Email Systemen, zonder veel toekomst.

Ik blijf vitten op Groove, alleen maar omdat er iets interessants in zit, een van de weinige technologieën die interessant genoeg is om iets om te geven. Ja, de Groove ontwikkelaars zijn architectuur-astronauten. Dat is prima. Ze bouwen architectuur. Maar ze positioneren het als een applicatie en ik denk niet dat Groove succesvol zal zijn als ze dat doen. Iemand anders zal langskomen met een P2P architectuur en het verkopen als een component, of het een open source library maken (ja, ik ben op de hoogte van JXTA) en dat is wat software ontwikkelaars zullen gebruiken.

De originele versie van dit artikel verscheen in het Engels onder de naam Platforms. Deze vertaling was eerder hier te vinden.

Personal tools