Netlify ผู้ให้บริการคลาวด์สำหรับพัฒนาเว็บเป็นหลักประกาศเข้าซื้อบริษัท Gatsby ผู้พัฒนาเฟรมเวิร์คโอเพนซอร์สชื่อดังมักใช้พัฒนาเว็บแบบ static หรือใช้เชื่อมโหลดข้อมูลจาก CMS ตัวอื่นๆ อีกที
ตัว Gatsby นั้นแม้จะใช้รันที่ไหนก็ได้แต่ก็มีบริการคลาวด์ของตัวเองอยู่ก่อนแล้ว ทำให้ทับซ้อนกันบ้าง ส่วนตัว Netify นั้นให้บริการคลาวด์ที่ทำงานร่วมกับเฟรมเวิร์คยอดนิยมต่างๆ ได้
ทาง Gatsby ยืนยันว่าทีมงานจะยังพัฒนา Gatsby เป็นโอเพนซอร์สต่อไป ส่วนบริการคลาวด์ต่างๆ จะกลายเป็นส่วนหนึ่งของบริการคลาวด์ของ Netlify
ที่มา - Gatsby
Astro เว็บเฟรมเวิร์คคู่แข่ง NextJS แต่เน้นเว็บโหลดเร็ว ออกเวอร์ชั่น 2.0 โดยเพิ่มฟีเจอร์หลายอย่าง เช่น
โครงการ Deno รันไทม์จาวาสคริปต์ ออกเวอร์ชัน 1.28 มีของใหม่ที่สำคัญคือรองรับโมดูล npm ของโครงการ Node.js ตามที่ประกาศไว้ ทำให้เราสามารถอิมพอร์ตโมดูล npm ที่มีมหาศาล 1.3 ล้านโมดูลมาใช้กับ Deno ได้
การใช้งาน npm ของ Deno ไม่จำเป็นต้องสั่ง npm install เพราะโมดูลจะถูกติดตั้งตอนรันโปรแกรมครั้งแรก, ไม่ต้องมีไฟล์ package.json และไม่ต้องมีโฟลเดอร์ node_modules เพราะโมดูลจะถูกแคชในไดเรคทอรี global แทน
Redmonk บริษัทวิเคราะห์ข้อมูลนักพัฒนา รายงานอันดับภาษาโปรแกรมยอดนิยม ของไตรมาสที่ 3 ปี 2022 โดยใช้ข้อมูลอ้างอิงจาก GitHub และ Stack Overflow (ซึ่ง Redmonk บอกว่าหากภาษาที่คิดว่าน่าจะติด แต่ไม่ติดอันดับ ก็อาจเพราะแพลตฟอร์มอันใดอันหนึ่งไม่มีภาษานี้)
ในอันดับต้น ๆ นั้นแทบไม่มีการขยับตำแหน่ง แต่มีอันดับที่น่าสนใจ เช่น TypeScript ซึ่งได้รับความนิยมเพิ่มมาเรื่อย ๆ เนื่องจากนำไปใช้ในงานได้หลากหลาย ส่วนภาษา Go ก็ไม่สามารถไต่อันดับขึ้นมาที่เลขหลักเดียว ซึ่งเป็นทิศทางเดียวกับ Kotlin และ Rust
รายชื่ออันดับทั้งหมดเป็นดังนี้
ไลบรารี Axios สำหรับการเชื่อมต่อ HTTP ไปยังเซิร์ฟเวอร์อื่นๆ ที่นิยมในหมู่นักพัฒนาที่ใช้ Node.JS ออกเวอร์ชั่น 1.0 ซึ่งเป็นเวอร์ชั่นเสถียรตัวแรก ใช้เวลากว่า 6 ปีหลังจากออกเวอร์ชั่นแรกเมื่อปี 2016
โครงการไลบรารีโอเพนซอร์สจำนวนมากมักออกเวอร์ชั่นก่อนหน้าเวอร์ชั่นเสถียรมาเรื่อยๆ และประกาศเวอร์ชั่นเสถียรโดยปรับจากเวอร์ชั่นล่าสุดไม่มากนัก แต่ Axios ออกเวอร์ชั่นก่อนหน้านี้คือ 0.27.2 มาตั้งแต่เดือนเมษายน และออกเวอร์ชั่น 1.0 alpha1 มาเมื่อเดือนมิถุนายนก่อนจะออกเวอร์ชั่นจริงในสัปดาห์นี้ โดยมีความเปลี่ยนแปลงค่อนข้างมาก
Cloudflare เปิดซอร์สโครงการ workerd ที่เป็นแกนหลักของบริการ Cloudflare Workers บริการแบบ serverless ที่ Cloudflare เปิดตัวมาตั้งแต่ปี 2017 แม้ว่าโดยตัวมันเองจะใช้จาวาสคริปต์แต่ก็มี API เฉพาะของตัวเองทำให้ไม่สามารถนำโค้ดไปรันที่อื่นได้
ก่อนหน้านี้ Cloudflare เคยปล่อยโครงการ Miniflare สำหรับจำลอง API ของ Workers เพื่อนักพัฒนามาก่อนแล้วแต่ก็ไม่ตรงกันนัก โครงการ workerd จะทำให้นักพัฒนาสามารถใช้งานรันไทม์ที่มีพฤติกรรมตรงกันแทบทุกจุด (bug-for-bug) กับ Workers บนคลาวด์ของ Cloudflare ทำให้นักพัฒนาสามารถนำโค้ดไปรันบนเซิร์ฟเวอร์ของตัวเองได้จริงๆ
CircleCI บริษัทซอฟต์แวร์ด้าน continuous integration (CI) สรุปสถิติการใช้งานของลูกค้าจำนวน 2 ล้านคน ให้เห็นกันว่าภาพรวมของวงการ software delivery ในปัจจุบันเป็นอย่างไร
สถิติหนึ่งที่น่าสนใจคือ ภาษาโปรแกรมยอดนิยมที่ถูกใช้งาน build ผ่านระบบ workflow ของ CircleCI ปรากฏว่าแชมป์เก่า JavaScript ถูกโค่นซะแล้ว กลายเป็น TypeScript ที่มาแรงจนแซงหน้าขึ้นเป็นเบอร์หนึ่งแทน (JavaScript ตกเป็นที่ 2, อันดับ 3 Ruby, อันดับ 4 Python, อันดับ 5 Go)
CircleCI บอกว่าความนิยมของ TypeScript ที่เป็นการแก้ปัญหาของ JavaScript โดยเพิ่มแนวคิดเรื่องชนิดของตัวแปร (type) เป็นที่ชัดเจนอยู่แล้ว เพราะช่วยให้นักพัฒนาหาบั๊กได้ง่ายขึ้นตั้งแต่ตอนเขียน (ใช้ IDE ตรวจ) หรือตอนคอมไพล์ แทนที่จะเป็นตอนรัน
Jarred Sumner นักพัฒนา Front End ที่หันมาพัฒนารันไทม์จาวาสคริปต์ Bun โดยชูจุดแข็งความเร็วเหนือกว่ารันไทม์ยอดนิยม ประกาศเปิดบริษัท Oven ที่จะเป็นผู้พัฒนาหลักของ Bun
Bun ได้รับความนิยมอย่างสูงในเวลาอันสั้น ตอนนี้มีดาวบน GitHub แล้ว 32,000 ดาว พร้อมกับสมาชิกใน Discord อีกถึง 14,000 คน ตอนนี้เป้าหมายการพัฒนาคือการออกรุ่นเสถียรภายใน 6 เดือนข้างหน้า
ตัวบริษัท Oven ได้รับทุนมาแล้ว 7 ล้านดอลลาร์ และกำลังรับสมัครนักพัฒนาเพิ่มเติม โมเดลรายได้ของ Oven จะเปิดบริการคลาวด์ของตัวเอง รูปแบบน่าจะคล้าย Deno Deploy ที่พัฒนารันไทม์เหมือนกัน
ที่มา - Oven.sh
Deno โครงการรันไทม์จาวาสคริปต์ประกาศแผนการพัฒนาเพิ่มเติม โดยจุดใหญ่ที่สุดคือการรองรับแพ็กเกจต่างๆ จาก npm ทำให้สามารถใช้แพ็กเกจแบบเดียวกับใน NodeJS ได้ แม้ว่าภายในแล้ว Deno จะต่างกับ NodeJS พอสมควร
เว็บเฟรมเวิร์ค Astro ประกาศออกเวอร์ชั่น 1.0 หลังเปิดตัวมา 16 เดือน และพัฒนาจากเดิมที่มองว่าเป็น static site generator สำหรับสร้างเว็บที่ไม่มีความเปลี่ยนแปลงใดๆ เป็นหลัก มาเป็นเฟรมเวิร์คเต็มรูปแบบ แข่งขับกับเฟรมเวิร์คยอดนิยม เช่น NextJS
ในเวอร์ชั่น 1.0 ความเปลี่ยนแปลงสำคัญ ได้แก่
Douglas Crockford โปรแกรมเมอร์ผู้สร้าง JSON ในปี 2000 ออกมาให้สัมภาษณ์วิจารณ์ JavaScript ว่าพัฒนาช้ามากในช่วง 20 ปีที่ผ่านมา จากที่เขาเคยเป็นกองเชียร์ JavaScript และพยายามแก้ปัญหาหลายๆ อย่าง ก็ประสบความสำเร็จน้อยมากใน ECMAScript 5 ที่เป็นเวอร์ชันใหญ่เมื่อปี 2009 จนตอนนี้เขามองว่า JavaScript เป็นภาษาไดโนเสาร์ที่ไม่ทันโลก และควรเลิกใช้กันดีกว่า (The best thing we can do today to JavaScript is to retire it.)
Crockford ยังให้ความเห็นว่าชุมชน JavaScript พยายามพัฒนาตัวภาษาให้บวมขึ้นกว่าเดิม แทนที่จะพัฒนามันให้ดีกว่าเดิม อย่างไรก็ตาม ปัญหาคือเราไม่มีภาษาอื่นมาใช้ทดแทนแนวทาง JavaScript แก้แก้โครงของ DOM ในเบราว์เซอร์ ซึ่งก็ไม่ง่ายเลยที่จะสร้างภาษาใหม่ขึ้นมาแล้วให้เบราว์เซอร์ทุกตัวยอมรับ
เขายังแสดงความเห็นต่อภาษาโปรแกรมในภาพรวมว่า ภาษาส่วนใหญ่ที่เราใช้กันถูกออกแบบมาตั้งแต่ยุคโพรเซสเดียวบนคอมพิวเตอร์เครื่องเดียว ซึ่งโลกเปลี่ยนจากนั้นไปมากแล้ว
Jarred Sumner นักพัฒนา Front End เปิดตัวโครงการ Bun รันไทม์จาวาสคริปต์ที่พยายามแข่งกับ Node และ Deno โดยชูจุดเด่นที่ความเร็วเหนือกว่ารันไทม์ยอดนิยมในหลายๆ ด้าน มันมาพร้อมกับตัวจัดการแพ็กเกจและตัวแปลงโค้ด (transpile) จาก TypeScript เป็นจาวาสคริปต์ในตัว
Bun พัฒนาด้วยภาษา Zig ตัว Summer ผู้พัฒนาระบุว่าเขาออปติไมซ์เพิ่มเติมหลายอย่างเพื่อให้การทำงานเร็วขึ้น โดยเฉพาะการเริ่มรัน และการติดตั้ง dependencies ที่อาศัยการออปติไมซ์การเรียก system call จนประสิทธิภาพดีกว่าตัวจัดการแพ็กเกจอื่นๆ นับสิบเท่า ระบบฐานข้อมูลแพ็กเกจใช้ไฟล์ไบนารีแทน JSON เพื่อลดเวลาการ parse
บริษัท Deno ของผู้สร้าง Node.js ที่หันมาทำเฟรมเวิร์คจาวาสคริปต์ที่เขียนด้วย Rust ตั้งแต่ปี 2020 ประกาศข่าวระดมทุน Series A มูลค่า 21 ล้านดอลลาร์จากนักลงทุนหลายราย นำโดย Sequoia Capital และมี Nat Friedman ผู้ร่วมก่อตั้ง Xamain และอดีตซีอีโอ GitHub มาร่วมลงทุนด้วย
ตัวเฟรมเวิร์ค Deno จะยังเป็นโอเพนซอร์สต่อไปเช่นเดิม แต่โมเดลธุรกิจของบริษัท Deno คือ Deno Deploy ระบบคลาวด์ที่ใช้รัน JavaScript, TypeScript, WebAssembly ประสิทธิภาพสูง กินทรัพยากรน้อย ราคาถูกกว่าการใช้สถาปัตยกรรมคอนเทนเนอร์ที่นิยมกันในปัจจุบัน
บริษัท Meta ประกาศยกโครงการ Jest เฟรมเวิร์คสำหรับรันทดสอบจาวาสคริปต์ ให้เป็นของมูลนิธิ OpenJS Foundation
Jest ถือเป็นเฟรมเวิร์คสำหรับรันทดสอบยอดนิยมตัวหนึ่ง มียอดดาวน์โหลดสัปดาห์ละ 17 ล้านครั้ง ถูกเขียนขึ้นตั้งแต่ปี 2011 ในชื่อว่า "jst" โดยใช้กับฟีเจอร์ Facebook Chat (ในขณะนั้นยังไม่เรียก Messenger) ที่ถูกเขียนใหม่เป็นจาวาสคริปต์ แต่บริษัทพบว่าไม่มีเฟรมเวิร์คสำหรับจาวาสคริปต์ที่ดีพอ จึงสร้างขึ้นมาเอง
Netlify ผู้ให้บริการคลาวด์สำหรับการพัฒนาเว็บ เปิดบริการ Netlify Edge Functions บริการ serverless โดยใช้ Deno เป็นเอนจินภายในที่อาจจะใช้สำหรับรันงานเฉพาะทาง เช่น เรนเดอร์ภาพ, แก้ไขคอนเทนต์ก่อนส่งถึงผู้ใช้, ทดสอบผู้ใช้แบบ A/B ไปจนถึงการรันเฟรมเวิร์ค front-end เต็มรูปแบบ
ทาง Netlify เคยเปิดทดสอบบริการรูปแบบเดียวกันมาก่อนแล้วในชื่อ Edge Handlers แต่ใช้เอนจินเฉพาะของตัวเอง แบบเดียวกับผู้ให้บริการคลาวด์รายอื่น แต่ปรากฎว่าไม่ได้รับความนิยมเพราะนักพัฒนาใช้เฟรมเวิร์คยอดนิยมไม่ได้เลย รอบบนี้การเปิดตัว Edge Functions จึงหันมาใช้เอนจิน Deno แล้วทดสอบกับเฟรมเวิร์คดังๆ ได้แก่ Astro, 11ty, Hydrogen, Next.js, Nuxt, Remix, และ SvelteKit
React ออกเวอร์ชัน 18.0 ถือเป็นการออกเวอร์ชันใหญ่ครั้งแรกนับจาก React 17.0 ในปี 2020 ที่ไร้ฟีเจอร์ใหม่ รอบนี้จึงมีฟีเจอร์ใหญ่สะสมมาออกทีเดียวหลายอย่าง
ฟีเจอร์สำคัญที่สุดคือ Concurrent React เป็นการเปิดให้มี UI หลายเวอร์ชันในเวลาเดียวกัน (concurrency) โดย Concurrent React เป็นการปรับกลไกภายในของ React เองให้รองรับฟีเจอร์ใหม่สาย concurrency ต่างๆ ซึ่งนักพัฒนาสามารถเลือกใช้ได้แบบ opt-in
ทีมพัฒนา React บอกว่าในระยะใกล้ นักพัฒนาแอพจะเลือกใช้ Concurrent หรือไม่ก็ได้ แต่ในระยะยาวแล้ว หลายส่วนใน React จะมุ่งไปทาง Concurrent มากขึ้น
ของใหม่อย่างอื่นใน React 18 ได้แก่
RIAEvangelist นักพัฒนาโมดูล node-ipc ที่ได้รับความนิยมสูง ใส่โค้ดเพื่อลบไฟล์ผู้ใช้หากตรวจสอบไอพีแล้วพบว่าผู้ใช้อยู่ในรัสเซียหรือเบลารุส ไม่ว่าผู้ใช้จะติดตั้งโมดูลโดยตรงหรือติดตั้งจาก dependency โมดูลอื่นๆ ก็ตาม
ทาง GitHub ออกมาประกาศว่าเวอร์ชั่น 10.1.1 และ 10.1.2 ที่ผู้ดูแลใส่โค้ดเข้ามานี้เป็นช่องโหว่ร้ายแรงระดับวิกฤติ ตอนนี้ทาง NPM ได้ลบเวอร์ชั่นเหล่านี้ออกแล้ว และมีการอัพเดตเป็นเวอร์ชั่น 10.1.3
ข้อจำกัดประการสำคัญของ JavaScript คือการไม่กำหนดชนิดของตัวแปร (type) แบบตายตัว (static typing) เมื่อ JavaScript ได้รับความนิยมเพิ่มขึ้นเรื่อยๆ จึงมีคนพยายามแก้ปัญหานี้ด้วยการประดิษฐ์ภาษาหรือเครื่องมือใหม่ๆ ที่เป็น JavaScript แบบมี type เข้ามา (เช่น TypeScript, Closure Compiler หรือ Flow) เพื่อจัดระเบียบการเขียนโค้ดให้มีโครงสร้างมากขึ้น
แนวทางของภาษาแบบ TypeScript คือให้มนุษย์เขียนโค้ดด้วยภาษาใหม่ที่มีระเบียบขึ้น จากนั้นใช้เครื่องมือ "แปลง" (ในที่นี้คือ transpiler) ภาษาใหม่กลับมาเป็น JavaScript อีกทีหนึ่ง
Russ Cox วิศวกรกิตติมศักดิ์ (Distinguished Engineer) ของกูเกิล และทีมพัฒนาภาษา Go เขียนบล็อคถึงประเด็นที่นักพัฒนาโมดูล color.js และ faker.js ใส่โค้ดทำให้แอปอื่นๆ พังโดยจงใจ ว่ายังดีที่โค้ดนี้ไม่ได้ทำอะไรมุ่งร้ายมากไปกว่าทำให้แอปพังเพราะโค้ดพิมพ์ขยะจนเต็มหน้า แต่หลังจากเหตุการณ์นี้ NPM ควรปรับปรุงเพื่อรับมือปัญหาแบบนี้ในอนาคต
ผู้ใช้ GitHub ชื่อบัญชี Marak เป็นผู้ดูแลโครงการโอเพนซอร์สจำนวนมากและช่วงสัปดาห์ที่ผ่านมาเขาใส่โค้ดรัน infinite loop เข้าไปยังโครงการ color.js (4,300 stars) และ faker.js (795 stars) ส่งผลให้โมดูลและแอปอื่นๆ ที่ใส่โมดูลเหล่านี้เป็น dependency ไม่สามารถทำงานได้ หน้าจอจะค้างและพิมพ์ขยะออกมาไม่หยุด
Marak ไม่ได้แถลงบอกเหตุผลที่เขาทำแบบนี้ไว้โดยตรงแต่เขาแสดงภาพ Aaron Swartz โปรแกรมเมอร์นักกิจกรรมที่ฆ่าตัวตาย หลังถูกจับเนื่องจากเอาคอมพิวเตอร์ไปเชื่อมต่อเครือข่ายของ MIT เพื่อดาวน์โหลดรายงานวิทยาศาสตร์
เฟรมเวิร์ค AngularJS เวอร์ชันแรก 1.x ที่เปิดตัวตั้งแต่ปี 2010 หมดระยะซัพพอร์ตแล้วเมื่อสิ้นปี 2021 ถือเป็นการปิดตำนาน AngularJS เวอร์ชันแรกที่เขียนด้วยภาษา JavaScript
เมื่อปี 2015 กูเกิลจับมือกับไมโครซอฟท์สร้างเฟรมเวิร์ค Angular (ไม่มี JS) ด้วยภาษา TypeScript ขึ้นมาใหม่แทนการพัฒนา AngularJS เวอร์ชันแรกต่อ และยังใช้งานมาจนถึงปัจจุบัน (เวอร์ชันล่าสุดขณะที่เขียนคือ 13.x ออกเมื่อปลายปี 2021)
การที่ Angular ทั้งสองเวอร์ชันมีชื่อคล้ายกัน (แต่ใช้ด้วยกันไม่ได้) ทำให้เกิดความสับสนไม่น้อย เพื่อให้แยกแยะได้ง่าย หลายคนเลือกเรียกโครงการใหม่ว่า Angular 2 หรือ Angular 2+ แทน
Ruby on Rails ออกเวอร์ชันใหญ่ 7.0 ซึ่งมีการเปลี่ยนแปลงสำคัญ 2 เรื่องคือ ไม่ต้องผูกกับโลกของ Node.js อีกแล้ว และเปลี่ยนระบบ front-end มาเป็นตัวใหม่คือ Hotwire
David Heinemeier Hansson หรือ DHH ผู้สร้าง Rails อธิบายว่าโครงสร้างของภาษา JavaScript ในอดีตเป็นปัญหาของโปรแกรมเมอร์มาก ทางออกจึงเป็นการเขียนภาษาอื่นแล้วแปลงเป็น JavaScript (เรียกว่า transpiling เช่น CoffeeScript หรือ Babel) ที่ช่วยให้เขียนโค้ดง่ายขึ้น แต่ก็ต้องแลกมาด้วยความซับซ้อนที่เพิ่มขึ้น
บริษัท Vercel ผู้สร้างเฟรมเวิร์คจาวาสคริปต์ชื่อดัง Next.js ประกาศระดมทุนซีรีส์ D จำนวน 150 ล้านดอลลาร์ ทำให้บริษัทมีมูลค่า 2.5 พันล้านดอลลาร์
ธุรกิจของ Vercel คือเป็นแพลตฟอร์มสำหรับพัฒนาเว็บ front-end ที่รองรับเฟรมเวิร์คหลากหลาย (ไม่ใช่แค่ Next.js แต่รวมถึงตัวอื่นๆ เช่น Vue.js, Ember, Angular) โดยระบบของ Vercel จะรองรับการโฮสต์ไฟล์แบบ serverless นักพัฒนาไม่ต้องดูแลระบบเอง (วัดตามจำนวนครั้งที่เรียกใช้งาน) จัดการเรื่องความปลอดภัยและ CDN ที่กระจายอยู่ทั่วโลก (edge network) เพื่อให้เว็บไซต์ตอบสนองรวดเร็วต่อผู้ใช้ในแต่ละพื้นที่ นักพัฒนาสนใจแค่การพัฒนาเว็บอย่างเดียว ไม่ต้องมีภาระเรื่องการจัดการโครงสร้างพื้นฐานอื่นๆ
ไลบรารี coa หรือ Command-Option-Argument เป็นไลบรารีสำหรับอ่านคำสั่ง command line ยอดนิยมบน npm ถูกแฮกและคนร้ายสามารถปล่อยเวอร์ชั่นมุ่งร้าย 2.0.3, 2.0.4, 2.1.1, 2.1.3, และ 3.1.3 ให้เหยื่อดาวน์โหลดผ่าน npm ได้สั้นๆ ไม่กี่ชั่วโมง
อัตราการใช้งาน coa สูงมาก มียอดดาวน์โหลดเกือบ 9 ล้านครั้งต่อสัปดาห์ ช่วงเวลาไม่กี่ชั่วโมงก็อาจจะถูกดาวน์โหลดไปแล้วนับแสนครั้ง
ในผลการสำรวจนักพัฒนาของ Stack Overflow ประจำปี 2021 ที่เพิ่งออกมาเมื่อต้นเดือนนี้ มีเรื่องที่เซอร์ไพร์สคือ เว็บเฟรมเวิร์คที่นักพัฒนา "รัก" มากที่สุด (most loved web framework) มีแชมป์ 2 รายได้คะแนนเท่ากันคือ ASP.NET Core และ Svelte
กรณีของ ASP.NET Core ไม่ใช่เรื่องน่าแปลกใจ เพราะเป็นแชมป์เก่าของปี 2020 อยู่ก่อนแล้ว แต่ Svelte เป็นเฟรมเวิร์คใหม่ที่ยังไม่เคยติดอันดับใดๆ มาก่อนในการสำรวจปี 2020 กลับโผล่เข้าชาร์ทมาพรวดเดียวครองอันดับหนึ่งร่วมได้ทันที ทำให้เกิดกระแสความสนใจในโครงการ Svelte เพิ่มตามมา
บทความนี้จะแนะนำข้อมูลเบื้องต้นของ Svelte ว่ามีอะไรน่าสนใจ ถึงทำให้ผงาดขึ้นมาเป็นเฟรมเวิร์คที่นักพัฒนารักที่สุดได้อย่างรวดเร็ว