Jamie Zawinski Yasası ne anlama geliyor?


Yanıtlar:


39

: Önemli yarı ikinci yarı olduğunda tüm cevaplar (ve yorum) şu ana kadar ifadesi ilk yarısında tüm ilgi "kabartmak," ilgili bir yorum haline getirme gibi görünüyor bu yüzden genişletmek edemeyen programlar yenileriyle değiştirilir hangi olabilir.

Bu, yazılımın şişmesiyle ilgili değil, pazarın gerçekleri ile ilgili. İnsanlar basit bir ürün istediklerini söyleyebilirler , ancak gerçek kullanıma baktığınızda, kullanılan şeyler kullanıcıların daha fazlasını yapmasına olanak sağlayan şeylerdir ve daha az yetenekli araçların yerine geçmektedir.

Sorunun bir kısmı “basit” in kafa karıştırıcı bir kelime olduğudur. "Bölünme" gibi, neredeyse tamamen zıt iki şey anlamına gelebilir. İnsanların istediği şey karmaşık görevleri basitleştiren bir şey . Bu "iyi basit" ve doğru yapmak için çok fazla karmaşıklık gerekiyor. Bazı insanların bunu yorumladığı şey, insanların basit veya minimalist bir şey istemeleridir . Bu konsepte bir miktar ilgi çekici olabilir, ancak genel olarak, bir ürünü tasarlarken odaklanılması gereken yanlış bir tür "basit". İşiniz ne kadar iyi olursa olsun, yeni özellik istekleri gelmeye devam ediyor.

Örnek vermek gerekirse, işte üzerinde çalıştığım bir program var. Muhtemelen hiç duymamışsınızdır, ancak özel bir sektörde pazar lideriyiz: medya kontrolü. Programımız büyük olasılıkla en sevdiğiniz TV ve / veya radyo istasyonunu yönetiyor. Müşterilerin seviyorum, onlar da söylüyorlar bu yüzden çok daha iyi onlar birlikte çalıştığım her şeyden daha.

Aynı zamanda muazzam . EXE, 10 yıldan uzun bir süre boyunca oluşturulmuş 150'den fazla tabloya sahip bir veritabanıyla desteklenen yaklaşık 4 milyon satırlık bir kodla 65 MB'nin üzerindedir. Yine de, onu yeni bir istasyonda veya ağda kurmaya çalıştığımız her seferde, iş akışları için kesinlikle gerekli olan, herhangi bir desteğimiz olmadığı bir veya iki şey var. Bu yüzden yeni özellikleri eklemeye başlarız çünkü aksi halde müşteriler zaten alıştıkları sistemden geçmek istemez. Ve tekrar etmeme izin verin, müşteriler bunu seviyor.


20
Ve sonunda şişirilmiş yazılım, "yalın ve
kaba"

Hm, bu kısmın Zawinski'nin ifadesiyle kaplı olduğunu düşündüm: "Sıradaki, tasarladım ve Terry Weissman ve ben, Netscape Posta ve Haber istemcilerinin 2.0'dan 3.0'a kadar olan versiyonlarını uyguladık. "ama şimdi onu yeniden okudum, net değil.
yannis

1
Eğer kod müşterilerin ihtiyaç duyduğunu yaparsa ve şişirilmiş olmadığından çok fazla değilse.

1
@ ThorbjørnRavnAndersen Kabul ediyorum, demek istediğim, yazılım popülerliği kazandığında (ve dolayısıyla kullanıcılar / müşteriler) olduğunda, kullanıcılar için gereken ve sonunda uygulanan özelliklerin sayısının artacağıydı.
jhonkola

1
Yorumunuz doğruysa, Zawinski'nin yorumu övünmüştü, özveri değil. Buna inanması zor.
ctn

12

Bunun uzun zaman önce gerçekleştiğini anlamalısınız ve o zamanlar bilgisayarların belirli bir kullanıcı için bir seferde birden fazla program çalıştırabilmesi henüz genel değildi. Kişisel Bilgisayarlar için DOS (ve muhtemelen üstte Windows 3) ve Unix kullanıcıları için karakter tabanlı terminaller (sadece birkaç tanesinde X11 vardı).

Bu, bir e-posta alıp almadığınızı kontrol etmek için şu anda yaptığınız şeyden çıkmak , posta programını başlatmak, posta okumak , posta programından çıkmak ve eski programınızı yeniden başlatmak zorunda olduğunuz anlamına gelir . Sanırım mevcut programınız e-postanızı okumanıza izin verebilirse, bunlardan kaçınabileceğinizi görebilirsiniz.

Bu nedenle, eğer mevcut programınız e-postanızı okuyamadıysa, ya bunu yapma eğilimindeydiniz (bunun MIT öğrencileri olduğunu unutmayın) ya da bir başkasına geçebildiniz.

Bugünlerde hayal edilmesi zor, ancak kendinizi tek bir tarayıcı penceresinde (sekmelerde, fazladan pencerelerde değil) ve hatta yer imlerini kullanmayla sınırlayarak nasıl bir ipucu elde edebilirsiniz .


9

Diğer herkesin zaten belirttiği gibi "yasa", yazılım şişmesi ve sünme derinliklerinde komik bir gözlemdir ve Greenspun'un onuncu kuralına çok benzer :

Yeterince karmaşık olan herhangi bir C veya Fortran programı, Ortak Lisp'in yarısının geçici, gayri resmi olarak belirlenmiş, böcek basması, yavaş uygulanmasını içerir.

Açıklandığı gibi hukuk, Netscape tarayıcısı ile ve daha sonra Netscape Mail & News Zawinski çalışmalarını yansıtan burada , tarafından iyi kendisi:

Sonra, tasarladım ve Terry Weissman ve ben, Netscape Mail ve News istemcilerini, 2.0 ve 3.0 sürümlerini uyguladık. Bu, Yazılım Zarflama Kanununun kanıtına olan katkımızdı :

"Her program posta okuyana kadar genişletmeye çalışıyor. Bu kadar genişleyemeyen programlar, değiştirebilecek olanlarla değiştiriliyor."

Netscape tarayıcısı, o zamanlar en popüler tarayıcı, çoğu zaman kendi iyiliği için çok fazla özelliğe sahip olduğu için eleştirildi, eğer korkunç bir şekilde yanılmıyorsam, iki renderleme motorunu (Gecko ve Trident) destekleyen son (popüler) tarayıcıydı. Örneğin, Ben Goodger , Netscape'in kabarmasını Firefox 1'in yaratılmasına neden olan (birçok) nedenden biri olarak tanımlar :

Mozilla'nın UI İşlev Bozukluğu

Netscape ürünleri için kullanıcı arayüzü tasarımının çoğu Netcenter gereksinimlerine göre çalışan Netscape personeli tarafından yapıldığı için Mozilla kullanıcı arayüzü zarar gördü. Mozilla paketi, Netscape'in ihtiyaçlarına uygun bir ürün oluşturabildiği temiz bir çekirdek olmak yerine, hiç bu kadar doğru olmamıştı; Netscape'in özel kaynak deposundaki (“ticari ağaç”) bindirmeleri ile doldurulması gereken garip UI yapılarıyla doluydu.

Bu işlev bozukluğunu bir araya getiren proje, CPD bünyesindeki farklı, bazen kötü bağlantılı bölümlerde yüzün üzerinde mühendis tarafından geliştirildi. Netscape, önceki yıllarda hızla büyümüştü ve diğerlerinden daha fazla yardıma ihtiyaç duyabileceklerini belirten yetenekli düzensiz bir bar mühendisleriyle, özellik tasarımı ve uygulamasında çok fazla özerkliğe sahipti. Kullanıcı deneyimi desteği seyrek ve bunun sonucunda uygulama hızla şişirildi.

1 Bir itibaren arşivlenen sürümü Ben Goodger şimdi feshedilmiş blogu.


5
Ahh ... Bu
Emacs'ı

9
@jwernerny hiçbir şey Emacs açıklıyor ...
yannis

4
@MichaelKohne - Aynı sebepten dolayı Emacs'ın Matrix'in grafiksel olmayan bir uygulaması olduğunu düşündüm.
Martin Beckett

2
Ayrıca Greenspuns'un onuncu kuralının, çalışma zamanında kod sağlama yeteneğine sahip olmanız gereken yeterince karmaşık programlarda bulduğunuz bir gözlem olduğu sonucuna vardım.

2
@jwernerny Bu konuda konuşulan bir sayfa olduğuna inanıyorum: jwz.org/doc/lemacs.html
Michael

4

Bu gerçek bir yasa değil , yazılım projelerinin (eğer uygun şekilde yönetilmezse) nasıl bu kadar büyük ve karmaşık hale gelebileceği konusunda hicivli bir yorum, bir şekilde bir e-posta okuyucusu ( projenin asıl amacı ile ilgisi olmasa bile) içeriyor . Bir zamanlar sahip olduğum bir yönetici de benzer bir cümleye düşkündü: "Yeterince karmaşık olan herhangi bir sistem, içinde yarı değerli bir LISP uygulaması içeriyordu".


2
aka "Greenspun'un onuncu kuralı."
Jerry Coffin

1
@JerryCoffin: Teşekkürler, adını bilmiyordum! en.wikipedia.org/wiki/Greenspun%27s_tenth_rule
FrustratedWithFormsDesigner

3

Bazı yazılım projelerinin genişlemeye ve daha fazla özellik eklemeye nasıl devam ettiği ile ilgili bir yorum.

Birçok proje, ihtiyaç duyup duyulmadığına bakılmaksızın özellik eklemeye direnemiyor gibi görünüyor.

Mantıklı bir sonuç, her yazılım parçasının posta göndererek sona ereceğidir.

Ayrıca bkz. Kapsam Sürünme .


Posta iletişimi, insanlara bazı yerlerde yazılımdan bildirim gönderme / yoludur.
Paul Nathan

Posta göndermek, okumaktan daha makul. Yönlendiricim bana günlüklerini çok sık gönderebiliyor, ancak posta kabul etmek için bir neden yok. Aynı şekilde, birçok Android programı görüntüleri paylaşma amacıyla e-posta ile gönderir.
Jeanne Pindar

-1

Görmenin en az üç yolunu görüyorum.

Bunlardan biri, posta okumayı kendi başlarına görmezden gelmek ve insanların, aracın orijinal amacı ile ne kadar az yapmak zorunda kaldıklarına bakılmaksızın, neredeyse her göreve dönüştürülebilen esnekliğe sahip ürünleri sevdiğini göründüğü bir ifade olarak görmektir. Biz bu yola bakarsak, yaptığı Photoshop gibi bir ürün değildir destek posta okuma olmayan bir anomali olan eklenti mimarisi bu esnek, çünkü yeteri kadar olabilir (aynı bildiğim kadarıyla) posta okuma, olsa bile destekleyecek hiçbir böyle bir eklenti var. Bu bakış açısı, “esneklik uzmanlığı attığından” daha net, fakat daha az başlangıçta özetlenebilir.

Bunu izlemenin ikinci yolu, Jamie Zawinski’nin o kadar dar bir odağa sahip olacağıydı: Photoshop, PowerPoint, çoğu oyun, vb., Yıllardır etrafta dolaşan, posta okumayı desteklemeyen ürünleri görmezden geliyor. Bu da başka bir şeyle değiştiriliyor gibi görünüyor.

Üçüncüsü, ikincisi ile ürünler arasında entegrasyonun öyle bir dereceye kadar gerçekleştiğini, yani çoğu insanın şu anda arka planda çalışan bir posta okuyucusu olduğu için, aslında her şeyin arka plan üzerinde çalışan bir posta okuyucusu olduğu söyleniyor zaman ve ona yeterince hızlı / kolay bir şekilde geçebilir, başka bir şeyle kesebilir ve yapıştırabilirsiniz, vb.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.