Che cosa significa la legge di Jamie Zawinski?

20

Ho bisogno di una spiegazione adeguata di Legge del Software Envelopment di Jamie Zawinski :

Every program attempts to expand until it can read mail. Those programs which cannot so expand are replaced by ones which can.

    
posta Mohsen 25.05.2012 - 19:53
fonte

6 risposte

35

Tutte le risposte (e i commenti) finora sembrano concentrarsi interamente sulla prima parte della frase, trasformandola in un commento su "gonfia", quando l'importante metà è la seconda metà: Quei programmi che non possono quindi espandere sono sostituiti da quelli che possono.

Questo non riguarda il software gonfiato, riguarda le realtà del mercato. Le persone possono dire vogliono un prodotto semplice, ma quando si guarda all'utilizzo effettivo, le cose che vengono utilizzate sono le cose che consentono agli utenti di fare di più e finiscono per sostituire strumenti meno capaci.

Una parte del problema è che "semplice" è una parola confusa. Come "cleave", può significare due cose quasi completamente opposte. Ciò che le persone vogliono è qualcosa che semplifica attività complesse. Questo è "il buono semplice" e richiede una grande quantità di complessità per fare bene. Ciò che alcune persone interpretano come, tuttavia, è che le persone vogliono qualcosa di semplicistico o minimalista. Questo concetto può avere un certo fascino di nicchia, ma nel complesso è il tipo sbagliato di "semplice" su cui concentrarsi quando si progetta un prodotto. Non importa quanto sia buono il tuo lavoro, le nuove funzionalità continuano ad arrivare.

Per fare un esempio, c'è il programma su cui lavoro al lavoro. Probabilmente non ne hai mai sentito parlare, ma siamo leader di mercato in un settore specializzato: il controllo dei media. Molto probabilmente il nostro programma esegue la tua TV e / o stazione radio preferita. I clienti lo adorano, dicono che è così molto meglio di qualsiasi altra cosa con cui hanno lavorato.

È anche enorme . L'EXE ha una dimensione di oltre 65 MB, con circa 4 milioni di righe di codice, supportate da un database con oltre 150 tabelle, costruite nel corso di oltre un decennio di lavoro. Eppure sembra che ogni volta che proviamo a installarlo su qualche nuova stazione o rete, ci sono una o due cose che sono assolutamente essenziali per il loro flusso di lavoro, per le quali non abbiamo alcun supporto. Quindi finiamo per aggiungere nuove funzionalità perché altrimenti i clienti non vorrebbero passare dal sistema a cui sono già abituati. E fammi ripetere, i clienti lo adorano.

    
risposta data 25.05.2012 - 20:46
fonte
12

Devi capire che questo è successo molto tempo fa, e in quel momento non era ancora mainstream per i computer poter eseguire più di un programma alla volta per un dato utente. DOS per Personal Computer (e possibilmente Windows 3 in alto) e terminali basati su caratteri per utenti Unix (solo pochi avevano X11).

Questo significa che per verificare se hai ricevuto un'email hai dovuto uscire cosa stavi facendo, avviare il programma di posta, leggere la posta, uscire il programma di posta elettronica e riavviare il vecchio programma. Immagino che tu possa vedere che se il tuo programma attuale ti consente di leggere la tua email, puoi evitare tutto questo.

Quindi, se il tuo programma attuale non fosse in grado di leggere la tua email, eri incline a farlo o farlo (ricorda che erano studenti del MIT) o passare a un altro che potrebbe.

In questi giorni è difficile immaginarlo, ma puoi avere un'idea di come è stato limitando te stesso a una finestra del browser singolo - senza tabulazioni, senza finestre aggiuntive - e forse persino non utilizzare i segnalibri .

    
risposta data 25.05.2012 - 20:18
fonte
9

Come tutti gli altri hanno già menzionato, la "legge" è un'osservazione umoristica su software gonfia e score creep , ed è molto simile a Decimo di Greenspun regola :

Any sufficiently complicated C or Fortran program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp.

La legge riflette il lavoro di Zawinski con il browser Netscape e successivamente con Netscape Mail & Notizie, come descritto qui da, beh, se stesso:

Next, I designed, and Terry Weissman and I implemented, the Netscape Mail and News clients, versions 2.0 through 3.0. This was our contribution to the proof of the Law of Software Envelopment:

"Every program attempts to expand until it can read mail. Those programs which cannot so expand are replaced by ones which can."

Il browser Netscape, al momento il browser più popolare, è stato spesso criticato come avente troppe funzionalità per il suo bene, se non sbaglio orribilmente è stato l'ultimo (popolare) browser che supportava due motori di rendering, Gecko e Trident. Ad esempio, Ben Goodger identifica il bloat di Netscape come uno dei (molti) motivi che portano alla creazione di Firefox 1 :

Mozilla's UI Dysfunction

Since most of the user interface design for the Netscape products was done by Netscape staff working to Netcenter requirements, the Mozilla user interface suffered. Instead of being a clean core upon which Netscape could build a product to suit its needs, the Mozilla suite never felt quite right; it was replete with awkward UI constructs that existed only to be filled in by overlays in the Netscape's private source repository — the “commercial tree.”

Compounding this dysfunction, at the time the project was being developed by over a hundred engineers in different, sometimes poorly connected departments within CPD. Netscape had grown rapidly in previous years, and with an uneven hiring bar engineers with abilities that would suggest they needed more assistance from others had far too much autonomy in feature design and implementation. User experience assistance was sparse, and as a result the application quickly bloated.

1 da un versione archiviata del blog defunto di Ben Goodger.

    
risposta data 25.05.2012 - 20:08
fonte
4

Non è una legge reale , è un commento satirico su come i progetti software (se non gestiti correttamente) possono diventare così grandi e complicati, in qualche modo alla fine includono un lettore di e-mail (anche se ha < em> niente da fare con lo scopo originale del progetto). Un manager che avevo una volta era appassionato di una frase simile "Qualsiasi sistema sufficientemente complicato contiene un'implementazione LISP semi-assunta al suo interno".

    
risposta data 25.05.2012 - 19:58
fonte
3

È un commento su come alcuni progetti software sembrano continuare ad espandersi e ad aggiungere sempre più funzionalità.

Molti progetti non sembrano in grado di resistere all'aggiunta di funzionalità, se necessario o meno.

Una conclusione logica è che ogni pezzo di software finirà per inviare posta.

Vedi anche Scope Creep .

    
risposta data 25.05.2012 - 19:56
fonte
-1

Vedo almeno tre modi per visualizzarlo.

Si deve ignorare la lettura della posta in sé e considerarla come un'affermazione secondo cui le persone sembrano apprezzare i prodotti con la flessibilità di essere trasformati in quasi tutte le attività, indipendentemente da quanto poco potrebbe avere a che fare con l'intento originale dello strumento. Se guardiamo in questo modo, un prodotto come Photoshop che non supporta la lettura della posta non è un'anomalia perché la sua architettura plug-in è abbastanza flessibile da consentire a potrebbe supportare la lettura della posta, anche se ( per quanto ne so) non esiste alcun plug-in di questo tipo. Questo punto di vista potrebbe essere riassunto in modo più pulito, ma in modo meno originale, in quanto "flessibilità batte la specializzazione".

Il secondo modo per vederlo sarebbe che Jamie Zawinski ha un focus così ristretto che semplicemente ignora i prodotti come Photoshop, PowerPoint, la maggior parte dei giochi, ecc., che sono in circolazione da anni, non supportano la lettura della posta, e non sembrano essere rimpiazzati da qualcos'altro che fa.

Il terzo sarebbe un po 'un contrappunto al secondo, dicendo che, in sostanza, l'integrazione tra i prodotti è avvenuta a tal punto che la lettura della posta è effettivamente integrata in tutto perché la maggior parte delle persone ora ha un lettore di posta in esecuzione nel sfondo, tutto il tempo e può passare ad esso in modo rapido / semplice, tagliare e incollare con qualsiasi altra cosa, ecc., che il dettaglio minore che il mail reader è confezionato come applicazione separata è diventato irrilevante.

    
risposta data 25.05.2012 - 21:55
fonte

Leggi altre domande sui tag