วิกฤต RAM และพื้นที่เก็บข้อมูล: เมื่อซอฟต์แวร์ยุคใหม่ 'อ้วน' ขึ้น นักพัฒนาควรทำอย่างไร?

ในยุคที่ความต้องการฮาร์ดแวร์เพิ่มสูงขึ้นอย่างไม่เคยมีมาก่อน โดยเฉพาะจากการขยายตัวของศูนย์ข้อมูล AI ทำให้ RAM และพื้นที่เก็บข้อมูลกลายเป็นทรัพยากรที่หายากและมีราคาแพง สิ่งนี้กระตุ้นให้เกิดแนวคิดใหม่ในการพัฒนาซอฟต์แวร์ นั่นคือการทำอย่างไรให้ใช้ทรัพยากรที่มีอยู่อย่างจำกัดให้เกิดประโยชน์สูงสุด เหมือนในยุคที่คอมพิวเตอร์ทำงานด้วย RAM ไม่ถึง 1 GB และพื้นที่ฮาร์ดดิสก์เพียงไม่กี่ GB

ย้อนกลับไปในช่วงปี 2000 ระบบปฏิบัติการ Windows 2000 สามารถทำงานได้อย่างราบรื่นบน RAM เพียง 64 MB และฮาร์ดดิสก์ 1 GB โดยสามารถเปิดเบราว์เซอร์หลายแท็บ ชุดโปรแกรมสำนักงาน และแอปพลิเคชันอื่นๆ ได้พร้อมกัน ขณะที่ปัจจุบัน Windows 10 ต้องการพื้นที่ติดตั้งเกือบ 27 GB และโปรแกรมอีเมลอย่าง Thunderbird เพียงโปรแกรมเดียวยังใช้ RAM กว่า 150 MB ซึ่งมากกว่าที่คอมพิวเตอร์ทั้งเครื่องเคยมีในอดีตอย่างมาก แม้แต่ Linux ซึ่งขึ้นชื่อเรื่องความเบา ก็ยังต้องการทรัพยากรที่สูงขึ้นอย่างมีนัยสำคัญ

คำถามสำคัญคืออะไรคือสาเหตุที่ทำให้ซอฟต์แวร์ ‘อ้วน’ ขึ้นอย่างรวดเร็ว? ประการแรกคือการจัดการไฟล์ในระบบปฏิบัติการ Windows Vista เป็นต้นมาที่ใช้ WinSxS ซึ่งเก็บไฟล์ระบบทั้งหมดไว้ในที่เดียวและยังเก็บสำเนาเวอร์ชันเก่าไว้ ทำให้ขนาดของโฟลเดอร์ Windows เพิ่มขึ้นเรื่อยๆ ตามการอัปเดต

ประการที่สองคือการเปลี่ยนผ่านของภาษาโปรแกรมและเฟรมเวิร์กที่เน้นการทำงานในระดับนามธรรมที่สูงขึ้น ห่างจากการโต้ตอบโดยตรงกับฮาร์ดแวร์ ภาษาอย่าง Java, .NET, JavaScript และ Python ถูกออกแบบมาเพื่อความง่ายในการพัฒนาและความยืดหยุ่นในการพกพา แต่กลับนำมาซึ่งความซับซ้อนที่เพิ่มขึ้น ขนาดไฟล์ไบนารีที่ใหญ่ขึ้น และการใช้หน่วยความจำที่สูงขึ้น รันไทม์ที่หนักหน่วง เช่น CPython หรือ JavaScript ทำให้ประสิทธิภาพลดลง และบางครั้งฮาร์ดแวร์เองก็ต้องปรับตัวให้เข้ากับซอฟต์แวร์เหล่านั้น

อย่างไรก็ตาม ยังมีหนทางในการปรับปรุง Maya Posch ผู้เขียนบทความนี้ เสนอแนวทางที่เรียบง่ายแต่มีประสิทธิภาพ โดยการตั้งคำถามในทุกขั้นตอนของการพัฒนาว่ามีวิธีที่ตรงไปตรงมาและซับซ้อนน้อยกว่าหรือไม่ โดยยึดหลัก ‘KISS’ (Keep It Simple, Stupid) ซึ่งหมายถึงการเขียนโค้ดให้น้อยที่สุด หลีกเลี่ยงความซับซ้อนที่ไม่จำเป็น และเลือกใช้เครื่องมือที่เบาและมีประสิทธิภาพ

ตัวอย่างเช่น การใช้ภาษาที่ตรงไปตรงมา การหลีกเลี่ยงเฟรมเวิร์กที่ใหญ่เกินไป การใช้รูปแบบไฟล์ที่เรียบง่าย เช่น INI แทน XML และการออกแบบระบบที่คำนึงถึงประสิทธิภาพของ CPU และหน่วยความจำเป็นหลัก แนวทางนี้ไม่เพียงช่วยประหยัดทรัพยากร แต่ยังอาจทำให้การเขียนโปรแกรมสนุกและท้าทายยิ่งขึ้น ซึ่งเป็นการยืนยันว่าความต้องการ RAM และพื้นที่เก็บข้อมูลที่สูงขึ้นในปัจจุบันไม่ใช่ ‘ข้อผิดพลาด’ แต่เป็น ‘ฟีเจอร์’ ของแนวทางการพัฒนาสมัยใหม่ที่เราเลือกหรือถูกชี้นำให้เดินตาม


🏷️ หมวดหมู่: Current Events, Featured, Rants, Software Development

🔗 อ่านบทความฉบับเต็ม: hackaday