søndag den 30. marts 2008

Udvidbarhed

Jeg har lige siddet og læst Jeff Atwoods blog The dark side of extensions, hvor han argumenterer for, at ulempen ved at basere sig på udvidelser (extensions) er, at mange ikke benytter sig at tilbuddet om personalisere produktet - de bruger den basale version.

Hans eksempel er Firefox i forhold til Safari, og hans budskab er, at Firefox er en platform, hvor Safari er et færdigt produkt. Nu kan man altid diskutere, hvem som "slår" hvem, men jeg er enig i Jeffs præmis om, at Firefox først virkelig skinner igennem, når man har fået personaliseret den med en god håndfuld udvidelser. Og sådan skal det i følge firefox-bagmændene være, også selvom det betyder at Safari er milevidt foran Firebox, hvis man tager begge "out-of-the-box".

Så langt er jeg enig med Jeff - og havde jeg været helt enig med ham, så var der ikke kommet en blog ud af det. Men jeg er kun enig med ham i præmisserne. Hans konklusion er, at man med jævne mellemrum skulle folde de mest populære plugins ind i platformen. Hans holdning er mao. at man skal lave programmerne udvidbare og tilpasningsvenlige i håbet om at få et "community" op og stå, og så jævnligt og systematisk høste de ideer, som har den største overlevelsesevne (hvordan oversætter man i øvrigt "community"? - "software-økosystem" er mit bedste gæt, og det lyder alt for højstemt) .

Ja... - og så alligevel nej. Selvfølgelig skal man høste det bedste af det bedste, og selvfølgelig skal man hele tiden holde et vågent øje med, hvordan verden udvikler sig. Men ideen om rutinemæssigt at udvide platformen med det mest populære er, efter min mening, helt forkert. Det er tanken om at "one-size-fits-all", og det er i direkte modstrid med tanken om en fleksible platform. Hvis det får lov at løbe over nogen gange, så vil det slide systemet ned, og det vil miste sin dynamik. Man vil godt nok stå med et fint produkt, men det vil være et produkt, som kun er fint lige nu (og kun for "flertallet" - som jo som oftest ikke er så stort, som det lyder til - og et "flertal" som vil svinde ind over tid). Jeg vil personligt ikke bryde mig om det - for mig er retten til at kunne vælge fra mindst lige så vigtigt, som muligheden for at kunne vælge til.

Det man i stedet - efter min mening - bør gøre, er at kigge i retning af færdigpakkede løsninger. Der kan være en basismodel for den omkostningsbevidste, en mellemmodel til os almindelige, og en luksusmodel til dem, som vil have det bedste af det bedste - eller modeller, som retter sig imod forskellige brugsmønstre. Men stadig med frie muligheder for at vælge en anden radio (hvis det er biler) eller en bedre adblocker (hvis der er en browser).

Hvis man vil se, hvordan det kan gøres, så kan man kigge på Eclipse (Eclipse er - i sin traditionelle form - et java-udviklingsmiljø). Eclipse er både en platform og et community, og der er også til Eclipse et hav af udvidelser. Og alligevel har man, trods det faktum, at man henvender sig til mere professionelt orienterede brugere, lavet pakkeløsninger. Det startede Callisto, som var et forsøg på en samlet release af platformen og toneangivende plugins, og det havde i sig selv stor værdi (Callisto er senere blevet fulgt op af Europa, og snart den kommende Ganymede). Men det helt store værdi ligger efter min mening i, at det muliggjorde at man kunne lave gennemprøvede og sammenhængende standardkonfigurationer af Eclipse.

Eller man kan kigge i retning af Linux. Her har man også en platform og et community - og en række forskellige tilpasningsvenlige pakkeløsninger (man kalder det så godt nok for "distributioner"). Personligt startede jeg i sin tid med Slackware, har siden arbejdet meget med Redhat og Mandrake, og har senest kastet min kærlighed på Ubuntu. Alle har kørt fint "out-of-the-box", men det har alligevel haft stor værdi, at jeg over tid kunne file dem til og justere på dem.

Og det samme bør man efter min mening overveje med Firefox. Det vil give det bedste af begge verdener - en "færdig" løsning, som man alligevel kan tilpasse og forbedre.

2 kommentarer:

Anonym sagde ...

Hey, I tried reading your entry and I got some parts of it. I'm a Mac user and I've been a loyal user of Firefox for a couple of years and I can tell you one thing.. I prefer FF over Safari, because I find Safari to be technically behind FF on many aspects.
For starters, Firefox is smarter. No doubt. It remembers your logins and passwords, it has a bunch of really cool add ons and applications you can download for free to make it more personalized, it looks a million times better... Safari is disturbing. I find it clumsy since it doesn't stand up to FF performance-wise.
But on the other hand, I'm not a computer scientist. I don't know anything programming or computer software. I might be wrong, but then again, the majority of internet users are folks just like me :)
All the best! Thanks for answering my stupid comments over at Rasmus' blog! It's really entertaining.

Unknown sagde ...

Natalie, as I haven't ever used a Safari browser I really can't comment on its and Firefoxs relative merits. My post was more on the topic of extentability (aka. the ability to customize or - as you rightly put it - personalize), and you actually highlight two important points:

* With regard to most applications most of us aren't computer scientists and frankly shouldn't have to be. Applications you don't use on a regular basis cannot afford to have a steep learning curve, and thus cannot afford the luxury of being a rather bare platform for extensions - they must be readily usable out-of-the-box.

* Even if you are a computer scientist and uses a program for several hours daily, and even if it is highly extentable, the cost of finding the right mix of extensions and keeping them up-to-date often is prohibitive high. The Eclipse Java IDE is a point in case.

On the other hand I am firm believer in choice and tend to frown at the thought of "one-size-fits-all". It doesn't - and trying to cater for everyone leads to bland results - it's like trying to combine an entire dinner into a single course.

That's why I agree that you should have preconfigured alternatives to choose amongst and it is quite OK for these to incorporate the best-of-the-breed extensions. My objection to Jeff Atwoods post is solely against folding them into the base - I find it just as important to be able to substitute or maybe even to substract from a configuration as it is to be able to extend it.