ความสำเร็จของนักพัฒนาที่สร้างเว็บไซต์ที่ใช้งานได้เต็มรูปแบบในขนาดเพียง 128 กิโลไบต์ได้จุดประกายการอุตสาหกรรมเว็บพัฒนาสมัยใหม่และความเป็นไปได้ที่อุตสาหกรรมนี้อาจสูญเสียทิศทางในเรื่องประสิทธิภาพการใช้ทรัพยากร
โครงการนี้เกิดขึ้นจากความท้าทายเมื่อนักออกแบบอ้างว่าเป็นไปไม่ได้ที่จะลดขนาดไฟล์ให้เล็กลงไปกว่านี้ แทนที่จะยอมรับข้อจำกัดนี้ นักพัฒนาจึงตั้งใจพิสูจน์ให้เห็นเป็นอย่างอื่น โดยสร้างเว็บไซต์ที่สมบูรณ์ซึ่งมีขนาดเท่ากับพื้นที่เก็บข้อมูลที่เว็บไซต์สมัยใหม่หลายแห่งใช้สำหรับรูปภาพเพียงภาพเดียว
ข้อจำกัดทางเทคนิคที่ใช้
- กฎของ CDN: แอปพลิเคชันทั้งหมดต้องอยู่บนเว็บเพจของบุคคลที่สามภายนอก
- ข้อกำหนดไฟล์เดียว: ไม่มีการเปลี่ยนแปลงฝั่งเซิร์ฟเวอร์ ทุกอย่างอยู่ในไฟล์เดียว
- ความเข้ากันได้ข้ามเบราว์เซอร์: ต้องทำงานได้อย่างราบรื่นใน Chrome , Firefox , Safari , Edge
- แบบคงที่เท่านั้น: ไม่มีฐานข้อมูล ไม่มีการประมวลผลฝั่งแบ็กเอนด์
การตรวจสอบความเป็นจริงของความบวมพองของเว็บ
การตอบสนองจากชุมชนเผยให้เห็นการเปรียบเทียบที่น่าตกใจซึ่งเน้นย้ำว่าการพัฒนาเว็บได้หลงทางไปจากประสิทธิภาพมากเพียงใด ผู้ใช้ชี้ให้เห็นว่าเกม Freecell ธรรมดาตอนนี้ใช้หน่วยความจำ 164MB ซึ่งเป็นเกมที่ทำงานได้อย่างสมบูรณ์แบบบน Windows 95 ด้วยหน่วยความจำระบบเพียง 8MB ที่น่าตกใจยิ่งกว่านั้นคือหน้า 404 error ของ Slack มีขนาดถึง 50MB ซึ่งใหญ่กว่าเว็บไซต์ที่ใช้งานได้เต็มรูปแบบนี้ถึง 400 เท่า
สมาชิกชุมชนคนหนึ่งแบ่งปันข้อสังเกตที่น่าสนใจเกี่ยวกับ DOOM เวอร์ชันต้นฉบับปี 1993 ซึ่งมีขนาดต่ำกว่า 3MB ในขณะที่เว็บไซต์สมัยใหม่มักส่ง JavaScript หลายสิบเมกะไบต์เพียงเพื่อแสดงฟอร์มเข้าสู่ระบบ การเปรียบเทียบนี้เน้นย้ำว่าลำดับความสำคัญในการพัฒนาเว็บได้เปลี่ยนแปลงไปอย่างมากจากประสิทธิภาพสู่ความสะดวกสบาย
การเปรียบเทียบการใช้หน่วยความจำ (แอปพลิเคชันสมัยใหม่)
- Emacs : 115MB
- Thunderbird : 900MB
- Chrome : ~2GB (หลายโปรเซส)
- เกม Freecell : 164MB
- หน้า 404 ของ Slack : 50MB
- เว็บไซต์ขนาด 128KB ที่แนะนำ: 0.128MB
ศิลปะที่สูญหายไปของการพัฒนาภายใต้ข้อจำกัด
การอภิปรายเผยให้เห็นความแตกแยกระหว่างรุ่นในแนวทางการเขียนโปรแกรม นักพัฒนาที่เรียนรู้งานฝีมือของตนเมื่อทรัพยากรมีน้อยแสดงความผิดหวังที่เห็นทักษะการปรับปรุงประสิทธิภาพที่พวกเขาได้มาอย่างยากลำบากกลายเป็นสิ่งที่ดูเหมือนไร้ค่าและไม่ได้รับการชื่นชมในสภาพแวดล้อมปัจจุบัน การสนทนาสัมผัสถึงว่าข้อจำกัดในอดีตเป็นแรงผลักดันนวัตกรรมอย่างไร โดยผู้เข้าร่วมคนหนึ่งสังเกตว่าการแก้ปัญหาที่สร้างสรรค์ที่สุดบางอย่างเกิดขึ้นเมื่อทำงานภายใต้ข้อจำกัดที่เข้มงวด
ผมเติบโตในโลกที่สามที่ทรัพยากรมีราคาแพงมาก ดังนั้นช่วงต้นอาชีพของผมจึงเป็นเรื่องของการทำให้มากที่สุดด้วยทรัพยากรที่ผมมี มันเป็นทักษะที่ผมฝึกฝนจนเก่งมากและตอนนี้มันรู้สึกไร้ประโยชน์และไม่ได้รับการชื่นชม
ชุมชนเทคนิคถกเถียงกันว่าการเปลี่ยนแปลงนี้แสดงถึงความก้าวหน้าหรือความถดถอย แม้ว่าเว็บไซต์สมัยใหม่จะสามารถแสดงวิดีโอหลายรายการพร้อมกันและจัดการกับชุดอักขระนานาชาติที่ซับซ้อนซึ่งระบบเก่าไม่สามารถจัดการได้ แต่หลายคนตั้งคำถามว่าความสามารถเหล่านี้สมควรกับการใช้ทรัพยากรจำนวนมหาศาลหรือไม่
การแข่งขันขนาดเว็บไซต์ในอดีต
- การแข่งขันเว็บเพจขนาด 5KB เดิม (สิ้นสุดในปี 2002)
- ถูกแทนที่ด้วยการแข่งขันขนาด 10KB
- คำแนะนำของ Jakob Nielsen ในปี 1999: ขนาดหน้าเว็บรวม 50KB
- การเปรียบเทียบในปัจจุบัน: 128KB = มากกว่าคำแนะนำของ Nielsen เมื่อ 25 ปีก่อน 2.5 เท่า
ผลกระทบในโลกแห่งความจริงต่อประสบการณ์ผู้ใช้
นักพัฒนาหลายคนแบ่งปันตัวอย่างจริงของการที่ความบวมพองของเว็บส่งผลต่องานประจำวัน คนหนึ่งกล่าวถึงความจำเป็นที่ต้องซื้อแล็ปท็อปใหม่เพราะกระบวนการ build ของ frontend ต้องใช้ RAM 5GB และใช้เวลาสี่นาทีในการทำงานให้เสร็จ คนอื่นๆ บรรยายถึงความผิดหวังของเว็บไซต์ที่โหลดช้าแม้จะมีการเชื่อมต่ออินเทอร์เน็ตความเร็วสูง โดยคอขวดคือโค้ดที่ไม่มีประสิทธิภาพมากกว่าความเร็วเครือข่าย
การอภิปรายยังเน้นย้ำว่าสิ่งนี้ส่งผลต่อผู้ใช้ในส่วนต่างๆ ของโลกอย่างไร ในขณะที่นักพัฒนาในประเทศที่ร่ำรวยอาจไม่สังเกตผลกระทบของเว็บไซต์ 50MB บนการเชื่อมต่อไฟเบอร์ ผู้ใช้บนเครือข่ายที่ช้ากว่าหรือมีข้อจำกัดด้านข้อมูลต้องเผชิญกับอุปสรรคจริงในการเข้าถึงเนื้อหา
เส้นทางข้างหน้า
ชุมชนยอมรับว่าการประหยัดอย่างสุดขั้วไม่เสมอไปที่จะเป็นประโยชน์หรือเป็นไปได้ แอปพลิเคชันเว็บสมัยใหม่จำเป็นต้องจัดการกับการโต้ตอบที่ซับซ้อน สื่อที่หลากหลาย และข้อกำหนดด้านการเข้าถึงที่ไม่ใช่ข้อพิจารณาในยุคก่อนหน้า อย่างไรก็ตาม หลายคนโต้แย้งเพื่อหาจุดสมดุลระหว่างข้อจำกัดของอดีตและความเกินเลยของปัจจุบัน
โครงการเว็บไซต์ 128KB ทำหน้าที่เป็นการพิสูจน์แนวคิดว่าการปรับปรุงประสิทธิภาพอย่างมีนัยสำคัญเป็นไปได้โดยไม่ต้องเสียสละการทำงาน มันแสดงให้เห็นว่าด้วยการวางแผนอย่างรอบคอบและการดำเนินการที่มีทักษะ นักพัฒนาสามารถสร้างประสบการณ์ที่รวดเร็วและตอบสนองได้ดีซึ่งทำงานได้ดีในอุปกรณ์และสภาพเครือข่ายที่แตกต่างกัน
บทเรียนที่กว้างขึ้นขยายไปเกินการพัฒนาเว็บสู่วิศวกรรมซอฟต์แวร์โดยทั่วไป เมื่อความสามารถของฮาร์ดแวร์ยังคงขยายตัว ความท้าทายกลายเป็นการรักษาวินัยเกี่ยวกับการใช้ทรัพยากรในขณะที่ยังคงส่งมอบประสบการณ์ที่หลากหลายตามที่ผู้ใช้คาดหวัง โครงการที่ประสบความสำเร็จมากที่สุดอาจเป็นโครงการที่ยอมรับข้อจำกัดไม่ใช่เพราะพวกเขาต้องทำ แต่เพราะผลลัพธ์ที่ได้ดีกว่าอย่างเห็นได้ชัดเมื่อพวกเขาทำ
อ้างอิง: I'm more proud of these 128 kilobytes than anything I've built since