Deno รันไทม์ที่ปลอดภัยสำหรับ JavaScript และ TypeScript
(docs.google.com)-
Ryan Dahl นำเสนอสไลด์และวิดีโอ [12 หน้า, 27 นาที] เกี่ยวกับสถานะปัจจุบันของ Deno ในงาน OpenJS World 2020
-
แม้ว่า C++, Rust และ Go จะช่วยพัฒนาภาษาแบบคอมไพล์ แต่
งานซอฟต์แวร์จำนวนมากในช่วงหลังมานี้ยังคงขับเคลื่อนด้วยภาษาที่เป็นแบบไดนามิกอย่าง Python, Ruby และ JavaScript
- Node.js ทำให้ JavaScript สามารถทำงานบนเซิร์ฟเวอร์ได้
→ PHP แห่งยุค 2010s
→ ผู้ให้บริการคลาวด์หลายรายรองรับ
→ เฟรมเวิร์กฝั่งฟรอนต์เอนด์ทั้งหมด (React, Vue, Angular) ใช้ Node ในการ bundling
- การเปลี่ยนแปลงครั้งใหญ่ของระบบนิเวศ JS
→ ArrayBuffer, async / await, ES Modules, WASM, TypeScript
- Deno
→ เช่นเดียวกับ Node ทำให้ JavaScript สามารถรันนอกเบราว์เซอร์ได้
→ เช่นเดียวกับ Node ใช้ V8 JavaScript VM ของ Chrome
→ เช่นเดียวกับ Node เป็นโอเพนซอร์สและใช้สัญญาอนุญาต MIT
→ เขียนด้วย Rust แทน C++
→ มีเครื่องมือในตัวสำหรับ Testing, Linting, Formatting และการสร้างเอกสาร
→ สามารถฝังในซอฟต์แวร์อื่นได้: deno_core, rusty_v8
→ ออกแบบโดยมุ่งเป้าให้รองรับนักพัฒนาได้มากที่สุด ผ่านการใช้ Web Standard API
- Deno คือเบราว์เซอร์สำหรับสคริปต์บรรทัดคำสั่ง
→ ทำให้การเขียนโปรแกรมง่ายขึ้นด้วยการนำเข้าและรันโค้ดจากอินเทอร์เน็ตได้โดยตรง
import { serve } from "https://deno.land/std@0.56.0/http/server.ts";
→ Deno เป็น sandbox ที่ปลอดภัย ซึ่งเข้าถึง OS ได้ก็ต่อเมื่อผู้ใช้ยินยอมเท่านั้น
- การฝัง Deno: deno_core
→ แม้จะปล่อยเป็นไฟล์รันแบบสแตนด์อโลน แต่ก็สามารถฝังได้ในรูปแบบ Rust Crate
→ กรณีใช้งานที่เป็นไปได้
-
DB ใช้ JavaScript สำหรับฟังก์ชัน Map Reduce
-
กลุ่มผลิตภัณฑ์ serverless เช่น Lambda@Edge หรือ Cloudflare Workers
-
แอปพลิเคชัน GUI สไตล์ Electron เป็นต้น
-
Roadmap
→ แก้บั๊ก, แก้บั๊ก, แก้บั๊ก
→ ทำให้ Deno API เสถียร
→ งานในอนาคต
→ ทำให้ deno_core ใช้งานได้มีประโยชน์มากขึ้น
→ รองรับ GPU API เพื่อรองรับแมชชีนเลิร์นนิง
→ ทำให้ JS กลายเป็น binary executable ผ่าน deno compile
1 ความคิดเห็น
Deno 1.0 เปิดตัวแล้ว - https://th.news.hada.io/topic?id=2075
การทำภาพข้อมูลกระบวนการพัฒนาโอเพนซอร์สของ Deno - https://th.news.hada.io/topic?id=361
From Node to Deno - https://th.news.hada.io/topic?id=2103