Richard Gabriel'in ünlü makalesinde The Rise of Worse is Better , basitlik, doğruluk, tutarlılık ve bütünlük eksenleri boyunca MIT / Stanford (Lisp) ve New Jersey (C / Unix) tasarım felsefelerinin karikatürize versiyonlarını karşılaştırıyor. Unix'in arayüz basitliğine göre uygulamanın basitliğine öncelik verdiğini iddia etmek için "PC kaybeden sorunu" ( Josh Haberman tarafından başka bir yerde tartışılmıştır) örneğini veriyor .
Ortaya koyduğum bir diğer örnek de sayılara farklı yaklaşımlar. Lisp keyfi olarak büyük sayıları (bellek boyutuna kadar) temsil ederken, C sayıları sabit sayıda bitle (genellikle 32-64) sınırlar. Bence bu doğruluk eksenini gösteriyor.
Tutarlılık ve bütünlük için bazı örnekler nelerdir? İşte Gabriel'in tüm açıklamaları (kabul ettiği karikatürler):
MIT / Stanford yaklaşımı
- Basitlik - tasarım hem uygulamada hem de arayüzde basit olmalıdır. Arayüzün uygulamadan basit olması daha önemlidir.
- Doğruluk - tasarım, gözlemlenebilir tüm yönleriyle doğru olmalıdır. Yanlışlığa izin verilmez.
- Tutarlılık - tasarım tutarsız olmamalıdır. Bir tasarımın tutarsızlığı önlemek için biraz daha az basit ve daha az eksiksiz olmasına izin verilir. Tutarlılık, doğruluk kadar önemlidir.
- Tamlık - tasarım, pratik olduğu kadar önemli durumları da kapsamalıdır. Makul bir şekilde beklenen tüm vakalar ele alınmalıdır. Sadeliğin bütünlüğü aşırı derecede azaltmasına izin verilmez.
New Jersey Yaklaşımı
- Basitlik - tasarım hem uygulamada hem de arayüzde basit olmalıdır. Uygulamanın arayüzden daha basit olması daha önemlidir. Sadelik bir tasarımda en önemli husustur.
- Doğruluk - tasarım, gözlemlenebilir tüm yönleriyle doğru olmalıdır. Basit olmak doğru olmaktan biraz daha iyidir.
- Tutarlılık - tasarım aşırı tutarsız olmamalıdır. Tutarlılık, bazı durumlarda basitlik için feda edilebilir, ancak tasarımın daha az yaygın koşullarla ilgilenen kısımlarını, uygulama karmaşıklığı veya tutarsızlığı sunmaktan daha iyi bırakmak daha iyidir.
- Tamlık - tasarım, pratik olduğu kadar önemli durumları da kapsamalıdır. Makul düzeyde beklenen tüm vakalar ele alınmalıdır. Bütünlük başka bir kalite lehine feda edilebilir. Aslında, uygulama basitliği tehlikeye atıldığında bütünlük feda edilmelidir. Sadelik korunursa, bütünlüğü sağlamak için tutarlılık feda edilebilir; özellikle değersiz arayüzün tutarlılığıdır.
Lütfen Gabriel'in haklı olup olmadığını (StackExchange için uygun olmayan bir soru) değil, neye atıfta bulunabileceğinin örnekleri için soruyorum.