¿Qué significa la Ley de Jamie Zawinski?

Respuestas:

39

Todas las respuestas (y comentarios) hasta ahora parecen centrarse por completo en la primera mitad de la declaración, convirtiéndola en un comentario sobre "hinchazón", cuando la mitad importante es la segunda mitad: los programas que no pueden expandirse son reemplazados por otros. cual puede.

No se trata de la acumulación de software, se trata de las realidades del mercado. Las personas pueden decir que quieren un producto simple, pero cuando se observa el uso real, las cosas que se utilizan son las que permiten a los usuarios hacer más, y terminan reemplazando herramientas menos capaces.

Parte del problema es que "simple" es una palabra confusa. Al igual que "hendido", puede significar dos cosas casi completamente opuestas. Lo que la gente quiere es algo que simplifique las tareas complejas. Eso es "lo bueno simple", y requiere una gran complejidad para hacer lo correcto. Sin embargo, lo que algunas personas lo interpretan es que la gente quiere algo simplista o minimalista. Este concepto puede tener cierto atractivo nicho, pero en general es el tipo de "simple" equivocado en el que centrarse al diseñar un producto. No importa cuán bueno sea su trabajo, las nuevas solicitudes de funciones siguen llegando.

Para dar un ejemplo, está el programa en el que trabajo en el trabajo. Probablemente nunca haya oído hablar de él, pero somos el líder del mercado en una industria especializada: control de medios. Nuestro programa probablemente ejecute su estación de radio o televisión favorita. Los clientes están encantados con ella, dicen que es por lo mucho mejor que cualquier otra cosa que haya trabajado.

También es enorme . El EXE tiene más de 65 MB de tamaño, con alrededor de 4 millones de líneas de código, respaldado por una base de datos con más de 150 tablas, construido en el transcurso de más de una década de trabajo. Y, sin embargo, parece que cada vez que intentamos instalarlo en una nueva estación o red, hay una o dos cosas que son absolutamente esenciales para su flujo de trabajo, para las cuales no tenemos ningún soporte. Así que terminamos agregando las nuevas funciones porque de lo contrario los clientes no querrían cambiar del sistema al que ya están acostumbrados. Y déjenme repetir, a los clientes les encanta.

Mason Wheeler
fuente
20
Y, finalmente, el software inflado es reemplazado por un nuevo competidor, que es "delgado y malo", y que agregará las características requeridas de una en una hasta que tenga todas las características que tenía su predecesor ...
jhonkola
Hm, pensé que esa parte estaba cubierta por la declaración de Zawinski: "Luego, diseñé, y Terry Weissman y yo implementamos, los clientes de Netscape Mail and News, versiones 2.0 a 3.0. Esta fue nuestra contribución a la prueba de la Ley de Software Envelopment ", pero ahora que lo he vuelto a leer no está tan claro.
Yannis
1
@jhonkola si el código hace lo que los clientes necesitan y no mucho más que eso, no está hinchado.
1
@ ThorbjørnRavnAndersen Estoy de acuerdo, mi punto era más que cuando el software gana popularidad (y por lo tanto también usuarios / clientes), la cantidad de características requeridas por los usuarios, y eventualmente implementadas, crecerá.
jhonkola
1
Si su interpretación es correcta, el comentario de Zawinski fue jactancioso, no autocrítico. Me parece difícil de creer.
ctn
12

Debe comprender que esto sucedió hace mucho tiempo, y en ese momento todavía no era corriente para las computadoras poder ejecutar más de un programa a la vez para un usuario determinado. DOS para computadoras personales (y posiblemente Windows 3 en la parte superior) y terminales basados ​​en caracteres para usuarios de Unix (solo unos pocos tenían X11).

Esto significa que para verificar si recibió un correo electrónico, tuvo que salir de lo que estaba haciendo actualmente, iniciar el programa de correo, leer el correo, salir del programa de correo y reiniciar su antiguo programa. Supongo que puede ver que si su programa actual le permite leer su correo electrónico, podría evitar todo eso.

Por lo tanto, si su programa actual no podía leer su correo electrónico, estaba inclinado a hacerlo (recuerde que se trataba de estudiantes del MIT) o cambiar a otro que pudiera hacerlo.

En estos días eso es difícil de imaginar, pero puedes tener una idea de cómo fue al limitarte a una sola ventana del navegador, sin pestañas, sin ventanas adicionales, y tal vez incluso no uses marcadores.


fuente
9

Como todos los demás ya mencionaron, la "ley" es una observación humorística sobre la hinchazón de software y el deslizamiento de puntaje , y es muy similar a la décima regla de Greenspun :

Cualquier programa C o Fortran suficientemente complicado contiene una implementación ad hoc, especificada informalmente, llena de errores y lenta de la mitad de Common Lisp.

La ley refleja el trabajo de Zawinski con el navegador Netscape y más tarde con Netscape Mail & News, como se describe aquí , bueno, él mismo:

Luego, diseñé, y Terry Weissman y yo implementamos los clientes de Netscape Mail and News, versiones 2.0 a 3.0. Esta fue nuestra contribución a la prueba de la Ley de Desarrollo de Software :

"Cada programa intenta expandirse hasta que puede leer el correo. Aquellos programas que no pueden expandirse son reemplazados por los que sí pueden".

El navegador Netscape, en ese momento el navegador más popular, a menudo ha sido criticado por tener demasiadas funciones por su propio bien, si no me equivoco terriblemente, fue el último navegador (popular) que admitió dos motores de renderizado, Gecko y Trident. Por ejemplo, Ben Goodger identifica la hinchazón de Netscape como una de las (muchas) razones que conducen a la creación de Firefox 1 :

Disfunción de la interfaz de usuario de Mozilla

Dado que la mayoría del diseño de la interfaz de usuario para los productos Netscape fue realizado por el personal de Netscape que trabajaba para los requisitos de Netcenter, la interfaz de usuario de Mozilla sufrió. En lugar de ser un núcleo limpio sobre el cual Netscape podría construir un producto para satisfacer sus necesidades, la suite Mozilla nunca se sintió del todo bien; estaba repleto de construcciones de interfaz de usuario incómodas que existían solo para ser completadas por superposiciones en el repositorio de fuentes privadas de Netscape: el "árbol comercial".

Para agravar esta disfunción, en el momento en que el proyecto estaba siendo desarrollado por más de un centenar de ingenieros en departamentos diferentes, a veces mal conectados dentro del CPD. Netscape había crecido rápidamente en años anteriores, y con una barra de contratación desigual, los ingenieros con habilidades que sugerirían que necesitaban más ayuda de otros tenían demasiada autonomía en el diseño y la implementación de funciones. La asistencia de la experiencia del usuario fue escasa y, como resultado, la aplicación se hinchó rápidamente.

1 De una versión archivada del ahora difunto blog de Ben Goodger.

Yannis
fuente
55
Ahh ... Eso explica Emacs :-)
jwernerny
99
@jwernerny nada explica Emacs ...
Yannis
44
@MichaelKohne: por la misma razón, pensé que Emacs era una implementación no gráfica de Matrix.
Martin Beckett
2
También he concluido que la décima regla de Greenspuns es una observación que esencialmente encuentras en programas suficientemente complejos que debes tener la capacidad de proporcionar código en tiempo de ejecución.
2
@jwernerny Creo que hay una página completa que habla de esto: jwz.org/doc/lemacs.html
Michael
4

No es una ley real , es un comentario satírico sobre cómo los proyectos de software (si no se gestionan adecuadamente) pueden crecer tanto y ser tan complicados que de alguna manera eventualmente incluyen un lector de correo electrónico (incluso si no tiene nada que ver con el propósito original del proyecto) . Un gerente que tuve una vez le gustó una frase similar "Cualquier sistema suficientemente complicado contiene una implementación LISP a medias".

FrustratedWithFormsDesigner
fuente
2
también conocido como "Décima regla de Greenspun".
Jerry Coffin
1
@JerryCoffin: ¡Gracias, no sabía cómo se llamaba! en.wikipedia.org/wiki/Greenspun%27s_tenth_rule
FrustratedWithFormsDesigner
3

Es un comentario sobre cómo algunos proyectos de software parecen seguir expandiéndose y agregando más y más funciones.

Parece que muchos proyectos no pueden resistirse a agregar funciones, sean necesarias o no.

Una conclusión lógica es que cada pieza de software terminará enviando correo.

Ver también Scope Creep .

Oded
fuente
Las comunicaciones por correo son / la / forma de enviar notificaciones a los humanos desde el software en algunos lugares.
Paul Nathan
Enviar correo es más razonable que leerlo. Mi enrutador puede enviarme sus registros de vez en cuando, pero no tiene ningún motivo para aceptar el correo. Del mismo modo, muchos programas de Android enviarán imágenes por correo electrónico para compartirlas.
Jeanne Pindar
-1

Veo al menos tres formas de verlo.

Una es ignorar la lectura del correo per se, y verlo como una declaración de que a la gente parece gustarle los productos con la flexibilidad de dedicarse a casi cualquier tarea, independientemente de lo poco que tenga que ver con la intención original de la herramienta. Si lo vemos de esta manera, un producto como Photoshop que no admite la lectura de correo no es una anomalía porque su arquitectura de plug-in es lo suficientemente flexible como para admitir la lectura de correo, aunque (hasta donde yo sé) no dicho complemento existe. Este punto de vista podría resumirse de manera más limpia, pero menos original, ya que "la flexibilidad supera a la especialización".

La segunda forma de verlo sería que Jamie Zawinski tiene un enfoque tan limitado que simplemente ignora los productos como Photoshop, PowerPoint, la mayoría de los juegos, etc., que han existido durante años, no admiten la lectura de correos, y no t parece estar siendo reemplazado por cualquier otra cosa que lo haga tampoco.

El tercero sería un poco como un contrapunto al segundo, diciendo que, en esencia, la integración entre productos ha sucedido de tal manera que efectivamente la lectura de correo está integrada en todo porque la mayoría de las personas ahora tienen un lector de correo funcionando en segundo plano, todo el tiempo y puede cambiar a él lo suficientemente rápido / fácil, cortar y pegar con cualquier otra cosa, etc., que el pequeño detalle de que el lector de correo está empaquetado como una aplicación separada se ha vuelto irrelevante.

Jerry Coffin
fuente