- รันไทม์ JavaScript คล้ายกับ Node และ Deno
- พัฒนาโดยให้ความสำคัญกับความเร็วเป็นอันดับแรก
- เพียงเปลี่ยนจาก
npm runเป็นbun runก็ทำงานได้เร็วขึ้น 30 เท่า: https://twitter.com/jarredsumner/status/1454218996983623685
- เพียงเปลี่ยนจาก
- มาพร้อมตัวจัดการแพ็กเกจที่เข้ากันได้กับ npm
- เพียงเปลี่ยนจาก yarn เป็น
bun installก็สามารถติดตั้งแพ็กเกจได้เร็วขึ้น 20 เท่า:
- เพียงเปลี่ยนจาก yarn เป็น
- พัฒนาโดยต่อยอดจาก JavaScriptCore ที่ใช้ใน WebKit
- ความเร็วในการเริ่มต้นทำได้เหนือกว่าระบบเดิมอย่าง V8 อย่างชัดเจน: https://twitter.com/jarredsumner/status/1499225725492076544
- ออกแบบมาให้สามารถใช้งานแอป JavaScript/TypeScript เดิมได้ตามปกติ: มีการติดตั้งใช้งานแบบเนทีฟสำหรับ API ของ node.js หลายรายการ เช่น N-API, fs, path, Buffer รวมถึง Web API เช่น fetch, WebSocket, ReadableStream
- รองรับการใช้งาน
node_modulesด้วยการติดตั้งอัลกอริทึม module resolution ของ Node.js รองรับทั้ง ESM และ CommonJS และภายในใช้ ESM - รองรับทั้ง TypeScript และ JSX เนื่องจากทุกไฟล์จะถูกทรานสไพล์
- โหลดตัวแปรสภาพแวดล้อมจากไฟล์
.envให้อัตโนมัติ จึงไม่จำเป็นต้องใช้require('dotenv').load()อีกต่อไป
8 ความคิดเห็น
ขอเสริมว่า ฟอร์แมตไฟล์เก็บถาวรชื่อ hop ที่บอกว่าสร้างขึ้นมาเพื่อใช้กับผลิตภัณฑ์นี้ ก็เคยมีการแนะนำไปครั้งหนึ่งก่อนหน้านี้เช่นกัน เห็นว่าตัวนี้ก็สร้างด้วยภาษา Zig เหมือนกันครับ
hop - ฟอร์แมตไฟล์เก็บถาวรที่เร็วกว่า tar 10 เท่า
อ๊ะ สร้างด้วยภาษาที่ไม่เคยได้ยินมาก่อนเลยนะครับ!
ดูเหมือนว่าจะเป็นภาษาที่กำลังค่อย ๆ ได้รับความนิยมอยู่เหมือนกันนะครับ.. ถึงจะไม่ได้ใช้ตัวภาษาเอง ก็ยังมีหลายกรณีที่นำมาใช้แค่ในฐานะคอมไพเลอร์ C/C++ อย่างเดียวเหมือนกัน
หมายเหตุ: วิธีที่ Uber ใช้ Zig
ดูเป็นแนวทางที่คล้ายกับ deno อยู่เล็กน้อยนะครับ
ทั้งที่เป็นภาษาสคริปต์ แต่กลับอยู่ในสถานการณ์ที่มี build tool ผุดขึ้นมามากมายก็น่าแปลกดี แล้วการที่มีการ transpile เป็นค่าเริ่มต้นโดยพื้นฐานก็เป็นสถานการณ์ที่น่าสนใจเหมือนกันครับ 555
สามารถใช้ typescript ได้เลย แถมบอกว่าเข้ากันได้กับ nodejs api 90% ก็ดูมีเสน่ห์น่าสนใจไม่น้อยเลยครับ
(แต่ที่ยังเป็น 0.1 อยู่นี่ก็เป็นจุดหักมุม)
อ้อ โค้ดก็ถูกเปิดเผยออกมาแล้วสินะ?
ไอคอนของโปรเจกต์ทำให้นึกถึงเว็บดังในประเทศเว็บหนึ่งเลยนะ
555