เฟรมเวิร์ก UI ใหม่สำหรับ TypeScript ที่ชื่อ Ripple ได้เกิดขึ้นจาก Dominic Gannaway นักพัฒนาที่มีประวัติน่าประทับใจ รวมถึงการทำงานกับ React , Svelte 5 และเฟรมเวิร์ก Inferno ต้นฉบับ สร้างขึ้นในเวลาไม่ถึงหนึ่งสัปดาห์ในฐานะโปรเจกต์ทดลอง Ripple พยายามผสมผสานแนวคิดจาก React และ Svelte พร้อมกับนำเสนอไวยากรณ์และโมเดลการเขียนโปรแกรมแบบ reactive ที่เป็นเอกลักษณ์
ประวัติของนักพัฒนา:
- Dominic Gannaway : ผู้เขียน Inferno คนแรก
- อ전 React ทีมเมมเบอร์
- ผู้มีส่วนร่วมหลักใน Svelte 5 (ระบบ runes)
- สร้าง Ripple ในเวลาน้อยกว่าหนึ่งสัปดาห์เป็นโปรเจกต์ทดลอง
![]() |
---|
ภาพหน้าจอของหน้า repository GitHub สำหรับ framework Ripple แสดงให้เห็น commit ล่าสุดและกิจกรรมของโปรเจกต์ |
ชุมชนตั้งคำถามเกี่ยวกับการเลือกออกแบบหลักของเฟรมเวิร์ก
ชุมชนนักพัฒนาได้แสดงความกังวลอย่างมากเกี่ยวกับการตัดสินใจออกแบบพื้นฐานของ Ripple นักวิจารณ์โต้แย้งว่าเฟรมเวิร์กนี้ทำลายรูปแบบการเขียนโปรแกรมที่คาดหวังโดยไม่มีประโยชน์ที่ชัดเจน ประเด็นที่ถกเถียงกันมากที่สุดคือโครงสร้างคอมโพเนนต์ของ Ripple ที่แสดงผล JSX ภายในวงเล็บโดยอัตโนมัติ แทนที่จะทำงานเป็นฟังก์ชันแบบดั้งเดิมที่ส่งคืนมุมมอง การออกจากรูปแบบมาตรฐานของฟังก์ชันสู่ UI นี้ทำให้นักพัฒนาหลายคนตั้งคำถามเกี่ยวกับข้อได้เปรียบในทางปฏิบัติ
ตัวเลือกไวยากรณ์ของเฟรมเวิร์กยังจุดประกายการถกเถียงอย่างรุนแรง ในขณะที่นักพัฒนาบางคนชื่นชม JSX เพราะความสามารถในการใช้ซ้ำ JavaScript control flow primitives เช่น map, filter และ conditional statements นักพัฒนาคนอื่นๆ กลับชอบไวยากรณ์เทมเพลตแบบ HTML ที่พบในเฟรมเวิร์กอย่าง Vue และ Svelte การถกเถียงนี้สะท้อนความแตกแยกทางปรัชญาที่ลึกซึ้งในชุมชนนักพัฒนาเว็บเกี่ยวกับแนวทางที่ดีที่สุดสำหรับการทำเทมเพลตคอมโพเนนต์
การใช้งานการเขียนโปรแกรมแบบ Reactive ได้รับปฏิกิริยาที่หลากหลาย
โมเดลการเขียนโปรแกรมแบบ reactive ของ Ripple ใช้ตัวแปรที่มีเครื่องหมายดอลลาร์นำหน้า ($variable) เพื่อทริกเกอร์การ re-render โดยอัตโนมัติเมื่อสถานะเปลี่ยนแปลง อย่างไรก็ตาม แนวทางนี้ต้องการให้นักพัฒนาอิมพอร์ต array primitives พิเศษจากแพ็กเกจเฟรมเวิร์ก ซึ่งหลายคนพบว่าซับซ้อนเกินความจำเป็น ชุมชนได้ชี้ให้เห็นว่า JavaScript proxies สมัยใหม่สามารถทำให้เกิด reactivity ที่คล้ายกันได้โดยไม่ต้องใช้ไวยากรณ์หรือการอิมพอร์ตพิเศษ
Array primitive ดูเหมือนจะเป็น reactive version ของ array ซึ่งดูแปลกเพราะ primitive พื้นฐานอย่าง array ควรจะสามารถทำให้เป็น reactive ได้โดยค่าเริ่มต้น
นักพัฒนาหลายคนได้สังเกตว่าเฟรมเวิร์กที่มีอยู่แล้วอย่าง Solid และ Svelte ให้โซลูชันที่ครบครันสำหรับการเขียนโปรแกรมแบบ reactive พร้อมประสบการณ์นักพัฒนาที่ดีกว่าและไวยากรณ์ที่สะอาดกว่า
คุณสมบัติหลัก:
- การจัดการสถานะแบบ Reactive ด้วยตัวแปรที่มีเครื่องหมาย $ นำหน้า
- สถาปัตยกรรมแบบ Component-Based ที่มี props และ children
- ไวยากรณ์คล้าย JSX พร้อมการปรับปรุงเฉพาะของ Ripple
- การรวม TypeScript แบบเต็มรูปแบบ
- การรวม Fibers ในตัว
ความกังวลเรื่องความเหนื่อยล้าจากเฟรมเวิร์กและการวางตำแหน่งในตลาด
การประกาศนี้ได้เน้นย้ำถึงความเหนื่อยล้าจากเฟรมเวิร์กที่เพิ่มขึ้นในชุมชน JavaScript นักพัฒนาหลายคนตั้งคำถามว่าระบบนิเวศต้องการเฟรมเวิร์กอีกตัวหรือไม่ เมื่อโซลูชันที่มีอยู่แล้วอย่าง Svelte , Solid และ React ได้แก้ไขกรณีการใช้งานส่วนใหญ่อย่างมีประสิทธิภาพแล้ว จังหวะเวลาดูเหมือนจะท้าทายเป็นพิเศษ เนื่องจากชุมชนให้ความสำคัญกับความเสถียรและแนวทางที่เป็นแพลตฟอร์มดั้งเดิมมากกว่าการแยกแยะใหม่ๆ
นักพัฒนาบางคนได้แสดงความสนใจในการลดการผูกมัดกับเฟรมเวิร์กและใช้ฟีเจอร์ของแพลตฟอร์มเว็บโดยตรงมากกว่า แทนที่จะนำโซลูชันที่เป็นกรรมสิทธิ์ใหม่ๆ มาใช้ ความรู้สึกนี้สะท้อนแนวโน้มในอุตสาหกรรมที่กว้างขึ้นไปสู่การทำให้ง่ายขึ้นและการมาตรฐาน
คุณสมบัติที่ยังขาดหายไป:
- Server-Side Rendering (SSR) - ปัจจุบันรองรับเฉพาะ SPA เท่านั้น
- เฟรมเวิร์กการทดสอบที่ครอบคลุม
- คำจำกัดความประเภทข้อมูลที่เสถียร
- เอกสารประกอบที่พร้อมใช้งานจริง
ความครบครันทางเทคนิคและความพร้อมสำหรับการใช้งานจริง
ปัจจุบัน Ripple อยู่ในระยะ alpha ตอนต้น ยอมรับข้อจำกัดที่สำคัญรวมถึงการขาด server-side rendering การทดสอบที่น้อยมาก และบั๊กมากมาย เฟรมเวิร์กนี้ถูกระบุอย่างชัดเจนว่าไม่เหมาะสำหรับการใช้งานจริง ในขณะที่ลักษณะการทดลองอนุญาตให้มีตัวเลือกการออกแบบที่กล้าหาญ แต่ก็ทำให้เกิดคำถามเกี่ยวกับความสามารถในการอยู่รอดระยะยาวและการยอมรับของชุมชน
นักพัฒนาได้สร้างเครื่องมือสนับสนุนรวมถึง VSCode extension และมีแผนสำหรับ online playground ซึ่งแสดงความมุ่งมั่นต่อระบบนิเวศ อย่างไรก็ตาม ไทม์ไลน์การพัฒนาที่รวดเร็วและระยะเริ่มต้นหมายความว่าฟีเจอร์หลักมากมายยังคงไม่สมบูรณ์หรือไม่เสถียร
แม้จะมีการวิจารณ์ สมาชิกชุมชนบางคนก็ชื่นชมแนวทางการทดลองและตระหนักถึงคุณค่าของการสำรวจไอเดียใหม่ๆ ในการออกแบบเฟรมเวิร์ก โปรเจกต์นี้ทำหน้าที่เป็นกรณีศึกษาที่น่าสนใจในการรวมแนวคิดจากเฟรมเวิร์กที่มีชื่อเสียงพร้อมกับพยายามแก้ไขข้อจำกัดที่รับรู้ของพวกเขา
อ้างอิง: Ripple