- Nue คือเว็บเฟรมเวิร์กแบบ Standard-First
- ในรีลีสนี้ มีการใช้มาตรฐานเว็บสมัยใหม่อย่าง HTML, CSS, JS ให้มากที่สุด ทำให้ทั้งแอป (38kb) เบากว่าปุ่ม React/ShadCN (73kb)
- รองรับ Large-Scale ด้วย: โดยเพิ่มเอนจินคำนวณ Rust และ EventSourcing เข้าไปในแอปเดิม ทำให้ค้นหาแบบทันทีและทำงานอื่น ๆ กับเรกคอร์ดมากกว่า 150,000 รายการได้
- สามารถค้นหาและทำงานกับ 150,000 เรกคอร์ดได้อย่างรวดเร็วผ่าน Rust/WASM
- Nue ทำลายสถิติ HMR และความเร็วในการบิลด์ พร้อมมอบ feedback loop ระดับมิลลิวินาทีสำหรับการบันทึกไฟล์ใน VSCode/Sublime
- ให้ฟีดแบ็กทันทีต่อการอัปเดตดีไซน์และคอมโพเนนต์ พร้อมคงสถานะแอปไว้
การเปลี่ยนแปลงสำหรับวิศวกร Rust, Go, JS
- เน้นแนวทาง model-first ที่ไม่ยึดติดกับธรรมเนียมของ React และมอบการออกแบบแบบโมดูลาร์ ฟังก์ชันที่เรียบง่ายและทดสอบได้ static typing ที่แท้จริง และการพึ่งพา dependencies ให้น้อยที่สุด
- มอบประสบการณ์ที่เปิดกว้างให้ system developer ได้ใช้ทักษะของตนอย่างเต็มที่บน model layer ที่แยกออกจากกัน
การเปลี่ยนแปลงสำหรับวิศวกรด้านดีไซน์
- เป็นการเปลี่ยนแปลงสำคัญสำหรับวิศวกรด้านดีไซน์ที่ถูกผูกไว้กับแพตเทิร์นของ React และดีไซน์ซิสเต็มที่ยาวกว่า 40,000 บรรทัด
- สามารถสร้างระบบที่เรียบง่ายกว่า และควบคุม typography กับ spacing ได้ด้วย CSS สมัยใหม่ (@layers, ตัวแปร, calc())
การเปลี่ยนแปลงสำหรับวิศวกร UX
- เป็นสัญญาณเตือนสำหรับวิศวกร UX ที่ติดอยู่กับ React hooks และ utility classes พร้อมเปิดทางให้เป็นเจ้าของประสบการณ์ผู้ใช้ได้มากขึ้น
- สามารถสร้างแอปที่เบาเท่าปุ่ม React เพื่อยกระดับทั้งเว็บและทักษะของตนเอง
FAQ: Nue คืออะไร?
- Nue คือเว็บเฟรมเวิร์กที่มุ่งเน้นเว็บมาตรฐาน และขณะนี้กำลังพัฒนาอย่างต่อเนื่อง
- ในสถานการณ์ที่ปุ่มเพียงปุ่มเดียวหนักกว่าทั้งแอปพลิเคชัน Nue ต้องการเปิดเผยความซับซ้อนที่ซ่อนอยู่
- Nue ต้องการนำความสนุกของการพัฒนาเว็บกลับคืนมา ด้วยการสร้างเครื่องมือและเฟรมเวิร์กใหม่บนสถาปัตยกรรมที่สะอาดและแข็งแรงกว่าเดิม
ขั้นตอนถัดไป
- มีแผนจะปรับปรุงประสบการณ์นักพัฒนาออกเป็นสามช่วงที่ชัดเจน
- สามารถสมัคร mailing list เพื่อติดตามความคืบหน้าและดูว่าวิสัยทัศน์นี้จะค่อย ๆ เป็นรูปเป็นร่างอย่างไร
2 ความคิดเห็น
Nue - เว็บเฟรมเวิร์กแบบ Standard-First
ความคิดเห็นจาก Hacker News
เห็นหลายคนโกรธเกี่ยวกับ "Nue" แล้วคิดว่าคนที่พึ่งพา React มากเกินไปกำลังมองข้ามปัญหาใหญ่ไป เฟรมเวิร์กขนาดใหญ่เหล่านี้ทำให้เว็บช้าและซับซ้อนขึ้น ในฐานะ DevOps/SRE ต้องรับมือกับบริการแบบนี้ทุกวัน และแทบเป็นไปไม่ได้เลยที่จะเจอเว็บที่โหลดครั้งแรกได้ภายใน 10 วินาที เมื่อแดชบอร์ดหน้าโฮมง่าย ๆ หรือหน้าจดบันทึกใช้เวลามากกว่า 10 วินาทีบนการเชื่อมต่อ 10G นั่นหมายความว่าเว็บแอปปัจจุบันบวมโตอย่างหนักจนอยู่ได้เพียงเพราะ browser engine ที่เร็วขึ้นและเพราะผู้คนตั้งความคาดหวังต่ำลง
ไม่ได้คาดว่า Nue จะเข้ามาปฏิวัติเรื่องนี้ได้ แต่ก็อย่างน้อยสามารถเอาใจช่วยพวกเขาได้
การมาแทนที่ React คือ view layer แบบไม่ใช้ type คล้าย Angular 2.0 ยุคแรก ไฟล์ model เป็น JavaScript ล้วน ๆ ดูเหมือนจะเจาะกลุ่มผู้ใช้ Vue.js เพราะผู้ใช้ React ส่วนใหญ่ตอนนี้ใช้ TypeScript กันแล้ว
เลือกใช้ Svelte และลงทุนกับ SvelteKit เขียนแอปที่ค่อนข้างใหญ่ไปแล้ว และภายหลังก็กลับไปดู React อีกครั้ง React ไม่ได้ยากมากถ้าเข้าใจ hooks สำหรับ use case ของฉัน React ก็ยังเบา React ตอนนี้กลายเป็นเทคโนโลยีที่น่าเบื่อแล้ว แต่นั่นเป็นเรื่องดี ecosystem ใหญ่มาก และคุณก็จะได้ไลบรารีอย่าง React Query
React compiler ถูกใช้งานอยู่ใน Facebook และ Instagram และออกเป็น public beta แล้ว React Native ก็รองรับ React compiler ด้วย
รายละเอียดเชิงเทคนิคยังไม่พอ เช่น อยากรู้ว่าใช้วิธีติดตามการเปลี่ยนแปลงแบบไหน และไม่เข้าใจคำอธิบายที่ว่ามีอ็อบเจ็กต์ 150,000 ตัวแล้วทำให้ JS stack ล้น JS ไม่ได้ช้าขนาดนั้น
Nue เป็นเว็บเฟรมเวิร์กที่สร้างมาเพื่อแก้ปัญหาความบวมของการพัฒนาเว็บยุคใหม่ เมื่อปุ่มจาก Vite/ShadCN/Tailwind หนักกว่า SPA เต็มรูปแบบถึง 40% ก็ต้องเปลี่ยนวิธีคิดใหม่ ให้ความสำคัญกับเว็บมาตรฐานก่อน และไม่มีความบวมเกินจำเป็น
เฟรมเวิร์กใหม่ส่วนใหญ่เริ่มต้นมาในฐานะตัวเลือกแบบ "น้ำหนักเบา" เมื่อเทียบกับตัวเลือกที่โตเต็มที่กว่าในยุคนั้น ถ้าอีก 10 ปีข้างหน้ายังเบากว่าปุ่ม React อยู่ ก็คงมีคุณค่าพอจะเป็นข่าว
ดูจากโปรเจกต์แล้ว คิดว่าสามารถสร้างเว็บแอปที่ให้ประสิทธิภาพแบบเดียวกันด้วย React ได้ อยากเห็นว่า Nue ง่ายกว่า HTML+JS ไหม เข้าใจง่ายกว่าไหม ให้ประสบการณ์นักพัฒนาที่ดีกว่าไหม หรือเหนือกว่าในเชิงเทคนิคจริงไหม
ไม่ใช่เฟรมเวิร์กใหญ่ที่ทำให้เว็บช้า ปัญหาจริงคือ นักพัฒนาไม่สามารถ optimize ได้ และเขียนโปรแกรมโดยไม่มี React ไม่เป็น ถ้าขุดลึกไม่พอ ก็ optimize ไม่ได้เหมือนกัน
ข้ออ้างที่ว่าปุ่ม React จะทำงานไม่ได้หากไม่รวมไลบรารี React นั้นฟังไม่ค่อยขึ้น เพราะไลบรารี React น่าจะถูกนำกลับไปใช้ซ้ำในส่วนอื่นของ app bundle อยู่แล้ว
การถกเถียงเรื่อง "ความหนัก" ของเว็บเฟรมเวิร์กยอดนิยมมันง่ายเกินไป สิ่งที่ทำให้แอปรู้สึกเบาหรือหนักเกี่ยวข้องกับการที่นักพัฒนาแก้ปัญหาระบบกระจายได้ดีแค่ไหน มากกว่าขนาด initial bundle เว็บไซต์ที่เขียนด้วย React มักดูช้ากว่า ซึ่งเป็นเพราะ React ได้รับความนิยมมากจนมีนักพัฒนาจำนวนมากที่พลาดรายละเอียดสำคัญ ไม่ใช่เพราะ React เอง