นามธรรมของซอฟต์แวร์กำลังทำลายอารยธรรมหรือไม่? (2021)
(datagubbe.se)-
สรุปข้อโต้แย้งของ Jonathan Blow
- การส่งต่อข้อมูลระหว่างรุ่นถูกเจือจางลง
- การปฏิบัติจริงสำคัญกว่าทฤษฎีต่อการคงอยู่ของเทคโนโลยี
- ซอฟต์แวร์เป็นสิ่งที่ขับเคลื่อนโลก
- นามธรรมส่งเสริมความไม่รู้เกี่ยวกับการเขียนโปรแกรมระดับล่าง
- หากลืมความรู้ระดับล่าง เราจะไม่สามารถบำรุงรักษาซอฟต์แวร์สำคัญได้ และอารยธรรมจะล่มสลาย
-
คำวิจารณ์และข้อโต้แย้งกลับ
- ข้อโต้แย้งของ Blow มีข้อผิดพลาดและความเข้าใจคลาดเคลื่อนอยู่มาก
- ความถูกต้องของข้อมูลเป็นสิ่งสำคัญ และข้อมูลของ Blow ก็ผิดพลาดในหลายด้าน
- ตัวชี้วัด "Five nines" (เวลาพร้อมใช้งาน 99.999%) ยังคงถูกใช้อยู่
- ซอฟต์แวร์ที่แข็งแกร่งยังคงมีอยู่ และความก้าวหน้าทางเทคโนโลยีก็ยังดำเนินต่อไป
- ข้ออ้างที่ว่านามธรรมจะนำไปสู่การสูญเสียความสามารถนั้นเป็นการกล่าวเกินจริง
-
ความก้าวหน้าทางเทคโนโลยีและนามธรรม
- โปรแกรมเมอร์จำนวนมากไม่ต้องการจัดการกับการจัดการหน่วยความจำและพอยน์เตอร์
- ยังคงมีคนจำนวนมากที่เขียนโค้ด C และแอสเซมบลี
- ภาษาใหม่อย่าง Rust ให้ความสำคัญกับความแข็งแกร่ง
- นามธรรมมีส่วนช่วยในการพัฒนาเทคโนโลยีใหม่
-
ข้อถกเถียงเรื่องผลิตภาพของ Facebook
- ผลิตภัณฑ์ที่แท้จริงของ Facebook คือแพลตฟอร์มส่งโฆษณา
- โปรแกรมเมอร์จำนวนมากมีส่วนช่วยปรับปรุงระบบโฆษณา
-
การเปรียบเทียบอดีตกับปัจจุบัน
- สภาพแวดล้อมการพัฒนาซอฟต์แวร์ในอดีตกับปัจจุบันแตกต่างกันอย่างมาก
- คอมพิวเตอร์สมัยใหม่มีความแข็งแกร่งกว่ายุคก่อนมาก
- เมื่อความคาดหวังของผู้ใช้สูงขึ้น ความซับซ้อนของซอฟต์แวร์ก็เพิ่มขึ้นตาม
-
นามธรรมและการสูญเสียความรู้
- นามธรรมอาจเร่งการสูญเสียความรู้ได้
- แต่นามธรรมก็เปิดโอกาสให้ผู้คนจำนวนมากได้แสดงความคิดสร้างสรรค์
- สิ่งสำคัญคือการรักษาฐานทักษะที่ทำให้สามารถบำรุงรักษาระบบสำคัญได้
-
สรุป
- ข้อโต้แย้งของ Blow มีส่วนที่สมเหตุสมผลอยู่บ้าง แต่หลายส่วนก็เกินจริงและคลาดเคลื่อน
- ความซับซ้อนของซอฟต์แวร์และนามธรรมเป็นปัญหาที่แก้ไขได้
- ปัญหาที่ใหญ่กว่าของโลกดิจิทัลคือความเป็นส่วนตัวและเสรีภาพ
1 ความคิดเห็น
ความเห็นจาก Hacker News
ผมสอนวิชาระบบที่ Montana State และบ่อยครั้งนักศึกษาตอนเริ่มเรียนยังไม่เข้าใจด้วยซ้ำว่าระบบไฟล์คืออะไร
เห็นด้วยกับความเห็นของคุณ ผมดูบรรยายของ Blow แล้วและคิดว่าคำวิจารณ์นั้นสำคัญ
เวลาเว็บดีเวลอปเปอร์รุ่นเก่าบ่นเรื่อง abstraction เขาหมายถึงพวก React developer
สิ่งอย่าง JavaScript ฝั่งเซิร์ฟเวอร์และ React ทำให้เว็บกลายเป็นความวุ่นวายแบบการพัฒนาซอฟต์แวร์
Blow มักชี้ประเด็นที่ยอดเยี่ยมเกี่ยวกับการพัฒนาได้บ่อยมาก แต่ก็มักพลาดแก่นสำคัญเช่นกัน
สภาพแวดล้อมซอฟต์แวร์สมัยใหม่มีปัญหามากมาย และผมคิดว่า abstraction ที่มากเกินไปเป็นหนึ่งในปัญหา
การทำให้เรียบง่ายไม่ใช่ abstraction เสมอไป และ abstraction ก็ไม่ใช่การทำให้เรียบง่ายเสมอไป
มี abstraction ที่ผิดพลาดอยู่มาก และเพราะ "ศาสนาแห่งความเร็ว" กับความทะนงตัวในวงการเทคโนโลยี หลายอย่างจึงจบตั้งแต่การลองครั้งแรก
ผู้เขียนอยู่ในคนรุ่นใหม่ และไม่เข้าใจสิ่งที่ Blow พูด
ผมไม่เห็นด้วยกับคำกล่าวที่ว่า "ถ้าลืมของระดับล่าง อารยธรรมจะพัง"