Ryan Dahl ผู้เริ่มโครงการ Nodejs เมื่อปี 2009 และออกจากโครงการไปเมื่อปี 2012 กลับมาพัฒนาโครงการ Deno ที่เป็นรันไทม์สำหรับรันจาวาสคริปต์นอกเบราว์เซอร์เหมือนกัน แต่พัฒนาขึ้นด้วยแนวคิดที่ต่างออกไป โดยเลือกใช้ภาษา Rust ในการพัฒนา และสร้างโครงการ rust_v8 สำหรับนำเอาเอนจิน V8 มาใช้งาน และตอนนี้ Deno ก็ออกเวอร์ชั่น 1.0 พร้อมสำหรับการใช้งานจริงแล้ว
ฟีเจอร์สำคัญของ Deno ได้แก่
--allow-net
Ryan Dahl, Bert Belder, และ Bartek Iwańczuk ผู้ประกาศเวอร์ชั่น 1.0 นี้เตือนว่าแม้ Deno จะคล้าย Nodejs แต่มันเป็นคนละโครงการกันเด็ดขาด บางโครงการอาจจะไม่พร้อมที่จะมาใช้ Deno ทดแทน โดยเฉพาะระบบโมดูลที่ไม่สามารถใช้ npm ได้
ที่มา - Deno
Comments
ฟีเจอร์สำคัญของ...
เพิ่ง install ไปเมื่อวาน กะจะลองเล่นดู
เห็นว่าช่วงนี้เขามาแรง
อยากใช้อยู่เหมือนกัน แต่ขอรอดู ecosystem อีกนิด
โห Rust version 8 แล้ว #ผิด
ยังเป็นเบบี๋ด้าน Node.js แต่ก็แอบสนใจครับผม
..: เรื่อยไป
ค่อนข้างโหยหาเครื่องมือ JS/TS ที่ดีกว่า nodejs อยู่เหมือนกันครับ ผมว่ามันช้าไม่ทันใจและกินเครื่องมากไม่รู้ว่า Deno จะช่วยผมได้หรือเปล่า
แต่จากการที่ nodejs เคยมีแค่ package.json แล้วขยับมาเพิ่ม lock file อีกเนี่ยผมเลยหวังว่า Deno จะไม่เจอปัญหาแบบนั้น (ซึ่งโปรเจคที่ผมเคยทำก่อนจะมี lock file ก็พังไปหลายทีเพราะไม่มี lock file นี่แหละครับ ก็ถือว่าเป็นการแก้ปัญหาที่ตรงจุดอยู่)
ผมไม่ได้เขียน node (จริงๆ ก็แทบไม่เขียน js เลยยกเว้นแก้นิดๆ หน่อยๆ) แต่คิดว่าแนวทาง std lib นี่สำคัญมาก ข่าว package ประหลาดๆ ใน npm มีปัญหานี่หลายรอบแล้ว ผมเลยมองว่า node นี่พลาดร้ายแรงที่ไม่ทำ stdlib พวกโครงการที่นิ่งๆ อย่าาง python หรือ go ก็มี stdlib ให้ค่อนข้างกว้างขวางจนโครงการจำนวนมากไม่ต้องติดตั้งอะไรเพิ่มเลย
lewcpe.com, @wasonliw
นึกว่าผมรู้สึกอยู่คนเดียวเสียอีก node มันควรมี lib ตั้งต้นให้มากกว่านี้ ตอนผมเข้ามา node แรก ๆ ผมยังงงเลยว่าจะให้ติดตั้ง express ทำไม ทั้งที่แค่จะทำเว็บเซิร์ฟเวอร์พื้น ๆ แท้ ๆ ขนาด python แค่ตัวรันไทม์ยังแถม SimpleHTTPServer มาให้ ตอนนี้เลยตั้งใจจะใช้ node เป็นหลังบ้านแล้วหาตัว web server เป็นตัวอื่น ๆ แทน
น่าจะเข้าใจผิดครับ node ให้ http.createServer มาครับอันนี้คือ basic http server แล้ว
ส่วน express = framework ครับ
ยังต้องเขียนส่วนที่เหลืออีกเพียบครับ ถ้าให้ถูกคือ ต้องติดตั้ง http-server แล้วเรียกใช้ครับ (แน่นอนว่าจะเขียนด้วย http,fs,path แบบไม่โหลดก็ได้ แต่มันมือตอนเขียนแน่นอน)
ที่ผมยก express มาเพราะคนสอนส่วนใหญ่ที่ผมไปอ่าน สอนแต่ตัวนี้กัน ทั้ง ๆ ที่ผมจะหาทาง serve static page เฉย ๆ (ตอนนั้นผมหาวิธีเปิด web server ด้วย node เฉย ๆ นะ)
เห็นด้วยสำหรับ stdlib ครับ แต่ผมไม่แน่ใจว่าพวกที่เป็น 3rd party lib นี่จะยังไงกันบ้าง ยังไงก็คงพ่วงกันเป็นทอดๆ อยู่ดี?
ครับ ก็ดูได้จาก Python ที่มีแนวทางการวม stdlib ค่อนข้างกว้าง (มี database ด้วยซ้ำ แค่ไม่ใช่ SQL) ก็มีโครงการดึงกันเป็นทอดๆ ตามปกติ แต่จะไม่ค่อยมี lib แปลกๆ ทำฟังก์ชั่นแค่ 3-5 บรรทัดแต่ทุกคนใช้กันหมด ลาก dependency จนกระทบทั้ง ecosystem
พอถัดจาก stdlib ขึ้นไป ส่วนที่ใช้งานกันก็จะค่อนข้างเฉพาะทางแต่ละงานไปแล้ว
lewcpe.com, @wasonliw
จริงด้วยนะครับ ขอบคุณครับ