ฉันต้องการคำอธิบายที่ถูกต้องเกี่ยวกับกฎหมายการห่อซอฟท์แวร์ของJamie Zawinski :
ทุกโปรแกรมพยายามขยายจนกว่าจะสามารถอ่านจดหมายได้ โปรแกรมที่ไม่สามารถขยายได้จะถูกแทนที่ด้วยโปรแกรมที่สามารถทำได้
ฉันต้องการคำอธิบายที่ถูกต้องเกี่ยวกับกฎหมายการห่อซอฟท์แวร์ของJamie Zawinski :
ทุกโปรแกรมพยายามขยายจนกว่าจะสามารถอ่านจดหมายได้ โปรแกรมที่ไม่สามารถขยายได้จะถูกแทนที่ด้วยโปรแกรมที่สามารถทำได้
คำตอบ:
คำตอบทั้งหมด (และความคิดเห็น) จนถึงตอนนี้ดูเหมือนจะมุ่งเน้นไปที่คำแถลงครึ่งแรกของทั้งหมดทำให้กลายเป็นความคิดเห็นเกี่ยวกับ "การขยายตัว" เมื่อครึ่งที่สำคัญคือครึ่งหลัง: โปรแกรมเหล่านั้นที่ไม่สามารถขยายได้ ซึ่งสามารถ.
นี่ไม่เกี่ยวกับการขยายตัวของซอฟต์แวร์ แต่เป็นเรื่องของความเป็นจริงของตลาด ผู้คนอาจพูดว่าพวกเขาต้องการผลิตภัณฑ์ที่เรียบง่าย แต่เมื่อคุณดูการใช้งานจริงสิ่งต่าง ๆ ที่นำมาใช้เป็นสิ่งที่ทำให้ผู้ใช้ทำมากขึ้นและพวกเขาก็เปลี่ยนเครื่องมือที่มีความสามารถน้อยลง
ส่วนหนึ่งของปัญหาคือ "ง่าย" เป็นคำที่สับสน เช่นเดียวกับ "เชื่อมั่น" อาจหมายถึงสองสิ่งที่ตรงกันข้ามกันเกือบทั้งหมด สิ่งที่ผู้คนต้องการคือสิ่งที่ลดความซับซ้อนของงานที่ซับซ้อน นั่นคือ "ความเรียบง่ายที่ดี" และมันต้องการความซับซ้อนอย่างมากในการทำสิ่งที่ถูกต้อง แม้ว่าบางคนตีความว่าเป็นคนต้องการสิ่งที่ง่ายหรือเรียบง่าย แนวคิดนี้อาจมีช่องดึงดูดใจ แต่โดยรวมแล้วมันเป็นเรื่องที่ "ผิดปกติ" ที่จะมุ่งเน้นไปที่การออกแบบผลิตภัณฑ์ ไม่ว่างานของคุณจะดีเพียงใดคุณสมบัติใหม่นี้ก็ยังคงมีอยู่
เพื่อยกตัวอย่างมีโปรแกรมที่ฉันทำงานในที่ทำงาน คุณอาจไม่เคยได้ยินเรื่องนี้มาก่อน แต่เราเป็นผู้นำตลาดในอุตสาหกรรมเฉพาะด้าน: การควบคุมสื่อ โปรแกรมของเรามักจะใช้งานโทรทัศน์และ / หรือสถานีวิทยุที่คุณชื่นชอบ ลูกค้ารักมันพวกเขาบอกว่ามันเป็นอย่างนั้นดีกว่าสิ่งอื่นใดที่พวกเขาได้ทำงานร่วมกับ
มันใหญ่หลวงเช่นกัน EXE มีขนาดเกิน 65 MB พร้อมรหัสประมาณ 4 ล้านบรรทัดซึ่งได้รับการสนับสนุนจากฐานข้อมูลที่มีมากกว่า 150 ตารางสร้างขึ้นในช่วงระยะเวลากว่าทศวรรษของการทำงาน และดูเหมือนว่าทุกครั้งที่เราพยายามติดตั้งลงในสถานีหรือเครือข่ายใหม่มีสิ่งหนึ่งหรือสองอย่างที่จำเป็นอย่างยิ่งต่อเวิร์กโฟลว์ของพวกเขานั่นคือเราไม่ได้รับการสนับสนุนใด ๆ ดังนั้นเราจึงเพิ่มคุณสมบัติใหม่เพราะลูกค้าไม่ต้องการเปลี่ยนจากระบบที่พวกเขาคุ้นเคยอยู่แล้ว และให้ฉันทำซ้ำลูกค้าที่รักมัน
คุณต้องเข้าใจว่าเรื่องนี้เกิดขึ้นอีกนานและในเวลานั้นยังไม่เป็นที่นิยมสำหรับคอมพิวเตอร์ที่จะสามารถเรียกใช้มากกว่าหนึ่งโปรแกรมในเวลาเดียวกันสำหรับผู้ใช้ที่ได้รับ DOS สำหรับคอมพิวเตอร์ส่วนบุคคล (และอาจเป็น Windows 3 อยู่ด้านบน) และเทอร์มินัลที่อ้างอิงอักขระสำหรับผู้ใช้ Unix (มีเพียงไม่กี่คนเท่านั้นที่มี X11)
นี่หมายความว่าในการตรวจสอบว่าคุณได้รับอีเมลหรือไม่คุณต้องออกจากสิ่งที่คุณกำลังทำอยู่เริ่มโปรแกรมจดหมายอ่านจดหมายออกจากโปรแกรมจดหมายแล้วเริ่มโปรแกรมเก่าของคุณใหม่ ฉันเดาว่าคุณจะเห็นว่าหากโปรแกรมปัจจุบันของคุณสามารถให้คุณอ่านอีเมลของคุณได้คุณสามารถหลีกเลี่ยงได้ทั้งหมด
ดังนั้นหากโปรแกรมปัจจุบันของคุณไม่สามารถอ่านอีเมลของคุณคุณมีแนวโน้มที่จะทำเช่นนั้น (จำไว้ว่านี่คือนักเรียน MIT) หรือเปลี่ยนไปใช้โปรแกรมอื่นที่ทำได้
วันนี้เป็นเรื่องยากที่จะจินตนาการ แต่คุณสามารถได้รับความเฉลียวของวิธีการโดย จำกัด ตัวเองในหน้าต่างเบราว์เซอร์เดียว - ไม่มีแท็บไม่มีหน้าต่างพิเศษ - และบางทีอาจไม่ได้ใช้ที่คั่นหน้า
ดังที่คนอื่น ๆ พูดถึง "กฎหมาย" คือการสังเกตอย่างขบขันเกี่ยวกับการขยายตัวของซอฟต์แวร์และการคืบคะแนนและมันคล้ายกับกฎข้อที่สิบของ Greenspun :
โปรแกรม C หรือ Fortran ที่ซับซ้อนเพียงพอใด ๆ มี ad hoc ที่ระบุอย่างไม่เป็นทางการระบุข้อผิดพลาดและการใช้งานช้าของครึ่งหนึ่งของ Common LISP
กฎหมายดังกล่าวสะท้อนให้เห็นถึงการทำงานของ Zawinski กับเบราว์เซอร์ Netscape และต่อมากับ Netscape Mail & News ดังที่อธิบายไว้ที่นี่โดยตัวเอง:
ต่อไปฉันออกแบบและ Terry Weissman และฉันใช้งานไคลเอนต์ Netscape Mail และ News เวอร์ชัน 2.0 ถึง 3.0 นี่คือการมีส่วนร่วมของเราในการพิสูจน์กฎหมายห่อหุ้มซอฟต์แวร์ :
"ทุกโปรแกรมพยายามขยายจนกว่าจะสามารถอ่านจดหมายได้โปรแกรมที่ไม่สามารถขยายได้จะถูกแทนที่ด้วยโปรแกรมที่สามารถขยายได้"
เบราว์เซอร์ Netscape ในขณะที่เบราว์เซอร์ที่นิยมที่สุดมักถูกวิพากษ์วิจารณ์ว่ามีคุณสมบัติมากเกินไปสำหรับตัวมันเองถ้าฉันไม่เข้าใจผิดอย่างน่ากลัวมันเป็นเบราว์เซอร์ที่ได้รับความนิยมตัวล่าสุด ตัวอย่างเช่นBen Goodgerระบุว่าBloggerของ Netscape เป็นหนึ่งในเหตุผล (หลาย ๆ ข้อ) ที่นำไปสู่การสร้าง Firefox 1 :
UI ผิดปกติของ Mozilla
เนื่องจากการออกแบบส่วนต่อประสานผู้ใช้ส่วนใหญ่สำหรับผลิตภัณฑ์ Netscape นั้นทำโดยเจ้าหน้าที่ของ Netscape ที่ทำงานตามข้อกำหนดของ Netcenter ส่วนต่อประสานผู้ใช้ Mozilla จึงได้รับความเดือดร้อน แทนที่จะเป็นแกนหลักที่สะอาดซึ่ง Netscape สามารถสร้างผลิตภัณฑ์ให้เหมาะกับความต้องการชุด Mozilla ไม่เคยรู้สึกค่อนข้างถูกต้อง มันเต็มไปด้วยการสร้าง UI ที่น่าอึดอัดใจที่มีอยู่เท่านั้นที่จะเต็มไปด้วยการซ้อนทับในแหล่งเก็บข้อมูลส่วนตัวของ Netscape - "ต้นไม้เชิงพาณิชย์"
การรวมความผิดปกตินี้ในเวลาที่โครงการได้รับการพัฒนาโดยวิศวกรกว่าร้อยคนในแผนกที่แตกต่างกันบางครั้งก็มีการเชื่อมต่อที่ไม่ดีใน CPD Netscape เติบโตอย่างรวดเร็วในปีก่อนหน้าและด้วยวิศวกรบาร์ที่มีความสามารถที่จะแนะนำว่าพวกเขาต้องการความช่วยเหลือเพิ่มเติมจากผู้อื่นทำให้มีอิสระในการออกแบบและการใช้งานมากเกินไป ความช่วยเหลือประสบการณ์ผู้ใช้กระจัดกระจายและเป็นผลให้แอปพลิเคชันป่องอย่างรวดเร็ว
1จากบล็อกที่หมดอายุแล้วของ Ben Goodger รุ่นเก่า
มันไม่ใช่กฎหมายที่แท้จริงมันเป็นความเห็นเหน็บแนมว่าโครงการซอฟต์แวร์ (หากไม่ได้รับการจัดการอย่างเหมาะสม) สามารถเติบโตได้ขนาดใหญ่และซับซ้อนในที่สุดพวกเขาก็รวมโปรแกรมอ่านอีเมล (แม้ว่าจะไม่เกี่ยวข้องกับวัตถุประสงค์ดั้งเดิมของโครงการ) . ผู้จัดการที่ฉันเคยชอบวลีที่คล้ายกัน "ระบบที่ซับซ้อนใด ๆ ที่เพียงพอมีการใช้ LISP แบบครึ่งทางภายใน"
มันเป็นความเห็นเกี่ยวกับว่าบางโครงการซอฟต์แวร์ดูเหมือนจะขยายตัวและเพิ่มคุณสมบัติมากขึ้นเรื่อย ๆ
ดูเหมือนว่าหลายโครงการจะไม่สามารถต้านทานคุณสมบัติเพิ่มเติมได้ไม่ว่าจะจำเป็นหรือไม่ก็ตาม
ข้อสรุปเชิงตรรกะคือซอฟต์แวร์ทุกชิ้นจะจบลงด้วยการส่งจดหมาย
ฉันเห็นอย่างน้อยสามวิธีในการดู
สิ่งหนึ่งคือละเว้นการอ่านอีเมลและดูว่าเป็นคำสั่งที่คนดูเหมือนจะชอบผลิตภัณฑ์ที่มีความยืดหยุ่นที่จะหันไปทำงานได้เกือบทุกประเภท หากเรามองด้วยวิธีนี้ผลิตภัณฑ์อย่าง Photoshop ที่ไม่รองรับการอ่านเมลไม่ใช่ความผิดปกติเพราะสถาปัตยกรรมปลั๊กอินนั้นมีความยืดหยุ่นเพียงพอที่จะรองรับการอ่านจดหมายได้แม้ว่า (เท่าที่ฉันรู้) ไม่ มีปลั๊กอินดังกล่าว มุมมองนี้อาจสรุปได้อย่างละเอียดมากขึ้น แต่น้อยกว่าเดิมในฐานะ "ความเชี่ยวชาญเฉพาะด้านความยืดหยุ่นเต้น"
วิธีที่สองในการดูก็คือ Jamie Zawinski มีจุดโฟกัสแคบ ๆ ที่เขาไม่สนใจผลิตภัณฑ์เช่น Photoshop, PowerPoint, เกมส่วนใหญ่ ฯลฯ ที่อยู่มานานหลายปีไม่สนับสนุนการอ่านจดหมายและไม่ต้องทำเช่นนั้น ดูเหมือนจะไม่ได้รับการแทนที่ด้วยสิ่งอื่นใดที่ทำเช่นกัน
ประการที่สามจะเป็นข้อแตกต่างเล็กน้อยไปยังข้อที่สองกล่าวโดยสรุปแล้วการบูรณาการระหว่างผลิตภัณฑ์เกิดขึ้นในระดับที่การอ่านจดหมายได้อย่างมีประสิทธิภาพถูกรวมเข้ากับทุกสิ่งเพราะคนส่วนใหญ่ตอนนี้มีโปรแกรมอ่านจดหมายที่ทำงานอยู่เบื้องหลัง เวลาและสามารถสลับไปมาได้อย่างรวดเร็ว / ง่ายดายเพียงพอตัดและวางกับสิ่งอื่น ๆ เป็นต้นว่ารายละเอียดเล็กน้อยที่โปรแกรมอ่านเมลจะถูกบรรจุเป็นแอปพลิเคชันแยกต่างหากกลายเป็นสิ่งที่ไม่เกี่ยวข้อง