Il seguente documento è la traduzione in italiano di un memorandum interno Microsoft e riguarda strategie e tattiche commerciali nei confronti del procedimento open source. Ci sono tre documenti, denominati Halloween I, Halloween II e Halloween III che riguardano rispettivamente Microsoft contro open source, Microsoft contro Linux e la risposta ufficiale data da Microsoft dopo che Halloween I fu pubblicato in rete. Le traduzioni in italiano sono ospitate da SET, Syntax Error Technology. Indice e links ai documenti originali e alle relative traduzioni si trovano alla pagina msdn&news. Se cercate ulteriori informazioni sul procedimento open source, sulla reazione della stampa ai documenti Halloween, ecc., il posto migliore è il sito Open Source (in inglese). I documenti sono stati tradotti da LuLaVio: contattatelo per commenti o per segnalare eventuali errori.
The following document is the Italian translation of an internal Micrososoft memorandum and is about MS business strategies and tactics against the open source process. There are three paper, named Halloween I, Halloween II and Halloween III concerning respectively MS agaist Open Source, MS against Linux, and MS official response after Halloween I was pubblished on the web. Italian translations are hosted by SET, Syntax Error Technology. You can find an index and links to the original documents and their Italian translations at the msdn&news page. If you are looking for further information about open-source process, press coverage about the Halloween documents, etc., the best place is the Open Source site (in English). The documents have been translated in Italian by LuLaVio: please, contact him for comments and/or mistakes.
Software a sorgente aperta
Una (nuova?) metodologia di sviluppo
{ Il corpo dell'Halloween Document è un memorandum interno di strategia sulle possibili risposte della Microsoft al fenomeno Linux/Open-Source.(Questa versione corretta è stata rinominata ``Halloween I''; c'è un seguito, ``Halloween II'', con un secondo memorandum rivolto specificatamente a Linux.)
La Microsoft ha pubblicamente riconosciuto che questo memorandum è autentico, liquidandolo però come un semplice studio ingenieristico che non delinea la politica Microsoft.
Comunque, la lista dei collaboratori menzionati alla fine include alcune persone che sono conosciute per il loro ruolo chiave nella Microsoft, e il documento mostra che lo sforzo di ricerca ha avuto la cooperazione dei quadri direttivi; è anche possibile che sia stato commissionato come libro bianco con linee di condotta da sottoporre all'attenzione di Bill Gates (l'autore sembra si aspettasse che Gates l'avrebbe letto).
In qualsiasi caso, ci fornisce, oltre ad un moto di rigetto gestionale di Microsoft riguardo open-source, una visione molto preziosa su ciò che la compagnia in realtà pensa -- che, come vedrete, è una bizzarra combinazione di astuzia e di miopia istituzionale.
Vi sono state delle speculazioni sul fatto che questa sia stata una fuga intenzionale di notizie, ma ciò sembra alquanto improbabile. Il documento è troppo incriminante; parti di esso possono essere considerate delle prove di pratiche anti-competitive per il processo DOJ. Inoltre, l'autore ``ha rifiutato di confermare o negare'' quando è stato inizialmente contattato, e ciò fa capire che Microsoft non aveva previsto una risposta.
Poichè l'autore cita delle mie analisi sulle dinamiche della comunità open-source (The Cathedral and the Bazaar e Homesteading the Noosphere) in modo estensivo, mi sembra giusto rispondere a nome della comunità. :-)
Citazioni chiave:
Qui ci sono alcune citazioni di rilievo prese dal documento, con collegamenti ai punti in cui sono posizionate. Può essere d'aiuto sapere che "OSS" è l'abbreviazione usata dall'autore per "Open Source Software". FUD, una tattica caratteristica della Microsoft, è spiegata qui.
* OSS nel breve periodo si pone come una minaccia diretta alle entrate e alla piattaforma Microsoft, in particolar modo nello spazio server. Inoltre, il parallelismo intrinseco e il libero scambio di idee nell'OSS ha dei benefici che non sono replicabili dal nostro attuale modello di produzione e presenta perciò a lungo termine una minaccia per lo scambio di idee tra sviluppatori.
* Studi recenti (Internet) hanno provato... che la qualità commerciale può essere conseguita/ superata dai progetti OSS.
* ...per capire come competere con OSS, dobbiamo avere come bersaglio un procedimento più che una compagnia.
* OSS è credibile a lungo termine ... le tattiche FUD non possono essere adoperate per combatterlo.
* Linux e altri difensori dell'OSS stanno portando ragioni via via sempre più credibili sul fatto che il software OSS è solido almeno quanto -- se non più -- le sue alternative commerciali. Internet fornisce una vetrina ideale e ad alta visibilità per il mondo OSS.
* Linux è stato dispiegato in mission critical, in ambienti commerciali alla presenza di testimoni pubblici. ... Linux supera molti altri UNIXes ... Linux è sulla strada buona per possedere alla fine il mercato del x86 UNIX ...
* Linux può vincere finchè servizi / protocolli saranno merce soggetta alla vendita.
* I progetti OSS sono stati in grado di conquistare un punto d'appoggio in molte applicazioni server a causa del grande vantaggio dato da protocolli semplici e altamente personalizzabili. Estendendo questi protocolli e sviluppandone di nuovi, possiamo respingere l'entrata nel mercato dei proggetti OSS.
* La capacita del procedimento OSS di radunare e sfruttare l'IQ (coefficiente intellettuale N.d.T.) collettivo di migliaia di individui attraverso Internet è semplicemente stupefacente. E, cosa più rilevante, l'evangelizzazione di OSS aumenta proporzionalmente con le dimensioni di Internet in modo molto più veloce di quanto facciano i nostri sforzi di evangelizzazione.Come leggere questo documento:
I commenti in verde, contenuti in parentesi graffe, sono miei (Eric S. Raymond). Ho evidenziato, mettendoli in rosso, quelli che penso siano i punti chiave del testo originale. Ho inserito dei commenti vicino a questi punti chiave; potete scorrere il documento usando questo indice di commenti in sequenza.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
Ho incluso in verde alcune altre osservazioni che non sono associate a punti chiave e non sono nell'indice. Queste osservazioni addizzionali possono interessare solo se si legge il documento per intero.
A parte ciò ho lasciato il documento completamente come è (neanche corretto la battitura), così potete leggere ciò che Bill Gates sta leggendo riguardo la Sorgente Aperta. E' un po' lungo, ma perseverate. Per avere un quadro preciso del pensiero dell'opposizione vale la pena di fare qualche sforzo -- e ci sono una o due questioni veramente sorprendenti sepolte nel linguaggio corporativo.
Valutazione del pericolo:
Credo che comunque la tattica più pericolosa sostenuta in questo memorandum sia quella contenuta nella frase sinistra ``de-standardizzazione dei protocolli''.
Spero che la pubblicazione di questo documento, se non altro, metta tutti in guardia sul soffocamento della competizione, sull'erosione della possibilità di scelta, sui costi più alti, e sul monopolio blindato che questa tattica implica.
Il parallelo col tentativo di Microsoft dirottare Java, e i suoi tentativi di guastare il potenziale "scrivi una volta e vai dappertutto" di questa tecnologia dovrebbe essere ovvio.
Ho incluso una ampia discussione di questo punto nei miei commenti in interlinea. Per evitare che questa strategia abbia successo, credo che i sostenitori di open-source debbano iniziare mettendo in evidenza questi punti:
La prima (1.1) bozza del memorandum VinodV è stata preparata a cavallo del weekend del 31 ottobre-1 novembre 1998. In onore della data, e con la profonda speranza che la sua pubblicazione possa far fare alla Microsoft il peggiore degli incubi, ho dato a questo documento il nome di "Halloween Document"'.
La versione 1.2 è stata ripulita dai caratteri non-ASCII da David Levine <davidl@co.intel.com>.
La versione 1.3 rileva il riconoscimento di autenticità da parte della Microsoft.
La versione 1.4 include un po' più di analisi e la sezione sulla valutazione del pericolo.
La versione 1.5 ha qualche bit aggiuntivo nel preambolo.
La versione 1.6 ha qualcosa in più in uno dei commenti.
Nella versione 1.7 viene aggiunto il riferimento ai Fuzz papers.
Nella versione 1.8 viene aggiunto un link al documento Halloween II.
Nella versione 1.9 si aggiunge una nota riguardo HTTP-DAV support.
}
Vinod Valloppillil (VinodV)
Aug 11, 1998 -- v1.00
Microsoft Confidential
Elenco dei contenuti Elenco dei contenuti *Sommario esecutivo
*Software a sorgente aperta
*Che cos'è?
*Tassonomia delle licenze software
*Il software a sorgente aperta è importante per Microsoft
*Cronologia
*Procedimento open-source
*Team di sviluppo open-source
*Coordinazione dello sviluppo di OSS
*Sviluppo parallelo
*Correzione parallela
*Soluzione del conflitto
*Motivazioni
*Biforcazione del codice
*Punti di forza di open-source
*Attributi esponenziali di OSS
*Credibilità nel lungo periodo
*Correzione parallela
*Sviluppo parallelo
*OSS = perfetta evangelizzazione / documentazione API
*Tasso di uscita
*Punti deboli di open-source
*Costi di gestione
*Questioni sul procedimento
*Credibilità organizzativa
*Modelli di commercio open-source
*Servizi secondari
*Articoli civetta -- accesso al mercato
*Commoditizing Downstream Suppliers
*Primo fautore -- costruisci ora, $$ dopo
*Linux
*Che cos'è?
*Linux è un autentico, credibile OS + procedimento di sviluppo
*Linux è una minaccia a breve/medio termine nel campo dei server
*Linux è improbabile che sia una minaccia nel campo dei desktop
*Colpire Linux
*Netscape
*Organizzazione & licenza
*Punti di forza
*Punti deboli
*Previsioni
*Apache
*Cronologia
*Organizzazione
*Punti di forza
*Punti deboli
*IBM & Apache
*Altri progetti OSS
*Risposta di Microsoft
*Vulnerabilità del prodotto
*Acquisire i vantaggi di OSS -- interscambio di idee tra sviluppatori
*Acquisire i vantaggi di OSS OSS -- Processi interni di Microsoft
*Estendere i vantaggi di OSS -- infrastruttura dei servizi
*Attutire gli attacchi di OSS
*Altri links interessanti
*Ringraziamenti
*Cronologia della revisione
*
Software a sorgente aperta
Una (nuova?) metodologia di sviluppo
Sommario esecutivoOpen-source Software (OSS) è un procedimento di sviluppo che promuove la creazione e il dispiegamento rapido di caratteristiche aggiuntive e correzzioni di bug in un codice esistente / conoscenza base. Negli ultimi anni, parallelamente alla crescita di Internet, i progetti OSS hanno acquisito la profondità & complessità tradizionalmente associata a progetti commerciali come gli Operating Systems e i server mission critical.
{ OK, da qui si capisce che Microsoft non dorme durante il cambio. }Comunque, altri punti deboli di OSS danno modo a Microsoft di trarre profitto in aree chiave come miglioramenti dell'architettura (ad es. storage+), integrazione (ad es. schemas), facilità-d'uso, e supporto organizzativo.
{ Questa concisa raccomandazione è interessante principalmente per il fatto che non menziona gli specifici consigli che si trovano più avanti nel documento riguardo la de-standardizzazione dei protocolli ecc. } Software Open-source Che cos'è?Open-source Software (OSS) è un software in cui sia la sorgente che i binaries sono distribuiti o accessibili per un dato prodotto, solitamente free. Oss è spesso confuso come "shareware" o "freeware" ma ci sono grosse differenze tra questi modelli di licenza e il procedimento di ciascun prodotto.
Tassonomia delle licenze software
Tipo di software |
|||||||
Commerciale |
|||||||
Software in prova |
X (incompleto nelle sue caratteristiche) |
X |
|||||
Uso non commerciale |
X (dipendente dall'utilizzo) |
X |
|||||
Shareware |
X -(licenza non imposta) |
X |
|||||
Binary liberi da diritti ("Freeware") |
X |
X |
X |
||||
Biblioteche libere da diritti |
X |
X |
X |
X |
|||
Open-source (BSD-Style) |
X |
X |
X |
X |
X |
||
Open-source (Apache Style) |
X |
X |
X |
X |
X |
X |
|
Open-source (Linux/GNU style) |
X |
X |
X |
X |
X |
X |
X |
Caratteristiche della licenza |
Accesso a costo zero |
Redistribuibile |
Utilizzo illimitato |
Codice sorgente disponibile |
Codice sorgente modificabile |
"Check-ins" pubblici al nucleo del codice base |
Tutti i derivati devono essere free |
L'ampia categoria di licenze include:
Il software commerciale è il pane quotidiano di Microsoft. Deve essere acquistato, non può essere redistribuito, e solitamente è disponibile solo come binaries all'utente finale.
I software ridotti in prova sono di solito versioni con funzioni limitate di software commerciali, sono distribuite gratuitamente con l'intento di portare all'acquisto del codice in commercio. Gli esempi includono prodotti con 60 giorni di tempo per la valutazione.
I prodotti Shareware hanno una funzionalità completa e sono distribuiti liberamente ma hanno una licenza con mandato di acquisto finale sia da parte di singoli che di società. Molte utilities di Internet (come "WinZip") si avvantaggiano dello shareware come metodo di distribuzione.
Il software ad uso non commerciale è disponibile e ridistribuibile liberamente da organismi non-profit. Società, etc. devono comperare il prodotto. Un esempio potrebbe essere Netscape Navigator.
I binaries senza diritti consistono in software che possono essere usati e distribuiti liberamente solo in forma binaria. I binaries di Internet Explorer e NetMeeting corrispondono a questo modello.
Le biblioteche senza diritti sono prodotti software i cui codici sia sorgente che binario possono essere usati e distribuiti liberamente ma NON possono essere modificati dall'acquirente finale senza violare la licenza. Esempi di questo tipo includono biblioteche class, header files, ecc.
Un piccolo e circoscritto gruppo di sviluppatori sviluppa prodotti a sorgente aperta BSD-style & e consente libero uso e distribuzione di binaries e codice. Mentre agli utenti è consentita la modifica del codice, il team di sviluppo generalmente NON accetta apporti dall'esterno.
Apache prende il modello di sorgente aperta BSD-style e lo estende permettendo apporti al nucleo del codice base da parte di esterni.
Il software CopyLeft o GPL (General Public License) fa fare alla licenza open-source un pericoloso passo in avanti. Mentre il software BSD e Apache style permette agli utenti di "biforcare" il codice base e apllicare le proprie clausole di licenza al loro codice modificato (per esempio facendolo diventare commerciale), la licenza GPL richiede che tutti i lavori derivati debbano essere in codice GPL. "Tu sei libero di piratare (hack N.d.T.) questo codice a patto che i tuoi derivati siano anch'essi piratabili (hackable N.d.T.)"
Per noi, sono fondamentali i diritti che la licenza open-source garantisce agli utenti e ai terzi, e una specifica pratica di sviluppo varia ad-hoc ed in modo non abbinato in particolar modo alle nostre variazioni di licenza. In questa tassonomia Microsoft, d'altra parte, la distinzione principale si basa su chi ha accesso ad un nucleo privilegiato del codice base.
Ciò riflette una visione della realtà molto più centralizzata, e riflette una mancanza di immaginazione o di comprensione da parte dell'autore del memorandum. Non riesce a cogliere completamente la nostra tradizione di sviluppo distribuito. La qual cosa non stupisce per niente... }
Il software open-source è importante per Microsoft
Questo documento si ocupa del software open-source (OSS). OSS è profondamente diverso dalle altre forme di licenze (in particolare "shareware") rispetto a due punti molto importanti:
OSS è un problema per Microsoft per diverse ragioni:
Una barriera chiave che impediva l'ingresso di OSS in molti strati di clientela è stata la sensazione di mancanza di qualità. I sostenitori di OSS replicano che il maggior controllo & correzione del software OSS porta ad un codice con uno standard di qualità più alto del software commerciale.
Studi su un caso recente (Internet) hanno mostrato agli occhi dei clienti la prova molto evidente che la qualità commerciale può essere raggiunta / superata dai progetti OSS. In questo momento, comunque, non c'è una prova forte della qualità di OSS al di là dell'aneddottica.
{ Queste frasi, nel loro insieme, sono alquanto contraddittorie, salvo che ``gli studi su un caso recente'' siano tutti ``aneddottica''. Ma se è così, perchè chiamarla ``prova molto evidente''?Sembra ci sia un po' di marcia indietro autoprotettiva nella seconda frase. Tuttavia, la prima frase è una concessione enorme da parte di Microsoft (anche se per uso interno).
In qualsiasi caso, è falso affermare che si tratti di `aneddottica'. Vedi Fuzz Revisited: A Re-examination of the Reliability of UNIX Utilities and Services .
Qui ci sono alcune righe sul tema tratte da questo documento:
"Il tasso di insuccesso delle utilities nella versione commerciale di UNIX che abbiamo testato... variava dal 15-43%." "Il tasso di insuccesso delle utilities della versione Linux di UNIX distribuita free si attestava penultimo, al 9%." "Il tasso di insuccesso delle utilities di GNU pubblico si attestava all'ultimo posto in assoluto nei nostri studi, a solo il 7%.}
Un altro impedimento all'ingresso che è stato affrontato da OSS è la complessità del progetto. I team di OSS si stanno impegnando in progetti di una dimensione & complessità tale da essere prima d'ora di esclusivo dominio dei team di sviluppatori commerciali, economicamente organizzati/motivati. Esempi includono il Linux Operating System e Xfree86 GUI.
La vitalità del procedimento OSS è direttamente legata ad Internet per la distribuzione di risorse di sviluppo in scala mastodontica. Esempi della dimensione di alcuni progetti OSS:
Progetto |
Linee di codice |
Linux Kernel (x86 only) |
500,000 |
Apache Web Server |
80,000 |
SendMail |
57,000 |
Xfree86 X-windows server |
1.5 Million |
"K" desktop environment |
90,000 |
Full Linux distribution |
~10 Million |
Il procedimento OSS è singolare per le motivazioni che spingono chi vi partecipa e per le risorse che vengono apportate nel mettere a nudo i problemi. OSS, quindi, ha alcuni pregi interessanti che dovrebbero essere compresi in profondità.
Il software open-source ha le sue radici nella comunità scientifica e hobbystica ed è stato tipicizzato attraverso uno scambio ad hoc del codice sorgente dagli sviluppatori/utenti.
Internet Software
Il più grande caso studiato di OSS è Internet. La maggio parte del primo codice su Internet era, ed è ancora, basata su OSS, come descritto in una intervista a Tim O'Reilly (
http://www.techweb.com/internet/profile/toreilly/interview ):TIM O'REILLY: Lo slogan principale con cui iniziammo era,"open-source software funziona." ... BIND ha una quota di mercato assolutamente dominante come singolo pezzo di software più mission-critical su Internet. Apache è il Web server dominante. SendMail fa girare probabilmente l'ottanta per cento dei mail servers e probabilmente tocca ogni singola parte di e-mail su Internet
Fondazione Free Software / Progetto GNU
Il merito per aver realizzato il primo esempio di un moderno e organizzato OSS è generalmente attribuito a Richard Stallman del MIT. Alla fine del 1983, Stallman creò la Free Software Foundation (FSF) --
http://www.gnu.ai.mit.edu/fsf/fsf.html -- con l'obbiettivo di creare una versione free del sistema operativo UNIX. La FSF fece uscire una serie di codici e binaries sotto l'acronimo GNU (che sta per "Gnu's Not Unix").Le iniziative originarie FSF / GNU non conseguirono l'obbiettivo originario di creare un completo OSS Unix. Tuttavia, contribuirono a molte applicazioni e strumenti di programmazione conosciuti e usati oggigiorno che includono:
Licenza CopyLeft
Il software FSF/GNU ha introdotto lo schema di licenza "copyleft" che non solo rende illegale il nascondere il codice sorgente dal software GNU ma rende anche illegale il nascondere la sorgente dal lavoro derivato dal software GNU. Il documento che descrive questa licenza è conosciuto come General Public License (GPL).
Il magazine Wired ha il seguente riassunto di questo schema & del suo scopo (
http://www.wired.com/wired/5.08/linux.html):La General Public License, o GPL, permette agli utenti di vendere, copiare, e cambiare programmi che sono sotto copylef - che possono anche essere messi sotto copyright - ma ci deve essere la stessa libertà di vendere o copiare le modifiche e cambiarle ulteriormente. Si deve inoltre rendere il codice sorgente delle modifiche liberamente disponibile.
La seconda clausola -- codice open-source di lavori derivati -- è stato l'aspetto della licenza Copyleft più controverso (e, potenzialmente quello con più successo).
Procedimento open-sourceL'organizzazione dei procedimenti di sviluppo dei sofware commerciali ruota attorno ad obbiettivi economici. Comunque, poichè i soldi spesso non sono la motivazione (primaria) dietro il software open-source, capire la natura della minaccia posta in essere richiede una profonda conoscenza del procedimento e degli stimoli dei team di sviluppo open-source.
{ Questa è una precisazione molto importante, che vorrei fosse sfuggita a Microsoft. La vera battaglia non è NT contro Linux, o Microsoft contro Red Hat/Caldera/S.u.S.E. -- è sviluppo a sorgente chiusa contro sviluppo a sorgente aperta. La cattedrale contro il bazaar.Ciò si applica anche al contrario, ed è per questo che il punto non è colpire Microsoft qua Microsoft -- Microsoft è il sintomo, non la malattia. Vorrei che molti più hackers di Linux lo capissero.
A livello pratico, significa che dobbiamo aspettarci che la macchina propagandistica di Microsoft si indirizzi contro il procedimento e la cultura open-source, più che contro competitori specifici. }
Gruppi di sviluppo open-source
Alcune delle caratteristiche chiave dei gruppi OSS spinti da Internet:
Comunicazione -- in scala Internet
Il coordinamento di un team OSS dipende molto dalle forme di collaborazione proprie di Internet. I metodi tipici sfruttano l'intera gamma delle tecnologie di collaborazione in Internet:
I progetti OSS della dimensione di Linux e Apache sono fattibili solo se, per affrontare un problema, viene messo assieme un gruppo sufficientemente grande di sviluppatori altamente esperti. Di conseguenza, c'è una correlazione diretta tra la dimensione del progetto che OSS può affrontare e la crescita di Internet.
Direzione comune
Oltre al mezzo di comunicazione, un'altra serie di fattori coordinano implicitamente la direzione del gruppo.
Obbiettivi comuni
Gli obbiettivi comuni sono equivalenti ad asserzioni evocative che pervadono il processo decisionale comune per l'intero gruppo di sviluppo. Un' unica, chiara direttiva (ad es. "ricreare UNIX") ha per il gruppo un potere comunicativo e di coinvolgimento maggiore di direttive multiple ed inafferrabili (ad es. "fare un buon sistema operativo").
Precedenti comuni
I precedenti sono potenzialmente il fattore più importante per spiegare la rapida e coesa crescita di enormi progetti OSS come il Linux Operating System. Poichè gli appartenenti all'intera comunità Linux condividono anni di esperienza nel trattare con molte altre forme di UNIX, essi sono facilmente in grado di distinguere -- in modo non-confrontativo -- cosa ha funzionato e cosa no.
Non c'erano discussioni riguardo la sintassi dei comandi da usare negli editor di testo -- tutti usavano già "vi" e gli sviluppatori semplicemente si spartivano pezzi di command namespace da sviluppare.
Avere una capacità di comprensione 20:20 data dall'esperienza storica, fornisce una struttura forte ed implicita. In organizzazioni più lungimiranti, questa struttura è data da un leader forte ed utopista.
{ Ad una prima occhiata, si può leggere semplicemente come un (Bill naso marrone) commento fatto da qualcuno che si aspetta che Gates legga il memorandum -- si può quasi vedere l'autore genuflettersi davanti ad un'icona dell'Intrepido Capo.Più generalmente, ciò fa pensare ad una seria e potenzialmente spiegabile sottovalutazione della capacità da parte della comunità di esprimere i propri leaders utopisti. Non abbiamo ottenuto Emacs o Perl o il World Wide Web partendo dalla ``comprensione 20:20'' -- nè è corretto vedere il seppur relativamente conservativo design del kernel di Linux come un modo di guardare indietro nel ricreare modelli passati.
Di conseguenza, ciò suggerisce che la risposta Microsoft all'open-source possa poggiarsi sul piede sbagliato nell'enfatizzare l'innovazione sia per come agiamo che nel modo in cui spieghiamo ciò che facciamo al resto del mondo. }
Bagaglio di conoscenze comuni NatBro mette in evidenza che il bisogno di una serie di conoscenze comuni ed accettate è un pre-requisito per lo sviluppo di OSS. Questo punto è legato strettamente al fenomeno dei precedenti in comune. Dalla sua email: Un attributo chiave è il bagaglio comune di conoscenze su UNIX/gnu che OSS trasmette e rinforza. Io penso che l'intero procedimento non funzionerebbe se la barriera d'accesso fosse molto più alta di quella che è...un programmatore UNIX con modesta esperienza può accrescere le sue conoscenze facendo grandi cose con Linux e con molti altri prodotti OSS. Per dirla in un altro modo -- per uno sviluppatore in ambiente OSS non è troppo difficile cavarsi uno sfizio, perchè le cose sono costruite in modo molto simile l'una all'altra, corrette nello stesso modo, ecc. Mentre le esperienze precedenti stabiliscono l'identità dell'obbiettivo finale, l'avere un bagaglio comune di conoscenze spiega il numero di persone necessarie affinchè il procedimento arrivi a conclusione
La cattedrale e il bazaar
Un documento molto influente di un sostenitore di open-source -- Eric Raymond -- venne pubblicato per la prima volta nel maggio 1997 (
http://www.redhat.com/redhat/cathedral-bazaar/). Lo scritto di Raymond è stato espressamente citato dal (futuro) CTO di Netscape Eric Hahn come spiegazione per la loro decisione di distribuire il codice sorgente del browser.Raymond sezionò il suo progetto OSS allo scopo di ottenerne delle regole pratiche che potessero essere sfruttate in futuro per altri progetti OSS. Alcune delle regole di Raymond includono:
Ogni buon lavoro inizia dalla soddisfazione di uno sfizio personale dello sviluppatore
Questo riassume uno degli stimoli base degli sviluppatori nel procedimento OSS -- risolvere un problema corrente a cui si è trovato di fronte un singolo sviluppatore -- ciò ha permesso a OSS di elaborare progetti complessi senza avere un costante feedback dalla struttura di marketing / sostegno.
I bravi programmatori sanno cosa scrivere. Quelli molto bravi sanno cosa riscrivere (e riusare).
Raymond sostiene che gli sviluppatori sono più portati al riuso del codice in un procedimento rigorosamente a sorgente aperta piuttosto che in un ambiente di sviluppo più tradizionale perchè è sempre garantito loro l'accesso all'intera sorgente per tutto il tempo.
Una sorgente aperta ampiamente disponibile riduce i costi di ricerca per trovare un particolare pezzetto di codice.
``Metti in conto che scarterai molte case; in qualsiasi caso lo farai.''
Citazione da Fred Brooks, ``The Mythical Man-Month'', capitolo 11. Poichè i team di sviluppo di OSS sono estremamente sparsi, molti dei maggiori sottocomponenti in Linux avevano numerosi prototipi iniziali cui seguiva la selezione e la rifinitura di un singolo disegno da parte di Linus.
Trattare i propri utenti come co-sviluppatori è la via meno difficile per avere un rapido miglioramento di codice ed una correzione efficiente.
Raymond si fa promotore di un supporto importante e di una notevole documentazione per gli sviluppatori dei progetti OSS allo scopo di massimizzarne il profitto.
Il materiale riguardanete il codice è citato come un'area che viene trascurata dagli sviluppatori commerciali e che potrebbe costituire un errore fatale per OSS.
Fare uscire presto. Fare uscire spesso. E ascoltare i propri clienti.
Questa è una regola classica del manuale Microsoft. I sostenitori OSS noteranno comunque che il loro ciclo release-feedback è potenzialmente molto più veloce di quello dei software commerciali.
{ Questa è una affermazione interessante ed arrogante, come se pensassero che io sia stato in qualche modo ispirato dalla distribuzione Microsoft di soli binary.Ma ciò fa pensare anche a qualcos'altro -- che anche se l'autore comprende intellettualmente l'importanza della distribuzione del codice sorgente, non riesce ad afferrare a pieno la potenza vera della diffusione del codice sorgente. Forse vivere con le convinzioni Microsoft rende ciò impossibile. }
Data una base grande abbastanza di beta-tester e co-sviluppatori, quasi ogni problema viene definito velocemente e la sua sistemazione risulta ovvia per qualcuno.
Questo è probabilmente il cuore dell'intuizione di Raymond nel procedimento OSS. Ha parafrasato questa regola come "la correzione dei bug è parallelizzabile". Segue un'analisi più approfondita.
{ Beh, aveva comunque quel diritto. }Sviluppo parallelo
Una volta che una struttura componente è stata costituita (ad es. chiave di API & strutture definite), progetti OSS come Linux utilizzano molteplici piccoli gruppi di individui che risolvono indipendentemente problemi particolari.
Poichè gli sviluppatori lo fanno generalmente per hobby, avere capacità di `investire' in molteplici e competenti sforzi non costituisce un problema, e i progetti OSS si avvantaggiano della capacità di cogliere i perfezionamenti potenzialmente migliori tra i molti prodotti.
Da notare che ciò dipende molto da:
Il cuore della questione sostenuta da Eric Raymond è che a differenza di altri aspetti dello sviluppo di software, la correzione dei bug del codice è un'attività la cui efficienza migliora in modo quasi lineare con il numero degli individui impegnati nel progetto. I costi di gestione o coordinazione per la correzione di un pezzo di codice a sorgente aperta sono pochi o nulli -- questa è la `rottura' chiave nelle regole di Brooks' per OSS.
Raymond include la descrizione di Linus Torvald del procedimento di correzione Linux:
La mia formulazione originale diceva che ogni problema ``è chiaro per qualcuno''. Linus commentava dicendo che chi capisce e sistema il problema non deve essere necessariamente e neanche solitamente colui che l'ha definito per primo. ``Qualcuno trova il problema,'' diceva, ``e qualcun'altro lo comprende. E continuo dicendo che trovarlo è la sfida più grande.'' Ma il punto è che entrambe le cose tendono ad avvenire velocemente
Messa in un altro modo:
``La correzione dei bug è parallelizzabile''. Jeff [Dutky <dutky@wam.umd.edu] osserva che sebbene la correzione richieda la comunicazione tra correttori e un qualche sviluppatore che coordina, la correzione stessa non richiede una coordinazione effettiva tra correttori. Quindi non diviene preda della complessità e dei costi di gestione che rendono difficile l'aumento di sviluppatori.
Un vantaggio della correzione parallela è che i bug e la loro sistemazione vengono trovati / propagati molto più velocemente che nei procedimenti tradizionali. Per esempio, quando l'attacco dell'IP di TearDrop fu per la prima volta postato in rete, dopo meno di 24 ore la comunità Linux aveva una correzione funzionante e disponibile da scaricare.
"Correzione impulsiva"
Un'estensione alla correzione parallela che aggiungerei alle ipotesi di Raymond è la "correzione impulsiva". Nel caso dell'OS di Linux, all'atto di installare l'OS è implicito l'atto di installare l'ambiente di correzione/sviluppo. Di conseguenza è molto probabile che se un particolare utente/sviluppatore si imbatte in un bug di un componente di un altro individuo -- e specialmente se questo bug è "superficiale" -- quell'utente può rapidamente rattoppare il codice, e tramite le tecnologie di collaborazione di Internet, propagare questa pezza molto velocemente fino al mantenitore del codice.
Detta in un altro modo, i procedimenti OSS hanno una barriera d'accesso al procedimento di correzione molto bassa dovuta alla comune metodologia di sviluppo/correzione derivata dagli strumenti GNU.
Risoluzione dei conflittiOgni grande procedimento di sviluppo va incontro a conflitti che devono essere risolti. Spesso la soluzione è una decisione arbitraria allo scopo di far progredire il progetto. Nei team commerciali, la struttura gerarchica + revisione delle prestazioni risolve questo problema -- come fanno i team OSS a risolverlo?
Nel caso di Linux, Linus Torvalds è l'indiscusso `leader' del progetto. Egli ha delegato ampie componenti (ad es. networking, device drivers, ecc.) a parecchi suoi fidati "luogotenenti' che a loro volta delegano de-facto ad un gruppetto di "tenutari d'area" (ad es. LAN drivers).
Altre organizzazioni sono descritte da Eric Raymond: (http://earthspace.net/~esr/writings/homesteading/homesteading-15.html):
Alcuni progetti molto grandi lasciano completamente da parte il modello del ' generoso dittatore'. Un modo per farlo è riunire i co-sviluppatori in un comitato deliberativo (come in Apache). Un altro è la dittatura a rotazione, in cui il controllo viene passato da un membro ad un altro all'interno di un circolo di co-sviluppatori anziani (gli sviluppatori Perl si organizzano in questo modo).
Motivazioni
Questa sezione fornisce una panoramica di alcune delle ragioni chiave cercate dagli sviluppatori OSS per sviluppare i progetti OSS.
Risolvere il problema a portata di mano
E' di fatto la riformulazione della prima regola pratica di Raymond -- "Ogni buon lavoro inizia dalla soddisfazione di un personale sfizio dello sviluppatore".
Molti progetti OSS -- come Apache -- sono iniziati con un piccolo gruppo di sviluppatori assieme per risolvere un problema contingente a portata di mano. Miglioramenti successivi del codice spesso sorgono da individui che applicano il codice ai loro programmi (ad es. scoprendo che non c'è un driver per un NIC particolare ecc.)
Didattica
Il kernel di Linux crebbe all'interno di un progetto di didattica all'Università di Helsinki. In modo simile, molti dei componenti dei sistemi di Linux / GNU (X windows GUI, shell utilities, clustering, networking, ecc.) furono estesi da persone all'interno di istituzioni educative.
Gratificazione dell'ego
La più eterea, e forse la più profonda delle motivazioni presenti nella comunità di sviluppatori OSS è la pura gratificazione dell'ego.
In "The Cathedral and the Bazaar", Eric S. Raymond cita:
La ``funzione utile'' che gli hackers di Linux massimizzano non è quella economica classica, ma è la soddisfazione del proprio ego e l'intangibilità della propria reputazione nei confronti degli altri hackers.
E, naturalmente, "tu non sei un hacker finchè qualcun altro non ti chiama hacker"
Occupare la Noosphere
Un secondo documento pubblicato da Raymond -- "Homesteading on the Noosphere" (http://sagan.earthspace.net/~esr/writings/homesteading/), parla della differenza tra uno scambio motivato economicamente (ad es. sviluppo di software commerciali in cambio di denaro) e uno "scambio gratuito" (ad es. OSS per la gloria).
"Homesteading" è l'acquisizione della proprietà ottenuta dal fatto di essere il primo a `scoprirla' o dall'essere stato l'ultimo ad apportarne un significativo contributo. La "Noosphere" è definita vagamente come lo "spazio di tutto il lavoro". Quindi, sostiene Raymond, la motivazione di un hacker di Linux è rivendicare l'occupazione di un'area più vasta possibile all'interno del corpo di lavoro. In altre parole, accreditarsi per il pezzo più grande del premio.
{ Questa è una lettura sottile ma significativamente fasulla. Essa introduce una nozione di "dimensione" territoriale che non c'è da nessuna parte nella mia teoria. Può essere un errore personale dell'autore, ma il mio sospetto è che ciò rifletta la cultura ossessivamente-competitiva di Microsoft. }
Da "Homesteading on the Noosphere":
L'abbondanza rende i rapporti di comando difficili da sostenere e le relazioni di scambio un gioco senza scopo. Nelle culture dello scambio gratuito, lo status sociale è determinato non da ciò che controlli ma da
...
Per cui, da questo punto di vista, è del tutto chiaro che la società degli hackers open-source è in effetti inserita nella cultura dello scambio gratuito. All'interno di essa non c'è nessuna grave scarsità del 'necessario per sopravvivere' -- spazio disco, network bandwidth, computing power. Il software è condiviso liberamente. Questa abbondanza crea una situazione in cui l'unico modo disponibile per misurare il successo è dato dalla reputazione tra persone dello stesso livello.
Più succintamente (
http://www.techweb.com/internet/profile/eraymond/interview):SIMS: Quindi la scarsità che cercavate era la scarsità di attenzione e riconoscimento?
RAYMOND: E' esattamente questo.
Altruismo
Questa è una motivazione controversa e sono portato a credere che ad un certo livello, l'Altruismo `degeneri' in una forma di Gratificazione dell'Ego avanzata da Raymond.
Una motivazione minore che, in parte, deriva dall'altruismo, è colpire Microsoft.
{ Che ammissione affascinante, specie se viene da un Microservo! Naturalmente, non analizza il perchè questa connessione esista; potrebbe arrivare a colpire troppo vicino a casa... }Biforcazione del codice
Il pericolo chiave in qualsiasi grande team di sviluppatori -- esacerbato in particolar modo nel caso del procedimento caotico di un team di sviluppatori su scala Internet -- è il rischio di biforcazione del codice.
La biforcazione del codice avviene quando, oltre al normale tira-e-molla di un progetto di sviluppo, si evolvono molteplici, inconsistenti versioni del codice base.
In campo commerciale, per esempio, la gestione forte ed unica del codice base di Windows NT è considerata come uno dei suoi più grandi vantaggi rispetto al codice base 'biforcato' che si trova nelle implementazioni UNIX (SCO, Solaris, IRIX, HP-UX, ecc.).
Biforcazione in OSS -- BSD Unix
Nello spazio OSS , BSD Unix è l'esempio migliore di codice biforcato. Il BDS UNIX iniziale era un tentativo della University of California, Berkeley, di creare una versione, libera da diritti, del sistema operativo UNIX a scopo di insegnamento. Comunque, Berkeley pose severe restrizioni all'uso non accademico del codice base.
{ La storia dello sdoppiamento di BSD fatta dall'autore è totalmente sbagliata. }
Allo scopo di creare una versione completamente free di BSD UNIX, un team ad hoc (ma chiuso) di sviluppatori creò FreeBSD. Altri sviluppatori in disaccordo per un motivo o per l'altro con il team del FreeBSD frammentarono l'OS per creare altre varianti (OpenBSD, NetBSD, BSDI).
Ci sono due fattori dominanti che portano alla biforcazione dell'albero BSD:
OK, ora abbiamo imparato qualcosa. Ciò può in effetti spiegare la controintuizione che i progetti che aprono un procedimento di sviluppo hanno a tutti gli effetti la minore tendenza a biforcarsi... }
Entrambe queste motivazioni creano una situazione in cui gli sviluppatori possono forzare una biforcazione nel codice e ricevere diritti (monetari, o a livello di ego) a spese della collettività BDS.
(Mancanza di) biforcazione in Linux
A differenza dell'esempio BDS, il codice del kernel di Linux non ha biforcazioni. Alcune delle ragioni per cui l'integrità del codice base di Linux è stata preservata includono:
Linus Torvalds è una celebrità nel mondo Linux, e le sue decisioni sono considerate definitive. A differenza di BSD, dove non esiste una simile celebrità come leader.
Linus è considerato dal team di sviluppo un onesto e ragionevole manager del codice, e la sua reputazione all'interno della comunità Linux è molto forte. Comunque, Linus non è coinvolto in ogni decisione. Spesso, dei sottogruppi risolvono le proprie -- spesso grandi -- diversità tra di loro ed evitano la biforcazione del codice.
Diversamente dalla partecipazione chiusa di BSD, chiunque può contribuire a Linux, e il proprio "status" -- e di conseguenza la possibilità di 'occupare' un pezzo di Linux più grande -- è misurato sulla dimensione dei precedenti contributi.
Indirettamente ciò presenta un ulteriore disincentivazione della biforcazione del codice. Non c'è praticamente nessun meccanismo credibile per cui il codice base minoritario e biforcato possa essere in grado di sostenere il tasso di innovazione del codice Linux originario.
Poichè i derivati di Linux DEVONO essere disponibili attraverso degli accessi liberi, il guadagno a lungo termine per una minoranza con un albero Linux biforcato diminuisce.
Le motivazioni dell'Ego spingono gli sviluppatori OSS a piantare il più paletti possibile nella più grande Noosphere possibile. La biforcazione del codice base fa inevitabilmente restringere lo spazio di realizzazione al nuovo albero del codice per qualsiasi sviluppatore successivo.
Quali sono i maggiori punti di forza dei prodotti OSS per i quali Microsoft si deve preoccupare?
Attributi esponenziali di OSSCome il nostro Operating System business, l'ecosistema OSS ha vari attributi esponenziali:
L'unica grande costrizione che ogni progetto OSS deve affrontare è trovare abbastanza sviluppatori interessati a dedicare del tempo da contribuire al progetto. Internet è stato fondamentale per mettere assieme abbastanza persone per un progetto di Operating System. E, più importante ancora, il motore di crescita per questi progetti è la crescita del campo d'azione di Internet. Il miglioramento delle tecnologie di collaborazione lubrificano in modo diretto il motore OSS.
Per dirla in un altro modo, la crescita di Internet permetterà l'esistenza di progetti OSS sempre più grandi e renderà fattibili progetti OSS in software "più piccoli".
Come i software commerciali, i singoli progetti OSS più fattibili in molte categorie possono, nel lungo periodo, uccidere i progetti OSS concorrenti e 'acquisire' il loro valore IQ. Per esempio, Linux sta uccidendo BSD UNIX e ha assorbito la maggior parte delle sue idee di base (così come le idee negli UNIXes commerciali). Questo aspetto conferisce un enorme vantaggio al primo che arriva in un particolare progetto
Più grande è il progetto OSS, maggiore è il prestigio associato all'aver contributo alla sua Noosphere con grandi componenti di alta qualità. Questo fenomeno contribuisce di rimando alla natura del "chi vince prende tutto" del procedimento OSS in un dato segmento.
Più grande è il progetto, più sviluppo/collaudo/correzione riceve il suo codice. Maggiore è la correzione, più gente si dispone a farla.
I binaries possono morire, ma la sorgente di codice vivrà per sempre
Una delle implicazioni più interessanti della fattibilità dell'ecosistema OSS è la credibilità nel lungo periodo.
Definizione della credibilità nel lungo periodo
La credibilità nel lungo periodo esiste quando non c'è possibilità di essere esclusi dal commercio in tempi brevi. Questo obbliga a un cambiamento su come i competitori si rapportano a te.
Per esempio, le Airbus Industries incamerarono una iniziale credibilità a lungo termine grazie all'appoggio esplicito del governo. Di conseguenza, quando fa un'offerta per una linea aerea, la Boeing sarà più portata ad accettare un risultato non-economico nel breve periodo quando gareggia per un appalto contro la Lockeed che quando lo fa contro la Airbus.
Applicato liberamente al linguaggio dell'industria del software, un prodotto/procedimento è credibile nel lungo periodo se le tattiche FUD non possono essere usate per contrastarlo.
OSS è credibile nel lungo periodo
I sistemi OSS sono considerati credibili perchè il codice sorgente è disponibile potenzialmente da milioni di posti e individui.
{ Qui siamo nel cuore del modo di vedere Microsoft. Io capisco che la reazione tipica dell'hacker rispetto a questo modo di pensare sia di trovarla nauseante, ma esso riflette una sorta di crudeltà strumentale riguardo gli usi negativi del marketing che abbiamo bisogno di imparare per riuscire a tenerle testa.La cosa realmente interessante di queste due affermazione è che Microsoft dovrebbe smettere con le tattiche FUD contro di noi.
Molti di noi si sono fatti l'idea che sia l'azione legale antitrust del DOJ (Department of Justice N.d.T.) a trattenere la Microsoft dall'estrarre le pistole del FUD. Ma se Sua Altezza Gates (His Gatesness nel testo originale hehe N.d.T.) fa sua questa parte del memorandum, Microsoft può pensare di dover sviluppare una risposta più sostanziale perchè FUD non funzionerà.
Ciò può significare novità sia buone che cattive. La novità buona è che Microsoft potrebbe smettere l'offensiva nel marketing, un'arma che nel passato è stata molto più potente della sua tecnologia distintamente inferiore. La novità cattiva è che, nei nostri confronti, smettere potrebbe essere effettivamente la strategia migliore; non sprecherebbero più energia e potrebbero in effetti elaborare una risposta efficace. }
La probabilità che Apache cessi di esistere è enormemente più bassa della probabilità che WordPerfect, per esempio, scompaia. La scomparsa di Apache non è legata alla scomparsa dei binaries (che sono affetti da cambi nell'acquisizione, ecc.) ma bensì dalla scomparsa del codice sorgente e delle conoscenze di base.
Detta in un altro modo, gli utenti sanno che Apache sarà ancora in giro fra 5 anni -- ammesso che ci sia un minimo di interesse sostanziale da parte della sua comunità di utenti/sviluppatori.
Un cliente Apache, parlando della ragione logica che l'ha spinto a far girare il suo sito e-commerce su un OSS affermò che l'ha fatto "perchè è a sorgente aperta, e posso afidarlo ad uno o due sviluppatori e provvedere al mantenimento per conto mio illimitatamente. "
La mancanza di biforcazione del codice aumenta la credibilità sul lungo periodo
Il GPL e la sua avversione alla biforcazione del codice rassicura i clienti sul fatto che non stanno prendendo un 'vicolo cieco' in evoluzione con l'acquisto di una particolare versione di Linux.
Il "vicolo cieco in evoluzione" è il centro della questione del software FUD.
{ Molto vero -- e c'è un'altra ommissione accecante qui. Se l'autore fosse stato veramente onesto, avrebbe notato che i sostenitori di OSS sono ben intenzionati a rigirare la questione e usarla per colpire Microsoft a morte.Per stessa ammissione dell'autore, OSS è a prova di proiettile da questo punto di vista. D'altra parte, la complessità sempre maggiore e lo slittamento programmato dell'appena rinominato ``Windows 2000'' fa pensare che esso sia un vicolo cieco in evoluzione.
L'autore non arriva a sottolineare ciò. Ma noi lo dobbiamo fare. }
Correzione parallelaE gli appassionati stanno ``portando via via ragioni sempre più credibili''. Per ammissione della stessa Microsoft, stiamo effettivamente vincendo.
Cè forse qui un messaggio riguardo ai prodotti in questione? }
In particolare, organizzazioni più grandi e più sagge, che si appoggiano ad OSS prr operazioni di business (ad es. ISPs) sono confortate dal fatto che possono potenzialmente sistemare un bug indipendentemente dalla scheda del fornitore (per esempio, UUNET fu in grado di ottenere, compilare, e applicare la correzione contro un attacco di teardrop alle loro macchine di Linuz entro 24 ore dal primo attacco pubblico)
Sviluppo paralleloDetta in un altro modo, "le risorse per gli sviluppatori sono essenzialmente libere in OSS". Poichè il pool di potenziali sviluppatori è enorme, è economicamente possibile cercare multiple soluzioni/versioni ad un problema e scegliere la soluzione migliore alla fine.
Per esempio, lo stack di Linux TCP/IP fu probabilmente riscritto 3 volte. L'assemblaggio di componenti del codice in particolare è stato costantemente perfezionato e messo a punto.
OSS = `perfetta' evangelizzazione / documentazione APIL'evangelizzazione / educazione degli sviluppatori dell'OSS di API consiste fondalmentalmente nel fornire allo sviluppatore il codice fondamentale. Dove l'evangelizzazione di API in un modello a codice si basa fondalmentalmente sulla fiducia, l'evangelizzazione OSS di API lascia allo sviluppatore la possibilità di agire di testa sua.
NatBro e Ckindel sottolineano qui una una spaccatura nelle capacità dello sviluppatore. Dove lo "sviluppatore appassionato" è confortato dalla evangelizzazione OSS, sviluppatori alle prime armi/intermedi --la massa della comunità degli sviluppatori -- preferiscono il modello di fiducia + credibilità organizzativa (ad es. "Microsoft dice che API X adotta questo modo")
{ Se sia vero che la maggioranza degli sviluppatori preferisce o no il modelle `trust' è una questione estremamente interessante.La mia esperienza ventennale mi fa pensare di no; in generale, gli sviluppatori preferiscono il codice anche quando i loro boss non-tecnici sono ingenui abbastanza da preferire il `trust'. Microsoft, ovviamente, vuole credere che la sua `credibilità organizzativa' conti -- Scorgo un qualche pensiero illusorio in questo punto.
D'altra parte potrebbero anche avere ragione. Noi, nella comunità open-source, non possiamo permetterci di abbandonare questa possibilità. Penso che possiamo affrontarla sviluppando una documentazione di alta qualità. In questo modo, la `fiducia' nel nome degli autori (o in editori con buona reputazione quali O'Reilly o Addison-Wesley) può sostituire il `fiducia' in una organizzazzione API-defining.) }
Tasso di uscita
I progetti OSS fortemente componentizzati sono in grado di far uscire sottocomponenti non appena lo sviluppatore ha finito il suo codice. Di conseguenza, i progetti OSS vengono revisionati velocemente e frequentemente.
Punti deboli di open-sourceI punti deboli nei progetti OSS si possono suddividere in 3 capitoli fondamentali:
Il principale blocco per i progetti OSS è l'aver a che fare con la crescita esponenziale dei costi di gestione proporzionalmente all'accrescimento in termini di tasso di innovazione e dimensione. Ciò implica un limite al tasso di innovazione cui un progetto OSS si può sottoporre.
Iniziare un progetto OSS è difficile
Da Eric Raymond:
E' del tutto chiaro che non si può codificare in stile bazaar partendo da zero. Si può testare, correggere, migliorare in stile bazaar, ma sarebbe molto difficile
L'argomentazione di Raymond può essere estesa alla difficoltà di far partire/mantenere un progetto se non ci sono chiari precedenti/obbiettivi (o troppi obbiettivi) per il progetto.
Credibilità del bazaar
Ovviamente, ci sono molti più frammenti di codice sorgente in Internet di quante siano le comunità OSS. Cosa differenzia i "codici sorgente morti" da un florido bazaar?
Un articolo (
http://www.mibsoftware.com/bazdev/0003.htm) ci dà i seguenti criteri di credibilità :"....pensare in termini di un numero ristretto al minimo di partecipanti è fuorviante. Fetchmail e Linux hanno un numero enorme di beta testers *ora*, ma ovviamente entrambi ne avevano molto pochi all'inizio.
Ciò che entrambi i progetti avevano era una manciata di persone entusiaste e una promessa plausibile. La promessa era in parte tecnica (questo codice diventerà meraviglioso con poco sforzo) e in parte sociologica (se ti unisci al nostro gruppo, ti divertirai come ci stiamo divertendo noi). Quindi ciò di cui ha bisogno un bazaar per svilupparsi è il credere che esisterà il bazaar completamente sviluppato!"
Sono dell'opinione che alcuni dei criteri chiave necessari affinchè un bazaar sia credibile includono:
Sviluppo post-parità
Descrivendo questo problema a JimAll, egli fornì la perfetta analogia dell'"andare dietro ai fanalini di coda". Il modo più facile per ottenere un comportamento coordinato da una banda vasta e semi-organizzata è indirizzarla verso un bersaglio conosciuto. Avere dei fanalini di coda dona concretezza ad una visione sfuocata. In situazioni come questa, avere dei fanalini di coda da seguire è una delega per avere una forte leadership centrale.
Naturalmente, una volta che questo implicito principio organizzativo non è più disponibile (una volta che il progetto ha raggiunto la "parità" con lo stato-dell'-arte), il livello di management necessario per spingersi verso nuove frontiere diventa imponente.
{ Nonsense. Nel mondo open-source, tutto ciò di cui si ha bisogno è una persona con una buona idea.Parte dello scopo dei open-source è abbassare le barriere che ritardano l'innovazione. Abbiamo provato per esperienza che il 'management imponente' decantato dall'autore è una delle peggiori tra queste barriere.
Nel mondo open-source, gli innovatori provano qualsiasi cosa, e l'unico test avviene se gli utenti sperimentano volontariamente l'innovazione e gli piace una volta sperimentata. Internet facilita questo processo, e le convenzioni di cooperazione della comunità open-source hanno il proposito specifico di promuoverlo.
La terza alternativa ad ``andare dietro ai fanalini di coda'' o ``forte leadership centrale'' (e più efficace di ambedue) è una anarchia creativa in evoluzione dove vi siano mille leaders e diecimila seguaci collegati da una rete di revisioni tra pari e soggetti al fuoco di fila dei controlli reali.
Microsoft non può battere ciò. Io non credo neanche che possa realmente capirlo, non con il cuore. }
Questo è forse l'ostacolo più interessante da affrontare per la comunità Linux ora che hanno conseguito la parità sotto molti aspetti con lo stato dell'arte di UNIX.
{ La comunità Linux non solo ha saltato quest'ostacolo, ma l'ha totalmente demolito. Questo fatto sta alla base del vantaggio a lungo termine dell'open-source rispetto allo sviluppo della closed-source. }
Lavoro poco sexy
Un'altra cosa interessante da osservare nel prossimo futuro di OSS è quanto bene il team è in grado di affrontare il lavoro "poco sexy" necessario per dar vita a un prodotto di categoria commerciale.
Nel terreno dei sistemi operativi, ciò include piccole ma essenziali funzioni quali power management, sospensione/ripresa, infrastrutture di management, accuratezze UI, approfondito supporto Unicode, ecc.
per Apache, ciò può voler dire funzionalità tipo wizards per amministratori principianti.
Lavoro architettonico/integrativo
Il lavoro integrativo attraverso i moduli è il maggior costo in cui si imbattono i team OSS. Un memo email di Nathan Myrhvold del maggio 98, evidenzia che tra tutti gli aspetti presenti nello sviluppo di software, il lavoro di integrazione è quello più soggetto alle leggi di Brook.
Fino ad ora, Linux ha grandemente beneficiato del modello integrativo / componentistico portato avanti dai precedenti UNIX. Inoltre, l'organizzazzione di Apache fu semplificata dalle semplici e tolleranti specifiche del protocollo HTTP e dello UNIX server application design.
Innovazioni future che richiedono dei cambiamenti al nucleo del modello architettonico/integrativo diventeranno incredibilmente difficili da assorbire per il gruppo OSS perchè fa perdere simultaneamente di valore ai loro precedenti e al loro bagaglio di esperienza.
{ Questa previsione fa il paio con la precedente asserzione dell'autore per cui lo sviluppo open-source si basa in modo pericoloso su progetti precedenti e guarda inevitabilmente al passato. Questa è miopia -- sembra che cose come Python, Beowulf, e Squeak (per nominare solo tre tra le centinaia di progetti innovativi) non sono percepiti dal suo radar.Possiamo solo sperare che Microsoft continui a crederla così, perchè ostacolerebbe la loro risposta. Molto dipenderà su come interpreteranno innovazioni come (per esempio) la SMPizzazzione del kernel di Linux.
E' interessante notare come l'autore contraddica se stesso su questo punto. }
}
Questi sono punti deboli intrinsechi nella metodologia progetto/risposta di OSS.
Costi iterativi
Una delle chiavi del procedimento OSS è nell'avere molte più iterazioni del software commerciale (Linux era conosciuto per il fatto di revisionare il suo kernel più di una volta al giorno). Comunque, i clienti commerciali ci dicono che vogliono meno revisioni, non di più.
{ Mi chiedo come cambierebbe questa risposta se le revisioni Microsoft non fossero così costose?Questo è il motivo per cui esistono i distributori commerciali di Linux -- per mediare tra un procedimento a rapida evoluzione e i clienti che non vogliono seguire ogni spostamento. Il kernel può essere revisionato una volta al giorno, ma Red Hat lo revisiona solo una volta ogni sei mesi. }
"Non-expert" Feedback
L'OS di Linux non è sviluppato per gli utenti finali, ma bensì per altri hackers. In modo simile, il web server Apache è implicitamente rivolto alla gran parte degli operatori dei siti, non ai server intranet dipartimentali.
La linea chiave qui è che poichè OSS non ha un esplicito rapporto marketing / customer, la "lista dei desideri" -- e di conseguenza lo sviluppo di certe funzioni -- è dominata dagli utenti con più conoscenze tecniche.
Una cosa che i gruppi di sviluppo alla MSFT hanno imparato più e più volte è che la facilità d'uso, l'intuitività UI, ecc. devono essere costruite partendo dalla base del prodotto e non possono essere aggiunte in un secondo momento.
{ Questo richiede un commento -- poichè ciò è giusto in teoria, ma è incredibilmente falso nella pratica Microsoft. La falsità implica una spiegabile debolezza nella implicita strategia (per Microsoft) di enfatizzare UI.Ci sono due modi per costruire "fin dalla base" un prodotto facile da usare. Uno (il modo Microsoft) è di progettare applicazioni monolitiche che sono definite e dominate dai loro UI. Questo tende a generare ``Windowsitis'' -- mostruosità rigide, sferraglianti, inclini ai bug, con una superficie patinata ed un interno vuoto..
Programmi costruiti in questo modo sembrano user-friendly a prima vista, ma finiscono per diventare nel lungo periodo una voragine che inghiotte tempo ed energia. Essi possono essere sostenuti solo da un bombardamento pubblicitario a tappeto, il cui scopo principale è illudere gli utenti facendogli credere che (a) i bug sono delle caratteristiche o che (b) tutti i bug sono in realtà degli stupidi sbagli dell'utente, o che (c) tutti i bugs saranno aboliti con il prossimo upgrade. Questo approccio è fondalmentalmente spezzato.
L'altro modo è quello Unix/Internet/Web, che consiste nel separare il motore (che fa il lavoro) dall'UI (che fa l'ispezione ed il controllo). Questo approccio richiede che il motore e UI comunichino usando un protocollo ben definito. E' esemplificato dalle coppie browser/server -- il motore si specializza nell'essere un motore, e l'UI si specializza nell'essere un UI.
Con questo secondo approccio la complessità globale scende e l'affidabilità cresce. Inoltre, l'interfaccia è più facile da evolvere/migliorare/personalizzare, proprio perchè non è strettamente accoppiata al motore. E' anche possibile avere intefacce multiple accordate a diversi tipi di audiences.
Per finire, questa architettura conduce ad applicazioni che sono enterprise-ready -- che possono essere usate o amministrate lontanamente dal server. Questo approccio funziona -- ed è il modo naturale per la comunità open-source di contrastare Microsoft.
Il punto chiave qui è che se Microsoft vuole dare battaglia alla comunità open-source sull'UI, lasciamola fare -- perchè possiamo vincere anche questa battaglia, lottando a nostro modo. Possono fare dei monoliti Windows sempre più elaborati che si saldano a chiazze alla consolle delle applicazioni-server. Noi vinceremo se faremo delle applicazioni pulite che facciano leva su Internet e sulla Rete e facciano UI che si possano evolvere ed essere pluggable/unpluggable a scelta dell'utente.
Da notare, comunque, che la nostra vittoria dipende dall'esistenza di protocolli ben definiti (come HTTP) per la comunicazione tra UI e motori. E' per questo che ciò che l'affermazione che si trova più avanti nel memorandum riguardo la ``de-standardizzazione dei protocolli'' è così sinistra. Dobbiamo stare in guardia contro questo. }
La tendenza interessante da osservare qui saranno le conseguenze che avranno fornitori commerciali di OSS (come RedHat in campo Linux, C2Net in campo Apache) sul ciclo feedback.
Come può OSS fornire il servizio che l'acquirente si aspetta dai fornitori di software?
Modello di assistenza
L'assistenza al prodotto è la prima questione che assilla eventuali acquirenti di pacchetti OSS ed è la prima caratteristica dei redistributori commerciali.
Comunque, la stragrande maggioranza dei progetti OSS è assistita dagli sviluppatori dei rispettivi componenti. Aumentare proporzionalmente questa infrastruttura di supporto al livello che ci si aspetta per i prodotti commerciali sarà una sfida importante. Ci sono differenze enormi tra gli utenti e gli sviluppatori in IIS vs. Apache.
{ La vaghezza di quest'ultima frase è significativa. Se l'autore avesse continuato, avrebbe dovuto riconoscere che Apache sta massacrando IIS sul mercato (la quota di Apache è del 54% e sta salendo; quella di IIS è attorno al 14% e sta precipitando).Ciò avrebbe dovuto portare a scegliere tra alternative sgradevoli (per Microsoft). Può essere che che i canali informali di supporto al cliente di Apache e la sua `credibilità organizzativa' producano in realtà risultati migliori di quelli che Microsoft può offrire. Se ciò è vero, allora è difficile in via di principio spiegare perchè la stessa cosa non possa essere vera per gli altri progetti OSS.
L'alternativa -- che Apache è così buono che non ha bisogno di molta assistenza o `credibilità organizzativa' -- è anche peggiore. Significherebbe che tutti i costosi battaglioni di assistenza e marketing schierati da Microsoft sono stati solo un gigantesco investimento sbagliato, come demolire i condomini staliniani quarant'anni più tardi.(?)
Queste due spiegazioni possibili implicano strategie distinte ma parallele per i sostenitori di open-source. Una è di costruire dei software che siano così buoni da non aver semplicemente bisogno di molta assistenza (ma faremmo così in ogni caso, e in genere l'abbiamo fatto). L'altra è di intensificare ciò che già stiamo facendo con il supporto tramite mailing lists, newsgroups, FAQs, e altri canali informali ma estremamente efficaci. }
Nel breve-medio periodo, questo fattore da solo relegherà i prodotti OSS sullo scaffale più alto dell'insieme degli utenti.
Strategic Futures
Un problema eccelso che affliggerà l'utente con l'adozione in vasta scala dei progetti OSS è la mancanza di una direzione strategica nel ciclo di sviluppo OSS. Mentre i miglioramenti fatti sui bug di un prodotto OSS sono molto credibili, le funzioni future non hanno uno sviluppo garantito da impegni organizzativi.
{ No. Nella comunità open-source, i nuovi aspetti di un prodotto sono il frutto dell'esplorazione individuale di nuovi territori da parte degli hackers. E ciò non si può certamente disprezzare. Internet e il Web furono costruiti in questo modo -- non grazie ad `impegni organizzativi', ma perchè qualcuno da qualche parte ha pensato ``Hey -- questa cosa potrebbe essere carina...''.Forse è una fortuna per noi che la `credibilità organizzativa' occupi uno spazio così grande nella visione del mondo di Microsoft. Il tempo e l'energia che impiegano preoccupandosi di questo aspetto che considerano un prerequisito sono risorse che non impiegheranno in azioni che potrebbero essere effettivamente contro di noi. }
{ La questione della compatibilità retroattiva è carinamente ironica, considerato che non ho mai sentito parlare di un programma che girasse su tutti i DOS, Windows 3.1, Windows 95, Windows 98, ed NT 4.0 senza cambiamenti.Qui l'autore è stato superato dagli eventi. Dovrebbe chiedere agli amichetti di Microsoft dentro ad Intel chi ha comprato una quota di minoranza di Red Hat meno di due mesi dopo che questo memorandum è stato scritto. }
Modelli di commercio open-source
Negli ultimi due anni, OSS ha avuto un altro cambiamento con l'emergere di ditte che vendono il software OSS, e, cosa più importante, ingaggiando sviluppatori a tempo pieno per migliorare il codice base. Qual'è il modello commerciale che giustifica queste assunzioni?
In molti casi, le risposte a queste domande sono simili a "perchè mai dovrei sottoporre il mio protocol/app/API ad un corpo standard?"
Il venditore di OSS-ware provvede alla vendita, assistenza ed integrazione al cliente. In effetti, ciò trasforma il venditore di OSS-ware da produttore di pacchetti di articoli a fornitore di servizi.
Articoli civetta -- Accesso al mercatoIl modello commerciale degli articoli civetta (prodotti venduti sottocosto) di OSS può essere utilizzato per due scopi:
Molti dei nuovi partecipanti OSS -- in particolare quelli nel campo degli Operating Systems -- vedono l'investimento nello sviluppo di prodotti OSS uno strategico "prodotto civetta" contro Microsoft.
Distributori Linux, quali RedHat, Caldera, e altri, hanno la precisa volontà di investire in sviluppatori a tempo pieno che producano per la comunità OSS. Finanziando simultaneamente questi sforzi, danno vita implicitamente ad una collusione con l'intento di ottenere maggiori ricavi a breve termine facendo crescere il mercato Linux invece di competere direttamente l'uno contro l'altro.
Un esempio indiretto è l'impiego da parte della O'Reilly & Associates di Larry Wall -- "leader" e sviluppatore a tempo pieno di PERL. L'editore #1 dei manuali PERL è, naturalmente, la O'Reilly & Associates.
Nel breve periodo, specialmente quando il progetto OSS è in piena curva acendente, tali investimenti generano ROI positivi. A lungo termine, le motivazioni ROI possono portare questi sviluppatori a diventare proprietari delle estensioni più che a far uscire OSS.
E' legato strettamente al modello commerciale dei prodotti civetta. Invece di cercare di ottenere dei guadagni marrginali facendo crescere il mercato in modo massiccio, questi negozi aumentano i loro ricavi essendo parte di una catena standardizzata di fornitori a valle.
Attualmente i migliori esempi di questo sono i piccoli venditori di server quali Whistle Communications, e Cobalt Micro che stanno rispettivamente investendo nello sviluppo di SAMBA e Linux.
Sia Whistle che Cobalt basano le loro entrate dalla quantità di volume hardware. Di conseguenza, investire in OSS permette loro di evitare il mercato dei PC dove deve essere pagata una "tassa" ai venditori di OS (il prezzo al dettaglio di NT Server è di $800, mentre l'obbiettivo di Cobalt MSRP è attorno ai $1000).
I primi sviluppatori Apache furono assunti con cash-strapped ISPs e ICPs.
Un altro, più recente esempio, è l'accordo tra IBM e Apache. Dichiarando il server HTTP una merce, IBM spera di far convergere i ricavi nei servizi applicativi tecnicamente più arcani che raccoglie con la sua distribuzione di Apache (così come la speranza di raggiungere l'enorme quota di mercato di Apache).
Primo fautore -- Costruisci ora, $$ più avantiUna delle qualità esponenziali di OSS -- i progetti di successo OSS inghiottono quelli con meno successo nello stesso campo -- implica un modello di commercio con prelazione, in cui investendo direttamente in OSS oggi, si svuotano/eliminano i progetti competitivi futuri -- specialmente se il progetto richiede un'evangelizzazione API. Questo equivale a determinare un vantaggio in OSS al primo che prende l'iniziativa.
Inoltre, i vantaggi dati dalla scala di sviluppo, dal tasso di iterazione, e dall'affidabilità sono dei doni del cielo per coloro che iniziano e che non possono permettersi un grande staff interno di sviluppo.
Esempi di avviamenti in questo campo includono SendMail.com (che fa una versione commercialmente sostenuta del sendmail mail transfer agent) e C2Net (che fa un Apache commerciale e criptato).
Da notare che non è stato osservato nessun caso di successo di uno che si avvii e che abbia dato origine ad un progetto OSS. In entrambi questi casi, i progetti OSS esistevano prima dell'avviamento.
Sun Microsystems ha recentemente annunciato che il suo progetto "JINI" sarà fornito di OSS tramite modulo e può rappresentare una applicazione della dottrina di prelazione.
LinuxNelle prossime sezioni saranno analizzati i più notevoli progetti OSS inclusi Linux, Apache, ed ora anche Netscape's OSS browser.
Un secondo memorandum intitolato "Linux OS Competitive Analysis" fornisce una visione approfondita dell'OS di Linux. Qui, do un riassunto delle mie conclusioni su Linux.
Che cos'è?Linux (pronunciato "LYNN-ucks") è l'OS open-source #1 come quota di mercato su Internet. Linux deriva da 25+ anni di studio sull'operating system di UNIX.
Funzioni principali:
Come altri prodotti Open Source Software (OSS), il vero punto chiave di Linux non è la versione statica del prodotto ma bensì il procedimento che ci sta attorno. Questo procedimento conferisce credibilità e un'aria di sicurezza-futura agli investimenti degli acquirenti Linux.
Linux è un pericolo a breve/medio termine nel campo dei server
La minaccia principale che Microsoft deve affrontare nei confronti di Linux è diretta contro NT Server.
Il punto di forza di Linux nei confronti del server NT (e di altri UNIXes) è dato da diversi fattori chiave:
Per dirla in modo leggermente diverso: Linux può vincere se i servizi sono aperti e i protocolli sono semplici e trasparenti. Microsoft può vincere solo se i servizi sono chiusi e i protocolli complessi e opachi.
Detta come va detta: "commerciabilità" di servizi e protocolli sono cose ottime per il cliente; promuovono la competizione e la possibilità di scelta. Quindi, perchè Microsoft vinca, il cliente deve perdere.
La rivelazione più importante di questo memorandum è vedere quanto ci metterà Microsoft a dichiarare esplicitamente questa logica. }
E' improbabile che Linux sia una minaccia nel medio-lungo termine nei desktop per varie ragioni:
Nonostante ciò sia vero, si elude una questione importante -- cioè che l'ampollosità di Microsoft su questo punto non rende meno valida la sua critica. Lo sviluppo open-source si rivolge in modo davvero scarso verso questo tipo di questioni, perchè esso non include un collaudo sistematico ease-of-use con non-hackers.
Ciò francamente rallenta il progresso di Linux nei desktop. Comunque è poco probabile che lo arresti per sempre, -- non se lavori come GNOME e KDE hanno il tempo di maturare. }
Anche ammettendo la supposizione dell'autore, la possibilità che Linux riesca ad agguantare un sufficiente vantaggio `primo-fautore' non è di certo preclusa a meno che il modello open-source sia veramente incapace di generare delle innovazioni -- e noi sappiamo già che ciò non è vero. }
Oltre ad attaccare in generale i punti deboli dei progetti OSS (ad es. costi integrativi / architettonici), alcuni attacchi specifici su Linux sono:
Tutte le edizioni standard dei prodotti per NT vs. Sun si applicano a Linux.
La homebase di Linux è attualmente l' infrastruttura della rete e del server dei prodotti. Piegando la funzionalità estesa (per esempio Storage+ nei sistemi di archivio, DAV/POD per la rete) negli odierni servizi dei prodotti, alziamo la sbarra & cambiamo le regole del gioco.
Ciò a cui mira l'autore non è nient'altro che cercare di rovesciare l'intera infrastruttura " network e server del prodotto" (featuring TCP/IP, SMTP, HTTP, POP3, IMAP, NFS, e altri standard aperti) nell'uso di protocolli che, anche se possono avere gli stessi nomi, sono stati in realtà trasformati in congegni di controllo-del-cliente-e-del-mercato per Microsoft (questo è ciò che l'autore vuol dire in realtà quando esorta i Microservi ad "alzare la sbarra & cambiare le regole del gioco").
Il `aggiungere le funzionalità estese' qui è un eufemismo per introdurre estensioni nonstandard (o interi protocolli alternativi) che siano in seguito messi prepotentemente sul mercato come standard, anche se sono chiusi, non documentati, o specificati solo fino al punto da creare una illusione di apertura. L'intento è di fare dei nuovi protocolli una lista di verifica per compratori ingenui, e rendere simultaneamente quasi impossibile per una terza parte scrivere qualcosa di simbiotico per i programmi Microsoft. (E chiunque ci riesca viene comperato.)
Questo gioco si chiama ``abbraccia e allargati''. Abbiamo già visto Microsoft fare questo gioco, e sono molto bravi. Quando funziona, Microsoft vince un monopolio blindato. Gli acquirenti perdono.
(Questa strategia di inquinamento-degli-standard è perfettamente in linea con gli sforzi di Microsoft di corrompere Java e rompere il marchio Java.)
I sostenitori di open-source possono ribattere sottolineando esattamente come e perchè il cliente ci perde (competitività ridotta, costi maggiori, minore affidabilità, opportunità perse). I sostenitori di open-source possono anche contrapporre gli aspetti positivi -- cioè, come open-source e standard aperti aumentino la competizione fra venditori, facciano diminuire i costi, migliorino l'affidabilità, e creino opportunità.
Ancora una volta, come Microsoft ammette più sopra nel memorandum, Internet è figlio del nostro manifesto. La migliore controffensiva da parte nostra contro abbraccia-e-allargati è di sottolineare che Microsoft sta tentando di serrare Internet. }
Nel tentativo di rinnovare la sua credibilità nel campo dei browser, Netscape ha di recente fatto uscire e sta tentando di creare una comunità OSS attorno al codice sorgente del suo Mozilla.
Organizzazione & licenzeIl modello organizzativo e delle licenze di Netscape è liberamente basato su quello della comunità Linux & GPL con poche differenze. Primo, Mozilla e Netscape Communicator sono due codebases con gli ingegneri di Netscape che provvedono alla sincronizzazione.
A differenza di un completo GPL, Netscape si riserva il diritto finale di rifiutare / obbligare a delle modifiche all'interno del codice base di Mozilla e gli ingegneri di Netscape sono nominati "Direttori d'area" di grandi componenti (per ora).
Capitalizzare i sentimenti anti-Microsoft nella comunità OSS
In relazione ad altri progetti OSS, Mozilla è considerato essere come uno dei più diretti attacchi a breve termine al sistema Microsoft. Questo fattore da solo è probabilmente il fattore chiave che galvanizza lo stimolo degli sviluppatori verso il codice base di Mozilla.
Nuova credibilità
La disponibilità del codice sorgente di Mozilla ha migliorato di poco la credibilità di Netscape nel campo dei browser. Come sottolinea BharatS in
http://ie/specs/Mozilla/default.htm:"Facendo uscire il loro codice essi hanno garantito che non spariranno mai completamente dall'orizzonte nel modo in cui Wordstar è scomparsa. I browsers Mozilla sopravviveranno bene nei prossimi 10 anni, anche se la loro base di utenza si restringe. "
Cavarsi un grande sfizio
Il browser è largamente usato / diffuso. Di conseguenza, il gruppo di persone che possono essere intenzionate a risolvere "un problema corrente a portata di mano" e/o sistemare un bug può essere vasto.
Punti deboliSviluppo post paritario
Mozilla è già vicino ad essere pari a IE4/5. Di conseguenza, non c'è alcun esempio da seguire che possa aiutare e implicitamente coordinare il team di sviluppo.
Netscape ha assegnato ad alcuni dei sui migliori sviluppatori il compito a tempo pieno di gestire il codice base di Mozilla e sarà interessante vedere quanto (e se) questo potrà aiutare la capacità di Mozilla di spingersi in nuovi campi.
Piccola Noosphere
Un punto debole interessante è la rimanente dimensione della "Noosphere" per i browser OSS.
Non c'è più alcun grande segmento di alto profilo del browser puro che debba essere sviluppato. In altre parole, Netscape ha già risolto l'80% dei problemi interessanti. La gratificazione dell'ego è poca /nulla nel correggere / sistemare il rimanente 20% del codice di Netscape.
La gestione di Linus Torvalds del codice base di Linux è diretta plausibilmente verso la creazione del miglior Linux possibile. Netscape, al contrario, si riserva espressamente il diritto di prendere delle decisioni gestionali sul codice basandosi sugli interessi commerciali / economici. Invece di creare un prodotto importante, il codice dello sviluppatore è sottomesso alla quotazione di Borsa di Netscape.
Costo di integrazione
Potenzialmente il maggior ostacolo allo sforzo di Mozilla è il livello di integrazione che gli acquirenti si aspettano dalle caratteristiche di un browser. Come affermato prima, l'integrazione sviluppo / collaudo NON è una attività parallelizzabile e quindi è danneggiata dal procedimento OSS.
In particolare, molto del nuovo lavoro per IE5+ non consiste solamente nell'integrare i componenti col browser ma continuare l'integrazione all'interno dell'OS. E sarà particolarmente spiacevole doverci competere.
PrevisioniLa tesi quindi è che, a differenza dei progetti Linux e Apache che, per ora, hanno grande successo, gli sforzi di Netscape per Mozilla farà:
Tenendo presente che il codice sorgente è stato fatto uscire solo poco tempo fa (aprile '98), c'è già la prova del calo di interesse per Mozilla. Una prova estremamente NON-SCIENTIFICA si può trovare nel declino del volume delle mailing list fra le mailing list di Mozilla da aprile a giugno.
Mozilla Mailing List |
Aprile 1998 |
Giugno 1998 |
% decrescita |
Funzioni desiderate |
1073 |
450 |
58% |
Sviluppo UI |
285 |
76 |
73% |
Discussione generale |
1862 |
687 |
63% |
Specchi interni delle mailing list di Mozilla possono essere trovate a http://egg.Microsoft.com/wilma/lists
Apache CronologiaParafrasato da
http://www.apache.org/ABOUT_APACHE.htmlNel febbraio del 1995, il server più popolare sul Web era il dominio pubblico HTTP daemon sviluppato da NCSA, University of Illinois, Urbana-Champaign. Comunque, lo sviluppo di quel httpd era in fase di stallo dalla metà del 1994, e molti webmasters avevano provveduto a sviluppare le proprie estensioni e sistemato bug, e avevano bisogno di una distribuzione comune. Un piccolo gruppo di questi webmasters, contattati privatamente tramite e-mail, si misero assieme con lo scopo di coordinare i loro cambiamenti (nella forma di "pezze"). Per la fine di febbraio del '95, otto contributori base formarono la fondazione dell'Apache Group. Nell'aprile del 1995, Apache 0.6.2 fu fatto uscire.
Nel maggio-giugno 1995, una nuova architettura server (chiamata in codice Shambhala) fu sviluppata, e includeva una struttura modulare ed API per una migliore estensibilità, allocazione della memoria pull-based, e un modello di procedimento anti-biforcazione. Il gruppo fece il cambio verso il nuovo server base in luglio e aggiunse le caratteristiche da 0.7.x, che risultarono in Apache 0.8.8 (e nei suoi confratelli) in agosto.
A meno di iun anno dalla formazione del gruppo, il server Apache passò la httpd di NCSA httpd come il server #1 in Internet.
Il gruppo di sviluppo Apache consiste in circa 19 membri di base più centinaia di amministratori di siti web sparsi nel mondo che in un modo o nell'altro hanno sottoposto un rapporto / pezza sui bug. I dati sui bug di Apache si possono trovare a:
http://bugs.apache.org/index.Una descrizione sulla gestione del codice e sulle procedure di soluzione dei conflitti seguite dal team di Apache si trovano a
http://www.apache.org:Leadership:
C'è un gruppo base di contributori (informalmente chiamato il "nucleo") che fu formato dai fondatori del progetto ed è aumentato di tanto in tanto quando dei membri del gruppo hanno nominato dei contributori di rilievo e gli altri membri del nucleo hanno accettato.
Soluzione delle dispute:
Cambiamenti di codice sono proposti sulla mailing list e generalmente votati dai membri attivi --- tre +1 (voti affermativi) e no -1 (astenuti, o veti) sono necessari per promuovere un cambio di codice durante un ciclo di uscita
Quote di mercato!
Apache ha oggi di gran lunga la quota #1 di web site su Internet. Fare la parte del leone sul mercato dà un enorme potere di controllo sull'evoluzione del mercato.
In particolare, la quota di mercato di Apache nel campo dei web server presenta i seguenti ostacoli competitivi:
Supporto terzi
Il numero di strumenti / moduli / plug-ins disponibili per Apache sono aumentati ad un tasso crescente.
Punti deboliPrestazioni
Nel breve periodo, IIS batte sonoramente Apache su SPECweb. Andando avanti, quando IIS si sposta nel kernel e si avvantaggia di una integrazione più profonda con NT, ci si aspetta che questo orientamento si incrementi ulteriormente.
Apache, al contrario, è gravato dalla richiesta di creare un codice portabile per tutti i suoi ambienti OSS.
Complessità del protocollo HTTP & servizi applicativi
Parte del motivo per cui Apache è riuscito a trovare un punto d'appoggio e decollare è dato dalla semplicità del protocollo HTTP. A mano a mano che nuove caratteristiche vengono stratificate sopra al modesto server ( per es. supporto alle transazioni multi-server, POD, ecc.) sarà interessante vedere come farà il team Apache a stare al passo.
Il supporto ASP, per esempio, è un driver chiave per IIS nei corporate intranets.
IBM & ApacheRecentemente, IBM ha annunciato il supporto al codice base di Apache nelle applicazioni server del suo WebSphere. Il risultato reale dell'entusiamo della stampa non è ancora chiaro, comunque:
Alcuni altri progetti OSS:
In generale, devono essere inserite molte più riflessioni/discussioni nella risposta Microsoft al fenomeno OSS. L'obbiettivo di questo documento è didattico e di analisi sul procedimento OSS, di conseguenza in questa sezione, offro solo una lista molto superficiale di opzioni e preoccupazioni.
Vulnerabilità del prodottoDove è più probabile che Microsoft senta il "pizzicotto" dei progetti OSS nel prossimo futuro?
Server vs. Client
Il server è molto più vulnerabile ai prodotti OSS del client. Le ragioni di ciò includono:
Come può fare Microsoft ad accapparrarsi parte delle esuberanti capacità intellettuali degli sviluppatori che sono puntati sui prodotti OSS?
Alcune idee di partenza includono:
Cosa può imparare Microsoft dall'esempio OSS? Più specificatamente: come possiamo fare per ricreare internamente l'ambiente di sviluppo OSS? Diversi revisori di questo documento hanno costantemente sottolineato che internamente, noi dobbiamo vedere idealmente Microsoft come una comunità OSS, ma per varie ragioni non lo è:
"Uno sviluppatore in Microsoft che lavori sull'OS non può cavarsi uno sfizio che ha con Exel, nè uno sviluppatore di Exel può cavarsi il suo sfizio con l'OS -- gli ci vorrebero mesi per immaginare come costruire & correggere & installare, e probabilmente non potrebbe comunque ottenere accesso a sorgenti adeguate"
"" Le persone devono lavorare alle loro parti indipendentemente dal resto , così le astrazioni interne fra i componenti sono ben documentate e ben esposte/esportare e anche più robuste perché non sanno come saranno chiamate. Il sistema di sviluppo Linux si è evoluto in ciò concedendo a più parti di partecipare senza causare il numero enorme di edizioni di integrazione perché la robustezza è presente ad ogni livello. Questa è una grande cosa, di lunga durata, per la stabilità generale, e si vede. " "
Il trucco, naturalmente, è di accapparrarsi questi benefici senza incorrere nei costi dei procedimenti OSS. Questi costi sono il tipico motivo per cui si ersero tali barriere in primo luogo:
Sostenere una comunità di piattaforma & sviluppo richiede una grande infrastruttura di servizio che OSS non può fornire. Questa include PDC's, MSDN, ADCU, ISVs, IHVs, ecc.
L'equivalente "MSDN" delle comunità OSS, naturalmente, è una libera confederazione di siti web con docs API di varia qualità. MS ha l'opportunità di sfruttare realmente il web per l'evangelizzazione degli sviluppatori.
Attutire gli attacchi di OSSIn generale, Microsoft può vincere attaccando i punti deboli dei progetti OSS.
De-standardizzare protocolli & applicazioni
David Stutz fa un'osservazione molto buona: nel competere con il livello di integrazione dei desktop Microsoft, "i protocolli standardizzati diventano a tutti gli effetti mezzi di integrazione" per progetti OSS. Una gran quantità di IQ viene spesa in gruppi di lavoro IETF che stanno creando velocemente il modello architettonico di integrazione per questi progetti OSS.
{ Cioè, i protocolli aperti devono essere messi sotto chiave e l'IETF deve essere schiacciato allo scopo di ``de-standardizzare protocolli & applicazioni'' e fermare il software open-source.Ancora una volta, la migliore risposta dei sostenitori di open-source sta nel sottolineare agli utenti che quando le cose sono ``de-standardizzate'', i venditori ci guadagnano e i clienti ci perdono. }
Alcuni esempi di iniziative Microsoft che stanno estendendo i protocolli standardizzati includono:
Costringere l'integrazione -- specialmente nel server
L'aumento dei server specializzati è una minaccia particolarmente spaventosa e potente che affligge direttamente il flusso delle nostre entrate. Una delle chiavi per combattere questa minaccia sta nella creazione di scenari integrativi che siano utili sulla piattaforma server. David Stutz precisa:
La questione base qui è che chi ha le migliori tecnologie e procedure di integrazione orientate verso la rete vincerà nel business standard dei server. C'è una convergenza di sistemi connessi, connettività mobile, e di diffusione dei protocolli di rete che farà esplodere il numero dei server (specialmente "server specializzati"??). Il cliente di prodotti ad uso generale dà un giro d'affari in cui vale la pena essere presenti - sarà schiacciato dai server di prodotti specifici?
Credibilità organizzativa
Molte persone hanno fornito dati, riletture, interessanti email, e analisi sia su questo documento che sull'analisi di Linux:
Nat Brown
Jim Allchin
Charlie Kindel
Ben Slivka
Josh Cohen
George Spix
David Stutz
Stephanie Ferguson
Jackie Erickson
Michael Nelson
Dwight Krossa
David D'Souza
David Treadwell
David Gunter
Oshoma Momoh
Alex Hopman
Jeffrey Robertson
Sankar Koundinya
Alex Sutton
Bernard Aboba
Cronologia della revisione
Data |
Revisione |
Commenti |
8/03/98 |
0.95 |
|
8/10/98 |
0.97 |
Inizio della revisione Aggiunti i commenti di JoshCo |
8/11/98 |
1.00 |
Alcune correzioni, stampate copie per la revisione di PaulMa |