Tags:
Node Thumbnail

Cloudflare ร่วมกับ Vercel ประกาศสนับสนุน Socket API มาตรฐานของ Web-interoperable Runtimes Community Group (wintercg) เพื่อเปิดทางให้แอปพลิเคชั่นนอกเบราว์เซอร์ที่ต้องการเชื่อมต่อบริการภายนอก

ตอนนี้รันไทม์ต่างๆ มักมี API แตกต่างกันไป เช่น net และ tls ของ NodeJS ขณะที่ Deno ก็มี API ของตัวเองต่างไปทำให้แอปพลิเคชั่นต้องแก้โค้ดไปมา

Cloudflare นำมาตรฐาน Socket API นี้มาใช้งานใน Cloudflare Workers ของตัวเอง โดยชูประเด็นว่าสามารถเลือกใช้งาน TLS ได้โดยง่าย และแนวทางใช้งานสำคัญของไลบรารีนี้คือการเชื่อมต่อฐานข้อมูล เช่น MySQL หรือ PostgreSQL จากในรันไทม์

Tags:
Topics: 
Node Thumbnail

NodeJS ออกเวอร์ชั่น 20.6 ความเปลี่ยนแปลงสำคัญคือออปชั่น --env-file ที่รองรับการโหลดค่าตัวแปร environment จาก NodeJS ได้โดยตรง ไม่จำเป็นต้องลงโมดูลใดเพิ่มอีก

ปกติแล้ว ตัวแปรภายใต้ process.env นั้นจะรับจาก environment variable ที่ตั้งค่าไว้ล่วงหน้าใน shell ที่รัน node อยู่ หากต้องการอ่านค่าจากไฟล์แทนต้องใช้โมดูลเพิ่มเติม และนอกเหนือจากการตั้งค่าสำหรับแอปพลิเคชั่น เช่น รหัสผ่านฐานข้อมูล หรือ URL ของบริการภายนอกต่างๆ ผู้ใช้ยังสามารถใช้คอนฟิกตัว NodeJS เองผ่านตัวแปร NODE_OPTIONS ได้ด้วย

Tags:
Node Thumbnail

Bun รันไทม์จาวาสคริปต์ ออกเวอร์ชัน 1.0 ตามที่ประกาศไว้ ของใหม่ที่เพิ่มเข้ามาจากเวอร์ชัน 0.8 คือรองรับการรันเฟรมเวิร์คยอดนิยม Next.js, Astro, Nest.js แล้ว

Bun เป็นรันไทม์ที่ออกแบบมาให้ใช้แทน Node.js ได้ทันที (drop-in replacement) สามารถนำแอพที่เขียนบน Node.js และแพ็กเกจ npm มาใช้ทำงานได้เลย จุดเด่นของมันคือความเร็วที่เหนือกว่า 4 เท่า ยิ่งถ้าเขียนโค้ดมาเป็น TypeScript ที่ต้องแปลง (transpile) มาเป็น JavaScript ก่อนรัน ยิ่งเห็นความแตกต่างมากขึ้นอีก เพราะ Bun มีตัว transpiler ฝังมาในรันไทม์เลย สามารถรัน TypeScript ได้ในตัวเช่นเดียวกับ JavaScript

Tags:
Node Thumbnail

Bun รันไทม์จาวาสคริปต์ออกเวอร์ชั่น 0.7 โดยตัว Bun นั้นมีทั้ง runtime, bundler, transpiler, และ package manager โดยชูจุดแข็งที่ประสิทธิภาพดีกว่า NodeJS มาก ในเวอร์ชั่นล่าสุดก็หันมาปรับปรุงการทำงานร่วมกับโค้ด NodeJS เดิมพร้อมกับเพิ่มโหมดประหยัดแรม

เนื่องจาก API ของ Bun ยังไม่เท่ากับ NodeJS ทำให้ไม่สามารถรันเฟรมเวิร์คยอดนิยมหลายตัวบน Bun ในเวอร์ชั่นนี้ก็รองรับ Vite เพิ่มเข้ามาในระดับทดลอง สำหรับ API ที่เพิ่มเข้ามา เช่น Worker สำหรับการรันโค้ดแยกออกจาก main thread เพื่อเตรียมรองรับ API worker_threads ของ NodeJS, หรือ AsyncLocalStorage ที่เป็น API จำเป็นสำหรับ NextJS

Tags:
Topics: 
Node Thumbnail

Node.js ออกเวอร์ชัน 20 ตามแนวทางการออกรุ่นใหม่ทุก 6 เดือน (ทุกเดือนเมษายน-ตุลาคม)

ของใหม่เวอร์ชันนี้คือ Permission Model เป็นฟีเจอร์การจำกัดสิทธิตอนรัน Node.js เพื่อไม่ให้เข้าถึงสิทธิบางอย่างของเครื่อง เช่น ระบบไฟล์ เธร็ด โพรเซส เพื่อความปลอดภัยที่ดีขึ้น แล้วอนุญาตการเข้าถึงสิทธิบางอย่างทีละตัวแทน

  • --allow-fs-read / --allow-fs-write
  • --allow-child-process
  • --allow-worker

ฟีเจอร์นี้ยังอยู่ในสถานะทดลอง (experimental) โดยต้องรันแบบ --experimental-permission ก่อนถึงเริ่มจำกัดสิทธิ

Tags:
Node Thumbnail

โครงการ Deno รันไทม์จาวาสคริปต์ ออกเวอร์ชัน 1.28 มีของใหม่ที่สำคัญคือรองรับโมดูล npm ของโครงการ Node.js ตามที่ประกาศไว้ ทำให้เราสามารถอิมพอร์ตโมดูล npm ที่มีมหาศาล 1.3 ล้านโมดูลมาใช้กับ Deno ได้

การใช้งาน npm ของ Deno ไม่จำเป็นต้องสั่ง npm install เพราะโมดูลจะถูกติดตั้งตอนรันโปรแกรมครั้งแรก, ไม่ต้องมีไฟล์ package.json และไม่ต้องมีโฟลเดอร์ node_modules เพราะโมดูลจะถูกแคชในไดเรคทอรี global แทน

Tags:
Node Thumbnail

ไลบรารี Axios สำหรับการเชื่อมต่อ HTTP ไปยังเซิร์ฟเวอร์อื่นๆ ที่นิยมในหมู่นักพัฒนาที่ใช้ Node.JS ออกเวอร์ชั่น 1.0 ซึ่งเป็นเวอร์ชั่นเสถียรตัวแรก ใช้เวลากว่า 6 ปีหลังจากออกเวอร์ชั่นแรกเมื่อปี 2016

โครงการไลบรารีโอเพนซอร์สจำนวนมากมักออกเวอร์ชั่นก่อนหน้าเวอร์ชั่นเสถียรมาเรื่อยๆ และประกาศเวอร์ชั่นเสถียรโดยปรับจากเวอร์ชั่นล่าสุดไม่มากนัก แต่ Axios ออกเวอร์ชั่นก่อนหน้านี้คือ 0.27.2 มาตั้งแต่เดือนเมษายน และออกเวอร์ชั่น 1.0 alpha1 มาเมื่อเดือนมิถุนายนก่อนจะออกเวอร์ชั่นจริงในสัปดาห์นี้ โดยมีความเปลี่ยนแปลงค่อนข้างมาก

Tags:
Node Thumbnail

โครงการ Node.js ประกาศเลื่อนวันหมดอายุของ Node.js 16 LTS รุ่นปัจจุบัน ให้เร็วกว่าเดิม 7 เดือน จากเดิมหมดระยะซัพพอร์ตเดือนเมษายน 2024 มาเป็น 11 กันยายน 2023

เหตุผลเป็นเพราะ Node.js 16 ใช้ไลบรารีเข้ารหัส OpenSSL เวอร์ชัน 1.1.1 ที่จะหมดระยะซัพพอร์ต 11 กันยายน 2023 ดังนั้นหากปล่อยให้ OpenSSL 1.1.1 หมดระยะซัพพอร์ตไปก่อน Node.js 16 ช่วงเวลาที่เหลื่อมกันอาจมีความเสี่ยงเรื่องความปลอดภัยได้ เพราะ OpenSSL 1.1.1 จะไม่มีแพตช์ใหม่อีกแล้ว ทีมงานจึงตัดสินใจให้ Node.js 16 หมดอายุพร้อมกันไปเลย

Tags:
Node Thumbnail

Ruby on Rails ออกเวอร์ชันใหญ่ 7.0 ซึ่งมีการเปลี่ยนแปลงสำคัญ 2 เรื่องคือ ไม่ต้องผูกกับโลกของ Node.js อีกแล้ว และเปลี่ยนระบบ front-end มาเป็นตัวใหม่คือ Hotwire

David Heinemeier Hansson หรือ DHH ผู้สร้าง Rails อธิบายว่าโครงสร้างของภาษา JavaScript ในอดีตเป็นปัญหาของโปรแกรมเมอร์มาก ทางออกจึงเป็นการเขียนภาษาอื่นแล้วแปลงเป็น JavaScript (เรียกว่า transpiling เช่น CoffeeScript หรือ Babel) ที่ช่วยให้เขียนโค้ดง่ายขึ้น แต่ก็ต้องแลกมาด้วยความซับซ้อนที่เพิ่มขึ้น

Tags:
Node Thumbnail

Node.js ออกเวอร์ชันเลขคู่ประจำปี 2021 คือ Node.js 16.0.0 โค้ดเนม Gallium ที่จะกลายเป็นเวอร์ชันซัพพอร์ตระยะยาว (LTS) ในอนาคต

ปกติแล้ว Node.js ออกเวอร์ชันใหม่ปีละ 2 รอบคือ รุ่นเลขคู่ในเดือนเมษายน และรุ่นเลขคี่ในเดือนตุลาคม โดยรุ่นเลขคู่จะเข้าสถานะ LTS เมื่อรุ่นเลขคี่ออกตามมา (เช่น 16.x จะเป็น LTS เมื่อ 17.0 ออก)

ของใหม่ใน Node.js 16.0 คือรองรับ Apple Silicon, ปรับมาใช้เอนจินจาวาสคริปต์ V8 เวอร์ชัน 9.0, เพิ่ม Timers Promises API, เลิกซัพพอร์ต Python 2 เป็นต้น

Node.js จะมีรุ่นที่ซัพพอร์ตพร้อมกันครั้งละ 3 รุ่น ปัจจุบันคือ 10.x, 12.x, 14.x เมื่อออกรุ่นใหม่คือ 16.0 จะทำให้รุ่น 10.x สิ้นสถานะซัพพอร์ตตอนสิ้นเดือนเมษายนนี้

Tags:
Node Thumbnail

ไมโครซอฟท์เปิดโครงการ Fluid Framework เฟรมเวิร์คสำหรับสร้างเว็บแอปที่เปิดทางให้ผู้ใช้ทำงานร่วมกันแบบเรียลไทม์โดยอาศัยระบบข้อมูลกระจายตัว (distributed data structure - DDS) ที่เปิดทางให้เบราว์เซอร์แต่ละตัวแจ้งเซิร์ฟเวอร์ว่าแก้ไขเอกสารไปอย่างไรบ้าง จากนั้นเบราว์เซอร์ตัวอื่นๆ จะนำข้อมูลนั้นไปรวม (merge) กับเอกสารที่อยู่ในตัวเพื่อให้เบราว์เซอร์ทุกตัวเห็นเอกสารตรงกัน

ทางไมโครซอฟท์เปิดโครงการนี้พร้อมกันโครงการตัวอย่าง เช่น Brainstrom สำหรับการแชร์กระดานป้ายกระดาษ post it, แชร์เอกสารให้แก้ไขได้พร้อมกับ, และเกม Sudoku แบบช่วยกันเล่น

Tags:
Node Thumbnail

เราเห็นโครงการซอฟต์แวร์หลายตัว ปรับแผนการออกรุ่นหลังได้รับผลกระทบจาก COVID-19 (เช่น Chrome, Firefox) ล่าสุด Node.js ออกมาปรับแผนการออกรุ่นเช่นกัน

ปกติแล้ว Node.js มีรอบการออกรุ่นใหม่ (Current) ทุก 6 เดือน จากนั้นรุ่นที่เป็นเลขคี่จะเลิกซัพพอร์ตไป และรุ่นที่เป็นเลขคู่จะเข้าสถานะพร้อมใช้งานจริง (Active LTS) เป็นเวลา 12 เดือน หมดแล้วจะเป็นสถานะ Maintenance LTS อีก 18 เดือน (รวมเป็น 30 เดือน)

Tags:
Node Thumbnail

กูเกิลเพิ่งประกาศ App Engine รองรับรันไทม์ Java 11 LTS ไปหมาด ๆ ล่าสุด App Engine ประกาศรองรับภาษาโปรแกรมเวอร์ชันใหม่ๆ อีกชุดใหญ่ดังนี้

Tags:
Node Thumbnail

Node.js ออกเวอร์ชัน 13.0 (และออกรุ่นแก้บั๊ก 13.0.1 ตามมาในวันถัดมา) ถือเป็นเวอร์ชันแรกของ Node.js สาย 13.x

ระบบการออกรุ่นของ Node.js ในปัจจุบันคือออกเวอร์ชันใหญ่ทุก 6 เดือน โดยแบ่งเป็นรุ่นเลขคี่ (ไม่เสถียร) และรุ่นเลขคู่ (เสถียร) และมีเงื่อนไขว่าเมื่อออกรุ่นเลขคี่แล้ว จะปรับเวอร์ชันของรุ่นเลขคู่เป็นรุ่นซัพพอร์ตระยะยาว (LTS) ทันที และเลื่อนรุ่น LTS สองรุ่นก่อนหน้าเป็นสถานะ Maintenance

การออก Node.js 13.0 จึงมีผลทำให้ Node.js 12 มีสถานะเป็น LTS (เริ่มนับที่ 12.13.0) และส่งผลให้ Node.js 8 LTS เข้าสถานะ Maintenance

ณ ปัจจุบัน เราจึงมี Node.js ที่เป็น LTS ทั้งหมด 3 รุ่นคือ

Tags:
Node Thumbnail

Google Cloud Functions บริการคลาวด์แบบ serverless ของกูเกิล ประกาศรองรับภาษาโปรแกรมเวอร์ชันต่างๆ เพิ่มเติมดังนี้

Tags:
Node Thumbnail

อาจเป็นสัญญาณที่ดีสำหรับนักพัฒนาสาย JavaScript เมื่อ Yang Guo หนึ่งในนักพัฒนาของโครงการ Node.js ประกาศออกทวิตว่ากำลังช่วย Google หาคนทำงานอยู่ โดยเป็นนักพัฒนาที่สามารถพอร์ต (port) โครงการ Node.js ลง Fuchsia ได้

รายละเอียดของทวิตระบุว่า นักพัฒนาที่ได้ตำแหน่งนี้จะได้ทำงานในตำแหน่งวิศวกรซอฟต์แวร์ที่ Google ประจำสำนักงานเมืองมิวนิค ประเทศเยอรมนี และจะต้องทำงานในสถานที่จริงเท่านั้น โดยจะต้องมีประสบการณ์ในการพัฒนา Node.js ส่วนแกนที่สำคัญ (core), C++ และ C++ toolchain ด้วย

Tags:
Node Thumbnail

Google App Engine รองรับภาษา Node.js มาตั้งแต่ปี 2016 แต่อยู่ในรูป flexible environment คือรันแอพใน Docker อีกทีหนึ่ง (นำรันไทม์มาเอง)

เวลาผ่านไปสองปี ในที่สุดกูเกิลก็ประกาศรองรับ Node.js แบบ standard environment แล้ว สามารถเรียกใช้รันไทม์จากกูเกิลได้โดยตรง ข้อดีคือราคาของ standard environment ถูกกว่า flexible environment มาก (แถมบางครั้งก็ฟรีด้วยซ้ำ) และไม่ต้องเสียเวลากับการ deploy/scale ด้วยตัวเอง เพราะระบบของ App Engine ช่วยจัดการให้เราเกือบหมด

กูเกิลยังบอกว่าปรับแต่งไลบรารี Node.js ให้เชื่อมต่อกับบริการอื่นๆ ของตัวเอง เช่น Cloud Datastore รวมถึงการทำ debugging/tracing ด้วย

Tags:
Topics: 
Node Thumbnail

Node.js ประกาศให้รุ่น 8.9.0 เป็นรุ่นซัพพอร์ตระยะยาว (LTS) รุ่นล่าสุด ทำให้หลังจากนี้จะมีเวลาซัพพอร์ตรุ่น 8.9.x ไปอีก 26 เดือน เหมาะสำหรับการพัฒนาแอปพลิเคชั่นที่ต้องการซัพพอร์ตโค้ดระยะยาว

รุ่น LTS ของ Node.js ที่ยังซัพพอร์ตอยู่ได้แก่ v4 ที่จะซัพพอร์ตถึงเดือนเมษายน 2018 และ v6 ที่จะซัพพอร์ตไปถึงเดือนเมษายน 2019

โดยปกติแล้วรุ่น LTS ของ Node.js จะซัพพอร์ต 30 เดือนโดยแบ่งเป็นช่วง LTS ที่ซ่อมบำรุงทั่วไป 18 เดือน และช่วง Maintenance ที่แก้เฉพาะบั๊กร้ายแรงและช่องโหว่ความปลอดภัยอีก 12 เดือน แต่เนื่องจาก v8 ใช้ OpenSSL 1.0.2 ที่หมดอายุซัพพอร์ตเดือนธันวาคม 2019 ทำให้ระยะเวลาซัพพอร์ตของ v8 จึงปรับให้ตรงกัน

Tags:
Node Thumbnail

เราเคยเห็นความขัดแย้งภายในโครงการ Node.js ในปี 2014 อันเป็นผลให้เกิดการแยกโครงการ Io.js ก่อนจะมารวมกันอีกครั้งในปี 2015 หลัง Node.js ย้ายมาสังกัดใต้ Linux Foundation

ล่าสุดโครงการ Node.js มีปัญหาใหม่อีกครั้ง หลังมีความขัดแย้งภายในคณะกรรมการกำกับทิศทางเทคนิค (Technical Steering Committee - TSC) โดยกรรมการรายหนึ่งชื่อ Rod Vagg ถูกวิจารณ์ว่ามีพฤติกรรมไม่เหมาะสม จนคณะกรรมการต้องโหวตตัดสินว่าจะให้เขาดำรงตำแหน่งต่อไปหรือไม่ เมื่อผลโหวตออกมา 6:4 ให้อยู่ต่อ ส่งผลให้กรรมการเสียงข้างน้อย 4 คนประกาศลาออกทันที

Tags:
Node Thumbnail

ซัมซุงประกาศซื้อกิจการ Joyent บริษัทผู้ให้บริการด้านคลาวด์ IaaS ชื่อดังอีกราย (แต่ผลิตภัณฑ์ที่ดังที่สุดของบริษัทกลับเป็น Node.js ที่ภายหลังมีปัญหาทะเลาะกัน และโอนมาให้ Node.js Foundation ดูแลแทน)

Joyent ก่อตั้งในปี 2004 และมีผลิตภัณฑ์ที่ถือเป็นคู่แข่งของ Amazon Web Services โดยตรง เช่น บริการคลาวด์ IaaS แบบเดียวกับ EC2 และบริการ Manta Object Storage ที่แข่งกับ S3 (ภายหลังบริษัทยังมีบริการซัพพอร์ต Node.js สำหรับองค์กร และบริการคลาวด์รัน container ด้วย)

Tags:
Node Thumbnail

โครงการ Node.js ประกาศออกรุ่น 6.0 หลังจากออกรุ่น 5.0 เมื่อหกเดือนก่อน โดยรุ่น 6.0 จะเป็นรุ่นซัพพอร์ตระยะยาว (long term support - LTS) ระหว่างนี้รุ่น 5.0 จะมีเวลาซัพพอร์ตไปอีกสองเดือนเพื่อให้เวลาในการอัพเกรด

Node.js 6.0 จะรองรับ ECMAScript 6 แล้วถึง 93% จากการอัพเกรดเอนจิน V8 การอัพเกรด ส่วนการอัพเกรดฟังก์ชั่นภายในนั้นเป็นการอัพเกรดย่อยๆ เป็นส่วนใหญ่

รุ่นนี้จะมีอายุซัพพอร์ตแบบแอคทีฟไปอีก 12 เดือน และหลังจากนั้นจะเข้าสู่โหมดซัพพอร์ตระยะยาวที่จะแก้เฉพาะบั๊กความปลอดภัยและบั๊กร้ายแรงเท่านั้นอีก 18 เดือน ดังนั้นหากใครเริ่มใช้งานตั้งแต่ตอนนี้ก็จะหมดอายุใช้งานช่วงปลายปี 2019

ที่มา - Node.js

Tags:
Node Thumbnail

Azer Koçulu นักพัฒนาจาวาสคริปต์ที่เขียนโมดูลจำนวนมากลง NPM ประกาศถอดโมดูลทั้งหมดออกส่งผลให้โครงการใหญ่ๆ ที่ใช้งานโมดูลของเขา เช่น Node.js และ Babel มีปัญหาไปด้วย

Koçulu เป็นผู้พัฒนาโมดูล Kik แต่ถูกผู้ให้บริการแชต Kik.com ระบุว่าเขากำลังละเมิดเครื่องหมายการค้าและขอให้ถอนโมดูลออก แต่ Koçulu ไม่ยินยอม ทาง Kik.com จึงแจ้งไปทาง NPM และทาง NPM ยอมถอนโมดูลนี้ออกไป ทำให้ Koçulu ไม่พอใจและตัดสินใจถอนโมดูลอื่นๆ ของเขาออกจาก NPM ทั้งหมดกว่า 250 โมดูล หนึ่งในจำนวนนั้นคือ left-pad ที่มีโครงการอื่นๆ ใช้งานอยู่จำนวนมาก มียอดดาวน์โหลดในแต่ละเดือนหลายล้านครั้ง

Tags:
Node Thumbnail

Google App Engine แพลตฟอร์มพัฒนาแอพบนกลุ่มเมฆของกูเกิล รองรับการพัฒนาด้วยเฟรมเวิร์คจาวาสคริปต์ยอดฮิต Node.js แล้ว จากเดิมที่รองรับ Python, PHP, Java, Go

ตอนนี้สถานะการใช้งาน Node.js บน App Engine ยังอยู่ในระดับเบต้า ผู้สนใจสามารถดูเอกสารของ Google Cloud Platform

Tags:
Node Thumbnail

ไมโครซอฟท์เปิดเอนจินจาวาสคริปต์ ChakraCore มาไม่กี่วัน ตอนนี้เหตุผลที่ไมโครซอฟท์เปิดโค้ดออกมาก็ชัดเจนขึ้นเมื่อทางไมโครซอฟท์ส่งโค้ดเข้าไปยังโครงการ NodeJS เพื่อให้ NodeJS รองรับการรันด้วย ChakraCore

ไมโครซอฟท์ระบุว่าโค้ดทั้งหมดจะไม่กระทบกับโค้ดหลักของ NodeJS เองและโค้ดของส่วนเสริมอื่นๆ ของ V8 เพราะไมโครซอฟท์สร้าง chakrashim ขึ้นมาอิมพลีเมนต์ API ของ V8 สำหรับ NodeJS ไว้แล้ว

ข้อเสียสำคัญคือ ChakraCore ยังพอร์ตไปแพลตฟอร์มอื่นไม่เสร็จ ระหว่างนี้แพตช์ที่ไมโครซอฟท์ส่งเข้ามาจะรันได้บนวินโดวส์เท่านั้น

แพตช์นี้จะทำให้กระบวนการคอมไพล์โค้ดสามารถเลือกได้ว่าต้องการใช้เอนจินใด แต่ตัวไบนารีที่ได้จะมีเอนจินเดียวเท่านั้น

Tags:
Node Thumbnail

ออราเคิลออก NetBeans IDE 8.1 โดยทิ้งช่วงจากรุ่นก่อนหน้า NetBeans 8.0 ประมาณหนึ่งปีครึ่ง ของใหม่ในรุ่นนี้ได้แก่

Pages