Cosa significa la legge di Jamie Zawinski?


24

Ho bisogno di una spiegazione adeguata della legge sull'involucro del software di Jamie Zawinski :

Ogni programma tenta di espandersi fino a quando non può leggere la posta. Quei programmi che non possono espandersi così sono sostituiti da quelli che possono farlo.



Risposte:


39

Tutte le risposte (e i commenti) finora sembrano concentrarsi interamente sulla prima metà della frase, trasformandola in un commento su "gonfio", quando la metà importante è la seconda metà: quei programmi che non possono espandersi così sono sostituiti da quelli quale può.

Non si tratta di gonfiare il software, si tratta delle realtà del mercato. Le persone possono dire che 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.

Parte del problema è che "semplice" è una parola confusa. Come "cleave", può significare due cose quasi completamente opposte. Ciò che la gente desidera è qualcosa che semplifichi compiti complessi. Questo è "il semplice semplice" e richiede molta complessità per fare bene. Ciò che alcune persone interpretano come, però, è 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 richieste di 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 il leader di mercato in un settore specializzato: il controllo dei media. Molto probabilmente il nostro programma gestisce la tua TV e / o stazione radio preferita. I clienti lo amano, dicono che è così molto meglio di qualsiasi altra cosa che hanno lavorato con.

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


20
E alla fine il software gonfio viene sostituito da un nuovo concorrente, che è "snello e cattivo", e che aggiungerà le funzionalità richieste una alla volta fino a quando non avrà tutte le funzionalità che il suo predecessore aveva ...
jhonkola

Ho pensato che quella parte fosse coperta dalla dichiarazione di Zawinski: "Successivamente, ho progettato e implementato Terry Weissman e i client Netscape Mail and News, versioni da 2.0 a 3.0. Questo è stato il nostro contributo alla dimostrazione della legge sull'involucro del software ", ma ora io che ho riletto non è così chiaro.
yannis,

1
@jhonkola se il codice fa ciò di cui i clienti hanno bisogno e non molto di più, non è gonfio.

1
@ ThorbjørnRavnAndersen Sono d'accordo, il mio punto era più che quando il software guadagnerà popolarità (e quindi anche utenti / clienti), il numero di funzionalità richieste dagli utenti, e alla fine implementate, crescerà.
jhonkola,

1
Se la tua interpretazione è corretta, il commento di Zawinski è stato vanaglorioso, non autoironico. Lo trovo difficile da credere.
ctn

12

Devi capire che questo è successo molto tempo fa, e in quel momento non era ancora mainstream per i computer essere in grado di eseguire più di un programma alla volta per un determinato utente. DOS per personal computer (e possibilmente Windows 3 in alto) e terminali basati sui caratteri per utenti Unix (solo alcuni avevano X11).

Ciò significa che per verificare se hai ricevuto un'email devi uscire da quello che stavi facendo, avviare il programma di posta, leggere la posta, uscire dal programma di posta e riavviare il vecchio programma. Immagino che tu possa vedere che se il tuo programma attuale ti permettesse di leggere la tua e-mail, potresti evitare tutto ciò.

Quindi, se il tuo programma attuale non è stato in grado di leggere la tua e-mail, eri propenso a farlo (ricorda che si trattava di studenti del MIT) o passare a un altro che poteva.

In questi giorni è difficile da immaginare, ma puoi avere un'idea di come fosse limitandoti a una singola finestra del browser - senza schede, senza finestre extra - e forse nemmeno usando i segnalibri.


9

Come già menzionato da tutti gli altri, la "legge" è un'osservazione umoristica sul gonfiore del software e il punteggio di scorrimento , ed è molto simile alla decima regola di Greenspun :

Qualsiasi programma C o Fortran sufficientemente complicato contiene un'implementazione lenta ad hoc, specificata in modo informatico, inficiata da bug, di metà di Common Lisp.

La legge riflette il lavoro di Zawinski con il browser Netscape e in seguito con Netscape Mail & News, come descritto qui da lui stesso:

Successivamente, ho progettato e implementato Terry Weissman e i client Netscape Mail e News, dalle versioni 2.0 alla 3.0. Questo è stato il nostro contributo alla dimostrazione della legge sull'involucro del software :

"Ogni programma tenta di espandersi fino a quando non riesce a leggere la posta. Quei programmi che non possono espandersi così vengono sostituiti da quelli che possono farlo."

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

Disfunzione dell'interfaccia utente di Mozilla

Poiché la maggior parte della progettazione dell'interfaccia utente per i prodotti Netscape è stata eseguita dallo staff di Netscape che lavora secondo i requisiti di Netcenter, l'interfaccia utente di Mozilla ha sofferto. Invece di essere un nucleo pulito su cui Netscape potrebbe costruire un prodotto per soddisfare le sue esigenze, la suite Mozilla non è mai stata del tutto giusta; era pieno di costrutti UI scomodi che esistevano solo per essere riempiti da sovrapposizioni nel repository di fonti private di Netscape - "l'albero commerciale".

A complemento di questa disfunzione, all'epoca il progetto era sviluppato da oltre un centinaio di ingegneri in diversi dipartimenti, a volte scarsamente collegati all'interno della CPD. Netscape era cresciuto rapidamente negli anni precedenti e con un ingegnere di assunzioni irregolari con abilità che avrebbero suggerito che avevano bisogno di più assistenza da parte degli altri, aveva troppa autonomia nella progettazione e nell'implementazione delle caratteristiche. L'assistenza per l'utente è stata scarsa e, di conseguenza, l'applicazione si è gonfiata rapidamente.

1 Da una versione archiviata del blog ormai defunto di Ben Goodger.


5
Ahh ... Questo spiega Emacs :-)
jwernerny

9
@jwernerny niente spiega Emacs ...
yannis

4
@MichaelKohne - Per lo stesso motivo ho pensato che Emacs fosse un'implementazione non grafica iniziale di Matrix.
Martin Beckett,

2
Inoltre, ho concluso che la decima regola di Greenspuns è un'osservazione che essenzialmente si trova in programmi sufficientemente complessi che è necessario avere la capacità di fornire codice in fase di esecuzione.

2
@jwernerny Credo che ci sia un'intera pagina che ne parla: jwz.org/doc/lemacs.html
Michael,

4

Non è una vera legge, è un commento satirico su come i progetti software (se non gestiti correttamente) possono diventare così grandi e complicati, che in qualche modo includono un lettore di e-mail (anche se non ha nulla a che fare con lo scopo originale del progetto) . Un manager che una volta avevo affezionato ad una frase simile "Qualsiasi sistema sufficientemente complicato contiene un'implementazione LISP a metà di esso".


2
alias "Decima regola di Greenspun".
Jerry Coffin,

1
@JerryCoffin: Grazie, non ne sapevo il nome! en.wikipedia.org/wiki/Greenspun%27s_tenth_rule
FrustratedWithFormsDesigner

3

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

Molti progetti non riescono a resistere all'aggiunta di funzionalità, sia che siano necessarie o meno.

Una conclusione logica è che ogni parte del software finirà per inviare posta.

Vedi anche Scope Creep .


Le comunicazioni di posta sono / il / il modo per inviare notifiche agli esseri umani dal software in alcuni luoghi.
Paul Nathan,

L'invio di posta è più ragionevole della lettura. Il mio router può inviarmi i suoi registri ogni tanto ma non ha motivo di accettare la posta. Allo stesso modo, molti programmi Android invieranno tramite e-mail immagini e simili per scopi di condivisione.
Jeanne Pindar,

-1

Vedo almeno tre modi per vederlo.

Uno è ignorare la lettura della posta in sé e vederlo come un'affermazione secondo cui le persone sembrano apprezzare i prodotti con la flessibilità di essere rivolti a quasi tutte le attività, indipendentemente da quanto poco potrebbe avere a che fare con l'intento originale dello strumento. Se lo consideriamo 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 poter supportare la lettura della posta, anche se (per quanto ne so) no tale plug-in esiste. Questo punto di vista potrebbe essere sintetizzato in modo più chiaro, ma meno originariamente, come "la flessibilità batte la specializzazione".

Il secondo modo di vedere sarebbe che Jamie Zawinski ha un focus così ristretto che ignora semplicemente 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 sembra che venga sostituito da qualcos'altro.

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 in background, tutto il tempo e può passare a esso abbastanza rapidamente / facilmente, tagliare e incollare con qualsiasi altra cosa, ecc., Che il dettaglio minore che il lettore di posta elettronica è impacchettato come un'applicazione separata è diventato irrilevante.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.