ปรัชญา(Philosophy)
- เราเป็นชุมชนที่พัฒนาซอฟต์แวร์คุณภาพสูงอย่าง dwm, dmenu, st โดยยึดถือ ความเรียบง่าย, ความชัดเจน, ความประหยัด (Simplicity, Clarity, Frugality) เป็นค่านิยมหลัก
- เราคัดค้าน สภาพความเป็นจริงที่ซอฟต์แวร์ซับซ้อนเกินความจำเป็น มีข้อผิดพลาดมาก และทำงานช้า แพร่หลายไปทั่วอุตสาหกรรมไอที
- โครงการของเรามุ่งหมาย สวนกระแสนี้ ด้วยการทำให้ทุกอย่างเรียบง่าย คงความมินิมอล และใช้งานได้ง่าย
- โครงการของเรามีกลุ่มเป้าหมายเป็น ผู้ใช้คอมพิวเตอร์ที่มีทักษะและผู้เชี่ยวชาญ
- เราเห็นว่าซอฟต์แวร์เชิงพาณิชย์ส่วนใหญ่และโครงการโอเพนซอร์สจำนวนมาก ถูกพัฒนาสำหรับผู้ใช้ทั่วไปและผู้ที่ไม่ใช่ผู้เชี่ยวชาญ จนผู้ใช้ที่มีทักษะถูกมองข้าม
- ในทางกลับกัน เราเชื่อว่า ตลาดของผู้ใช้ที่มีทักษะกำลังเติบโตอย่างต่อเนื่อง และผู้ใช้ระดับสูงสามารถค้นหาโซลูชันที่เหมาะที่สุดกับวิธีการทำงานของตนเองได้
- การออกแบบซอฟต์แวร์ที่เรียบง่ายและสง่างามนั้นยากกว่ามาก
- แต่เพื่อให้ได้มาซึ่งความน่าเชื่อถือและการบำรุงรักษาที่ดี ก็จำเป็นต้องยอมจ่ายต้นทุนนี้
- หากคงไว้ซึ่ง แนวมินิมอล (minimalism) ก็จะมี เป้าหมายที่สมเหตุสมผลและบรรลุได้จริง
- เรามุ่งมั่นรักษาความมินิมอลและความชัดเจน
แถลงการณ์(Manifest)
- นักพัฒนาจำนวนมาก เข้าใจผิดว่าการเขียนโค้ดให้ยาวคือความสำเร็จ
- แต่การมีโค้ดจำนวนมากไม่ได้หมายความว่าคุณภาพของซอฟต์แวร์จะดีขึ้นเสมอไป
- ยิ่งเดินหน้าต่อไปก็เหมือนทักษะจะยิ่งเพิ่มขึ้น แต่แท้จริงแล้วเป็นเพียงภาพลวงตา
- นักพัฒนาจำนวนมาก ไม่ใส่ใจคุณภาพของโค้ด และพอใจกับแค่สิ่งที่ทำงานได้เหมือนจะแก้ปัญหาได้
- หากแนวทางนี้ดำเนินต่อไป เมื่อเวลาผ่านไปก็จะเหลือเพียง โค้ดจำนวนมหาศาล โครงสร้างโค้ดที่พังยับเยิน และการออกแบบระบบที่เต็มไปด้วยข้อบกพร่อง
- นี่เกิดจากการขาดความชัดเจนเชิงแนวคิดและความสมบูรณ์ในกระบวนการพัฒนา
- ความซับซ้อนของโค้ดคือสาเหตุรากฐานที่ก่อให้เกิดซอฟต์แวร์ที่ไม่มีประสิทธิภาพและขาดความสอดคล้อง
- โค้ดที่ซับซ้อนทำให้เกิดประสิทธิภาพตกต่ำ การสิ้นเปลืองทรัพยากร และช่องโหว่ด้านความปลอดภัย
- ทางออกเดียวคือทิ้งทั้งโปรเจกต์แล้วเขียนใหม่ตั้งแต่ต้น
- ปัญหาคือแทบไม่มีการเขียนโค้ดใหม่ที่มีคุณภาพสูงเกิดขึ้นเลย
- นักพัฒนาหลายคนภูมิใจกับปริมาณโค้ด และเข้าใจผิดว่าตนเข้าใจความซับซ้อนดีแล้ว จึงคิดว่าไม่จำเป็นต้องเขียนใหม่
- พวกเขาคิดว่าตนเองเป็นอัจฉริยะ และเข้าใจผิดว่าซอฟต์แวร์ที่ซับซ้อนคือเป้าหมายในอุดมคติ
- ไอเดียที่ยอดเยี่ยมคือความเรียบง่าย ซอฟต์แวร์ที่ยอดเยี่ยมก็เรียบง่ายเช่นกัน
- ความเรียบง่ายคือแก่นของปรัชญา Unix
- ยิ่งลบบรรทัดโค้ดออกได้มากเท่าไร ก็ยิ่งหมายถึงความก้าวหน้าที่มากขึ้น และยิ่งโค้ดน้อยลง นักพัฒนาก็ยิ่งเชี่ยวชาญขึ้น ซอฟต์แวร์ก็ยิ่งดีขึ้น
2 ความคิดเห็น
เป็นแถลงการณ์ที่เต็มไปด้วยพลังจริง ๆ เลย 555 เท่มาก
ความเห็นจาก Hacker News
FAQ ของ Stali Linux จาก Suckless มีอิทธิพลกับผมมาก พวกเขาสร้าง userspace ที่ลิงก์แบบสแตติกทั้งหมดสำหรับ Linux
ขอบคุณ dwm กับ dmenu ที่ทำให้เดสก์ท็อปของผมแทบไม่เปลี่ยนไปเลยตลอด 10 ปีที่ผ่านมา ผมชอบความเสถียรที่ความมินิมอลมอบให้
ผมไม่เข้าใจว่าทำไมถึงบอกว่าไม่ควรใช้การประกาศตัวแปรเริ่มต้นในลูป
forทั้งที่ variadic macro กลับโอเค แต่for(int i = 0...)กลับถูกมองว่าซับซ้อนเกินไปผมพอรับแนวคิดมินิมอลได้ แต่ไม่ได้หมายความว่าทุกอย่างต้องเป็นแบบนั้น
ปรัชญาการเขียนโค้ดของ Suckless นั้นงดงาม อยากให้ซอฟต์แวร์ทั้งหมดถูกเขียนด้วยแนวคิดแบบนี้ แต่ window manager กับ X-menu ไม่ใช่ตัวอย่างที่ดีที่สุด
ดราม่าในคอมมูนิตี้เป็นเรื่องไร้สาระ ผมใช้เครื่องมือเหล่านี้เพราะชอบปรัชญาซอฟต์แวร์ของมัน ไม่ได้สนใจความเชื่อส่วนตัวหรือแนวทางการเมืองของผู้เขียน
หลังจากลองประเมินเทอร์มินัลหลายตัว สุดท้ายผมก็กลับมาใช้ st fork ใช้มาหลายปีแล้ว และมันเสถียรกับแทบไม่มีบั๊ก
ปรัชญานี้อาจไม่สมบูรณ์แบบ แต่เป็นแนวทางที่ใกล้เคียงที่สุดในการสร้างซอฟต์แวร์ที่เชื่อถือได้ การควบคุมไม่ให้ความซับซ้อนบานปลายคือเรื่องที่ยากที่สุดและสำคัญที่สุด
surf เป็นเว็บเบราว์เซอร์แบบเรียบง่ายที่สร้างบน WebKit2/GTK+ มันแสดงเว็บไซต์และตามลิงก์ได้
dwm ปรับแต่งโดยการแก้ซอร์สโค้ด ดังนั้นการทำแพ็กเกจไบนารีจึงไม่มีความหมาย ฐานผู้ใช้มีขนาดเล็กและค่อนข้างเอลิท
อยากได้ซอฟต์แวร์แบบ Suckless แต่เป็น asynchronous และทำได้ทุกอย่าง กำลังมองหาแอปที่ทำงานในลักษณะที่หลายแอปแบบ single-threaded ร่วมมือกัน
ดีแล้วที่พวกเขามีอยู่ และผมก็ซาบซึ้งกับสิ่งที่พวกเขาทำ แต่ผมชอบซอฟต์แวร์ที่มีความไม่สะดวกอยู่บ้าง การตั้งค่าของ BSPWM กำลังพอดี แต่การต้องคอมไพล์โค้ด C ใหม่ถือว่าเกินไป