ประวัติย่อของ JavaScript
(deno.com)- เนื่องในโอกาสครบรอบ 30 ปีของ JavaScript ในปีนี้ Deno ได้สรุปประวัติที่ผ่านมาไว้แบบย่อ
- JavaScript เริ่มต้นจากการเป็น ภาษาสคริปต์ที่พัฒนาขึ้นภายใน 10 วัน และปัจจุบันได้กลายเป็น ภาษาที่ได้รับความนิยมมากที่สุดในโลก
- แนะนำช่วงเวลาสำคัญทางประวัติศาสตร์บางส่วนที่แสดงให้เห็นว่า JavaScript พัฒนามาอย่างไร และกำลังมุ่งหน้าไปทางไหนในอนาคต
A brief history of JavaScript (1994-2025)
[1994]
-
เปิดตัว Netscape Navigator 1.0
- ธันวาคม 1994 เปิดตัว Netscape Navigator 1.0
- ปัจจัยที่ทำให้ได้รับความนิยมคือมีความเร็วมากกว่าเบราว์เซอร์รุ่นก่อน และมี GUI
- พร้อมรองรับ HTML 2.0 ซึ่งปูพื้นฐานให้ JavaScript สามารถทำงานบนเบราว์เซอร์นี้ได้ในเวลาต่อมา
[1995]
-
กำเนิดของ JavaScript
- พฤษภาคม 1995 Brendan Eich พัฒนาร่างแรกของ JavaScript ภายใน 10 วัน
- พัฒนาขึ้นตามคำขอให้สร้างภาษาสคริปต์ที่มีไวยากรณ์คล้าย Java ซึ่งกำลังได้รับความนิยมในขณะนั้น
- ชื่อถูกกำหนดให้เป็น JavaScript เพื่อวัตถุประสงค์ทางการตลาด
-
การประกาศอย่างเป็นทางการของ Netscape และ Sun
- ธันวาคม 1995 มีการประกาศ JavaScript ว่าเป็น “ภาษาสคริปต์เชิงวัตถุแบบน้ำหนักเบาสำหรับเว็บ”
- มีการประกาศพร้อมแรงสนับสนุนจากบริษัทเทคโนโลยี 28 แห่ง และถูกวางตำแหน่งให้เป็นภาษาที่คำนึงถึงการใช้งานระดับองค์กรด้วย
[1996]
-
การตอบโต้ของ Microsoft
- มีนาคม 1996 Microsoft ใส่ JScript ลงใน Internet Explorer 3
- JScript สามารถเชื่อมกับ ActiveX เพื่อควบคุมแอปพลิเคชันอย่าง Excel ได้
-
เปิดตัว Navigator 2.0 ที่มาพร้อม JavaScript 1.0
- ในเดือนมีนาคมปีเดียวกัน JavaScript 1.0 เปิดตัวอย่างเป็นทางการ บน Netscape Navigator 2.0
- แนวคิดของ DOM (Document Object Model) เริ่มต้นขึ้นในช่วงเวลานี้
[1997]
-
เสนอให้ ECMA ทำมาตรฐาน
- มิถุนายน 1997 Netscape เสนอให้ ECMA International กำหนดมาตรฐานของ JavaScript
- มีเป้าหมายเพื่อ แก้ปัญหาความเข้ากันได้ กับ JScript ของ Microsoft
- เกิดสเปกชื่อ ECMA-262 และกำหนดชื่อว่า ECMAScript
- มีการจัดตั้ง คณะกรรมการ TC39 เพื่อเริ่มดูแลการพัฒนาของภาษา
[1998]
-
เริ่มต้นโครงการ Mozilla
- มกราคม 1998 เพื่อตอบโต้การผูกขาดตลาดเบราว์เซอร์ของ Microsoft Netscape ได้เปิดซอร์สโค้ด
- ชื่อโครงการคือ “Mozilla” และต่อมาได้นำไปสู่ผลงานโอเพนซอร์สมากมาย เช่น Firefox, Rust
-
ประกาศ ECMAScript 2
- กันยายน 1998 มีการประกาศ ECMAScript 2 อย่างเป็นทางการ
- แม้ไม่มีฟีเจอร์ใหม่ แต่มีเป้าหมายหลักเพื่อทำให้สเปกมีความสอดคล้องกันและเอกสารถูกปรับให้สมบูรณ์ขึ้น
[1999]
-
IE5 และการนำ XMLHttpRequest มาใช้
- มีนาคม 1999 IE5 นำ
XMLHttpRequestมาใช้ - สิ่งนี้กลายเป็นรากฐานของเทคโนโลยี AJAX ในเวลาต่อมา
- มีนาคม 1999 IE5 นำ
-
การปรากฏตัวของ JSDoc
- เมษายน 1999 มีการเปิดตัว JSDoc สำหรับการจัดทำเอกสารของ JavaScript
- ได้รับอิทธิพลจาก Javadoc ของฝั่ง Java และยังคงถูกใช้งานเป็นเครื่องมือสร้างเอกสารมาจนถึงปัจจุบัน
-
ประกาศ ECMAScript 3
- ธันวาคม 1999 มีการประกาศ ECMAScript 3 อย่างเป็นทางการ
- ด้วยการเพิ่ม
do-while, regular expression, เมธอดของสตริง, การจัดการข้อยกเว้น ฯลฯ จึง วางรากฐานให้ภาษาเติบโตอย่างจริงจัง - หลังจากนั้นถูกใช้เป็นมาตรฐานโดยพฤตินัยของ JavaScript บนเว็บอยู่นานกว่าสิบปี
[2001]
-
การปรากฏตัวครั้งแรกของ JSON
- มีการส่งข้อความ JSON แรกเป็นครั้งแรก
- มีการใช้โครงสร้างอ็อบเจ็กต์ในรูปแบบ
{ to, do, text }ภายในสคริปต์บนหน้าเว็บ - เป็น ฟอร์แมตข้อความน้ำหนักเบาที่อิงกับ JavaScript และต่อมาได้กลายเป็นมาตรฐานของการสื่อสารกับเว็บ API
[2002]
-
การนำ JSLint มาใช้
- Douglas Crockford เปิดตัวเครื่องมือตรวจสอบไวยากรณ์แบบสแตติก JSLint
- ช่วยยกระดับคุณภาพโค้ด JavaScript และต่อยอดไปสู่หนังสือของเขา “JavaScript: The Good Parts”
-
เปิดตัว Phoenix 0.1 บรรพบุรุษของ Firefox
- ชุมชน Mozilla พัฒนา Phoenix ซึ่งเป็นเบราว์เซอร์น้ำหนักเบา เพื่อตอบโต้ความเทอะทะของชุดผลิตภัณฑ์เดิม
- มาพร้อมฟีเจอร์ล้ำสมัยอย่างแท็บเบราว์ซิงและการบล็อกป๊อปอัป → ต่อมาพัฒนาเป็น Firefox
[2003]
-
Apple เปิดตัว Safari และ WebKit
- การเปิดตัว เบราว์เซอร์ Safari และเอนจิน WebKit ช่วยให้ Mac ลดการพึ่งพา Microsoft
- ต่อมากลายเป็นรากฐานของ Mobile Safari บน iPhone
[2004]
-
Gmail และ AJAX
- อินเทอร์เฟซของ Gmail ที่อิงกับ AJAX ได้เสนอเกณฑ์มาตรฐานใหม่ของ UX สำหรับเว็บแอป
- แลกเปลี่ยนข้อมูลกับเซิร์ฟเวอร์ได้โดยไม่ต้องรีโหลดทั้งหน้า → การเปิดฉากของยุค Web 2.0
[2005]
-
การนิยามคำว่า AJAX อย่างชัดเจน
- Jesse James Garrett ทำให้แนวคิด “AJAX” กลายเป็นคำที่นิยามอย่างชัดเจน
- วางกรอบ โครงสร้างการสื่อสารกับเซิร์ฟเวอร์แบบอะซิงโครนัส ผ่านการผสาน JavaScript + XML
-
การเริ่มต้นของ Mozilla DevMo → พัฒนาเป็น MDN
- จุดเริ่มต้นของ MDN ศูนย์กลางเอกสาร JavaScript ที่ยึดตามมาตรฐาน
- มอบหลักอ้างอิงแบบรวมศูนย์สำหรับเอกสารการรองรับเบราว์เซอร์ที่เคยกระจัดกระจาย
[2006]
-
การปรากฏตัวของ jQuery
- John Resig เริ่มโครงการ jQuery
- มีส่วนสำคัญอย่างมากในการแก้ปัญหา cross-browser ในด้านการจัดการ DOM, event, AJAX ฯลฯ
- แพร่หลายอย่างรวดเร็วด้วย API ที่กระชับ
[2007]
-
การเปิดตัว iPhone และการไม่รองรับ Flash
- Apple เปิดตัว iPhone และ Safari ไม่รองรับ Flash
- สิ่งนี้เร่งให้เกิดการเปลี่ยนผ่านไปสู่ คอนเทนต์ที่อิงกับ HTML+JavaScript ในสภาพแวดล้อมมือถือ
[2008]
-
การสิ้นสุดอย่างเป็นทางการของ Netscape Navigator
- AOL ยุติการพัฒนา Netscape ถือเป็น การสิ้นสุดของสงครามเบราว์เซอร์ครั้งแรก
- การผูกขาดของ IE โดย Microsoft นำไปสู่คดีต่อต้านการผูกขาดในเวลาต่อมา
-
การตีพิมพ์ JavaScript: The Good Parts
- หนังสือของ Crockford เป็นจุดเปลี่ยนที่ทำให้ JavaScript ถูก ประเมินใหม่ในฐานะภาษาเพื่อการพัฒนาอย่างมืออาชีพ
-
Google Chrome และการเปิดตัวเอนจิน V8
- พร้อมกับการเปิดตัว Chrome ก็มีการเผยแพร่ เอนจิน JavaScript V8
- JIT compilation และ การปรับแต่ง garbage collection ช่วย ยกระดับประสิทธิภาพอย่างมาก
- ต่อมากลายเป็น รากฐานของการขยายไปสู่ฝั่งเซิร์ฟเวอร์ เช่น Node.js
[2009]
-
การปรากฏตัวของ CommonJS
- เป็นความพยายามสร้างมาตรฐานให้ โค้ด JS แบบโมดูลาร์ ใช้งานได้ในสภาพแวดล้อมนอกเบราว์เซอร์ เช่น เซิร์ฟเวอร์
- ต่อมากลายเป็นรากฐานของโครงสร้างโมดูลใน ecosystem ของ Node.js
-
เริ่มต้นโครงการ Node.js
- Ryan Dahl เริ่มพัฒนา Node.js
- ทำให้ JavaScript สามารถรันในสภาพแวดล้อมเซิร์ฟเวอร์ ได้ และขยายไปสู่การเป็น ภาษาแบบฟูลสแตก
-
Oracle เข้าซื้อกิจการ Sun Microsystems
- พร้อมกับ Java สิทธิ์เครื่องหมายการค้า JavaScript ก็ถูกโอนไปยัง Oracle
- ทำให้เกิดประเด็นเรื่องเครื่องหมายการค้าของชื่อ JavaScript
-
การปรากฏตัวของ Express.js
- คอมมิตแรกของ Express.js ซึ่งเป็น เว็บเฟรมเวิร์ก บน Node.js
- เสนอโครงสร้างแบบมิดเดิลแวร์ที่เน้นการสร้าง REST API
-
ประกาศ ECMAScript 5
- มี strict mode, รองรับ
JSON, เพิ่มเมธอดArrayฯลฯ เป็นการ จัดระเบียบรากฐานของฟีเจอร์ JS สมัยใหม่
- มี strict mode, รองรับ
-
การปรากฏตัวของ CoffeeScript
- เป็นการทดลองปรับปรุงไวยากรณ์ก่อนยุค ES6 เช่น ไวยากรณ์ที่กระชับ, arrow function, destructuring
- ต่อมามีอิทธิพลทางอ้อมต่อการพัฒนาไวยากรณ์ของ JavaScript
[2010]
-
เปิดตัว npm 1.0
- npm ตัวจัดการแพ็กเกจสำหรับ JavaScript เปิดตัวอย่างเป็นทางการ และเริ่ม ทำให้การแชร์และการนำโค้ดกลับมาใช้ซ้ำเป็นมาตรฐาน
- ปัจจุบันเติบโตเป็นโอเพนซอร์สรีจิสทรีที่ใหญ่ที่สุดในโลก โดยมีแพ็กเกจมากกว่า 3 ล้านรายการ
-
เปิดตัว WebStorm 1.0
- JetBrains เปิดตัว IDE สำหรับ JavaScript โดยเฉพาะเป็นครั้งแรก
- ให้ความสามารถแบบรวมศูนย์ทั้ง static analysis, การตรวจจับข้อผิดพลาด, การเติมโค้ดอัตโนมัติ, การดีบัก
-
การมาถึงของ AngularJS & Backbone.js
- จุดเริ่มต้นของกระแสเฟรมเวิร์ก SPA
- Angular เน้น เชิงประกาศ/การฉีด dependency ส่วน Backbone เน้น เชิงกระบวนการ/ความเรียบง่าย
- ตั้งแต่ช่วงนี้เริ่มเกิดปรากฏการณ์ การเกิดและหายไปของเฟรมเวิร์กอย่างถี่ ("Framework churn")
[2011]
-
การพอร์ต Node.js ไปยัง Windows
- จากความร่วมมือระหว่าง Joyent และ Microsoft ทำให้ Node.js สามารถทำงานบน Windows ได้
- พัฒนาไลบรารี libuv → มอบแพลตฟอร์มแบบรวมสำหรับ asynchronous I/O
- ต่อมาเป็นจุดเริ่มต้นของแนวทางโอเพนซอร์สของ Microsoft ที่ต่อยอดไปสู่ TypeScript, VSCode และกลยุทธ์ Azure
[2012]
-
การมาถึงของ Webpack
- ในฐานะเครื่องมือ bundling สำหรับเว็บแอสเซ็ต ได้ ขยายระบบโมดูลไปสู่ฝั่งไคลเอนต์
- ต่อมาถูกนำไปใช้เป็นระบบ build หลักของ React, Angular, Vue เป็นต้น
-
เปิดตัว TypeScript 0.8
- Microsoft เปิดตัว ซูเปอร์เซ็ตของ JavaScript ที่อิง static type
- มอบโครงสร้างที่เหมาะกับโปรเจ็กต์ขนาดใหญ่ และต่อมาส่งอิทธิพลต่อมาตรฐาน ES
[2013]
-
Atom Shell ต้นแบบของ Electron เริ่มต้นขึ้น
- ทำให้สามารถพัฒนาแอปเดสก์ท็อปด้วย HTML/CSS/JS ได้
- เมื่อนำไปใช้ใน Slack, Visual Studio Code เป็นต้น ก็ได้เปลี่ยนแนวทางการพัฒนาเดสก์ท็อป
-
เปิดตัว asm.js
- แปลงโค้ด C/C++ เป็น JS ทำให้สามารถประมวลผล สมรรถนะสูง ภายในเบราว์เซอร์ได้
- ต่อมาพัฒนาไปเป็น WebAssembly
-
นิยามสแตก MEAN
- ตั้งชื่อให้กับชุด MongoDB + Express + Angular + Node.js
- ทำให้แนวทางการพัฒนาแบบฟูลสแตกบนพื้นฐาน JavaScript แพร่หลาย
-
เปิดตัว React
- Facebook ใช้งานภายในก่อนแล้วจึงเปิดเป็นโอเพนซอร์ส
- ทำให้แนวคิด การพัฒนา UI แบบคอมโพเนนต์ กลายเป็นมาตรฐาน
-
เริ่มพัฒนา ESLint
- เครื่องมือ linting แบบ ขยายต่อได้ ที่เริ่มโดย Nicholas C. Zakas
- ด้วยความสามารถในการปรับแต่งที่สูงกว่า linter เดิม ๆ จึงแพร่หลายอย่างรวดเร็ว
-
เปิดตัว Gulp
- ต่างจาก Grunt ที่เน้นการตั้งค่า โดยเป็น เครื่องมือ build แบบสตรีมมิงที่อิงโค้ด
- ก่อให้เกิดกระแสการทำงาน build อัตโนมัติด้วย JavaScript
[2014]
-
เปิดตัว Vue.js
- เฟรมเวิร์ก UI แบบค่อยเป็นค่อยไป ที่ประกาศโดย Evan You
- เป็นการประนีประนอมระหว่าง UI แบบเชิงประกาศของ React และความสามารถด้านเทมเพลตของ Angular
-
การเข้าซื้อ Express.js
- StrongLoop เข้าซื้อ Express.js → ต่อมาถูก IBM เข้าซื้ออีกทอดหนึ่ง
- ความกังวลเรื่องความเป็นอิสระของชุมชนทำให้เกิด เฟรมเวิร์กถัดมาอย่าง Koa
-
เริ่มต้น Babel.js (เดิมชื่อ 6to5)
- ทำให้ ไวยากรณ์ JS สมัยใหม่สามารถรันบนเบราว์เซอร์รุ่นเก่าได้
- กลายเป็น transpiler มาตรฐานของทุกเฟรมเวิร์ก
-
เปิดตัว Meteor 1.0
- ได้รับความสนใจในฐานะเครื่องมือพัฒนาเว็บแอปแบบเรียลไทม์และสแตกเดียว
- ต่อมาส่งอิทธิพลต่อเทคโนโลยีเรียลไทม์อย่าง GraphQL และ Firebase
-
Facebook เปิดตัว Flow
- เครื่องมือตรวจสอบ static type เพื่อจับข้อผิดพลาดของ JS ล่วงหน้า
- ต่อมาอัตราการใช้งานลดลงจากการเติบโตของ TypeScript
-
ประกาศ AWS Lambda
- นำ serverless computing บนพื้นฐาน JavaScript(Node.js) มาใช้
- ทำให้สามารถสร้างแบ็กเอนด์ได้โดยไม่ต้องจัดการอินฟราสตรักเจอร์ ผ่าน การรันฟังก์ชันตามอีเวนต์
-
การแตกแขนง io.js
- ชุมชนแยก io.js ออกมาเพื่อตอบโต้การออกรุ่น Node.js ที่ล่าช้าของ Joyent
- ต่อมาถูกรวมกลับเข้า Node.js อีกครั้งในปี 2015
[2015]
-
การเกิดขึ้นของคำว่า Jamstack
- เน้นชุดผสม JavaScript + API + Markup
- เมื่อแนวทาง SSR และ SSG ได้รับความนิยม static site generator ก็เริ่มโดดเด่นขึ้น
-
การก่อตั้ง Node.js Foundation
- ปรับโครงสร้าง governance ของชุมชน รวมถึงการรวมกับ io.js
- มีบริษัทหลักอย่าง IBM และ Microsoft เข้าร่วม
-
เปิดตัว GraphQL
- ภาษา query สำหรับ API ที่พัฒนาโดย Facebook
- มีจุดเด่นที่แนวทางเชิงประกาศ การออกแบบแบบ strongly typed และการลดคำขอไปยังเซิร์ฟเวอร์
-
เปิดตัว Redux
- state container ที่คาดการณ์ได้ สำหรับการจัดการ state ของ React
- ต่อมาถูกนำไปใช้ใน Vue, Angular เป็นต้น
-
ประกาศ WebAssembly
- ทำให้ รันโค้ดสมรรถนะสูงอย่าง C/C++ ในเบราว์เซอร์ได้
- เข้ามาเป็นรุ่นถัดจาก asm.js และกลายเป็นสภาพแวดล้อมรันงานอเนกประสงค์ของเว็บ
-
เปิดตัว Atom 1.0
- text editor ที่ดัดแปลงได้สำหรับแฮ็กเกอร์ซึ่งสร้างโดย GitHub และใช้ Electron
- มีอิทธิพลโดยตรงต่อ VSCode
-
ประกาศ ECMAScript 6 (ES2015) อย่างเป็นทางการ
- มี การปรับปรุงไวยากรณ์ครั้งใหญ่ เช่น
import/export,let/const,Promise,fetch - เป็นเวอร์ชันที่กลายมาเป็นพื้นฐานของ JavaScript ยุคใหม่
- มี การปรับปรุงไวยากรณ์ครั้งใหญ่ เช่น
-
การรวม Node.js และ io.js
- การเปิดตัว Node.js v4.0 ทำให้ทั้งสองโปรเจ็กต์กลับมารวมเป็นหนึ่ง
- วางรากฐานนโยบาย LTS และนโยบายเวอร์ชันที่มีความหมาย
[2016]
-
Microsoft โอเพนซอร์สเอนจิน Chakra
- โอเพนซอร์ส Chakra ซึ่งเป็นเอนจิน JS ของเบราว์เซอร์ Edge
- ได้รับความสนใจจากชุมชนนักพัฒนา แต่ภายหลังยุติลงเพราะเสียเปรียบ V8
-
เกิดเหตุการณ์ Leftpad
- การลบโมดูล
left-padทำให้เกิด วิกฤตการพังทลายของการพึ่งพาแพ็กเกจ ในวงกว้าง - กลายเป็นจุดเปลี่ยนนโยบายของ npm
- การลบโมดูล
-
เปิดตัว VSCode 1.0
- IDE น้ำหนักเบา ที่สร้างบน Electron และ TypeScript
- ได้รับความนิยมอย่างรวดเร็วจากความเร็วสูง การขยายต่อได้ และการรองรับ JS/TS ที่ยอดเยี่ยม
-
ประกาศ ECMAScript 2016
- อัปเดตขนาดเล็ก เช่น ตัวดำเนินการ
**และarray.includes()
- อัปเดตขนาดเล็ก เช่น ตัวดำเนินการ
-
ประกาศ Angular2
- สถาปัตยกรรมคอมโพเนนต์บนพื้นฐาน TypeScript ที่แตกต่างจาก AngularJS โดยสิ้นเชิง
- ด้วย AOT compilation และการเสริมความปลอดภัย ทำให้กลายเป็นตัวเลือกสำหรับองค์กร
-
เปิดตัว Next.js 1.0
- เฟรมเวิร์ก server-side rendering บนพื้นฐาน React
- ผลักดันการทำให้ การพัฒนา React แบบฟูลสแตกเป็นมาตรฐาน โดยคำนึงถึง SEO และประสิทธิภาพ
[2017]
-
คอมมิตแรกเริ่มของข้อเสนอ Temporal
- ข้อเสนอ Temporal API เพื่อแก้ปัญหาของออบเจ็กต์
Date - ได้รับอนุมัติให้รวมในมาตรฐาน ECMAScript ในปี 2021 และปัจจุบันยังรองรับเพียงบางสภาพแวดล้อม
- ข้อเสนอ Temporal API เพื่อแก้ปัญหาของออบเจ็กต์
-
เปิดตัว Prettier 1.0
- formatter ที่ บังคับใช้รูปแบบโค้ดที่สม่ำเสมอโดยอัตโนมัติ
- ยังส่งอิทธิพลต่อการเกิดขึ้นของ Black ของ Python และ formatter ของ Rust
-
เปิดตัว ECMAScript 2017
- นำฟีเจอร์ JS ยุคใหม่อย่าง
async/await,Object.entries(),Object.values()มาใช้ - ทำให้การใช้
fetch()กลายเป็นเรื่องทั่วไป
- นำฟีเจอร์ JS ยุคใหม่อย่าง
-
เปิดตัว Yarn
- package manager เพื่อแก้ปัญหาความช้าและความขัดแย้งของ npm
- นำฟีเจอร์ใหม่อย่าง
yarn.lock, การติดตั้งแบบขนาน และแคชเข้ามา
-
เปิดตัว Cloudflare Workers
- การเปิดฉากของยุค edge computing
- ทำให้ โค้ด serverless สามารถรันแบบกระจายทั่วโลก ได้
[2018]
-
เปิดตัว Puppeteer 1.0
- เครื่องมืออัตโนมัติเบราว์เซอร์บนพื้นฐาน headless Chrome
- มอบความกระชับกะทัดรัดเมื่อเทียบกับ Selenium ด้วย API ที่เป็นมิตรกับ Node.js
-
เปิดตัว TensorFlow.js
- ทำให้สามารถรันแมชชีนเลิร์นนิงในเบราว์เซอร์ได้
- สร้างแอป AI แบบเรียลไทม์บนพื้นฐาน WebGL/WebGPU
-
Smooshgate
- เนื่องจากการชนกันของชื่อ
Array.flattenจึงถูกเปลี่ยนเป็นflat() - มีที่มาจากปัญหาความเข้ากันได้กับ MooTools
- เนื่องจากการชนกันของชื่อ
-
Ryan Dahl ประกาศ Deno
- เปิดตัว รันไทม์ Deno ระยะแรก พร้อมการทบทวนปัญหาของ Node
-
เปิดตัว ECMAScript 2018
- เพิ่ม
promise.finally(),async iteration, object rest/spread
- เพิ่ม
[2019]
-
การก่อตั้ง OpenJS Foundation
- รวม Node.js Foundation และ JavaScript Foundation
- รวม governance ของโปรเจ็กต์ฝั่งเซิร์ฟเวอร์/ไคลเอนต์
-
Node.js v12: เริ่มรองรับ ESM แบบทดลอง
- เริ่มนำการทดลองใช้ ES module ผ่าน
.mjs,type: moduleเป็นต้น
- เริ่มนำการทดลองใช้ ES module ผ่าน
-
เปิดตัว ECMAScript 2019
- เพิ่ม
Object.fromEntries(),String.prototype.trimStart()เป็นต้น
- เพิ่ม
-
Node.js v13.2: ESM เสถียรอย่างเป็นทางการ
[2020]
-
SpaceX Dragon พา JS สู่อวกาศ
- ใช้ JavaScript ในอินเทอร์เฟซหน้าจอสัมผัสที่อิง Chromium
-
เปิดตัว Deno 1.0
- แนวทางที่พลิกใหม่อย่าง รองรับ TypeScript โดยค่าเริ่มต้น, โมเดลสิทธิ์อนุญาต, HTTP import เป็นต้น
-
Adobe Flash ยุติการให้บริการอย่างเป็นทางการ
- การลงหลักปักฐานของสภาพแวดล้อมเว็บมัลติมีเดียที่มี JS เป็นศูนย์กลาง
[2022]
-
Deno เข้าร่วม TC39
- ประกาศ มีส่วนร่วมในการกำหนดมาตรฐาน JavaScript
-
ยุติการรองรับ IE11
- ปิดฉากการเปลี่ยนผ่านสู่ระบบนิเวศเว็บที่อิงมาตรฐาน
-
ประกาศ ECMAScript 2022
- เพิ่ม
top-level await, static block ของคลาส เป็นต้น
- เพิ่ม
[2023]
-
เปิดตัว Bun 1.0
- รันไทม์ทางเลือกแทน Node.js ความเร็วสูงมากที่พัฒนาด้วย Zig
- รองรับ npm และรวมเครื่องมือ build มาในตัว
[2024]
-
Node.js เลือกมาสคอต Rocket Turtle
- ยืนยันตัวละครสุดท้ายผ่านการประกวดของชุมชน
-
เปิดตัว ECMAScript 2024
- เสริมความสามารถการจัดการ Unicode เช่น
toWellFormed()
- เสริมความสามารถการจัดการ Unicode เช่น
-
เปิดตัวรีจิสทรี JSR
- รีจิสทรีสำหรับโมดูล ECMAScript สมัยใหม่โดยเฉพาะ จากทีม Deno
- ใช้งานร่วมกับ TypeScript, Deno, Bun และ Cloudflare Workers ได้
-
เริ่มต้นขบวนการ FreeJavaScript
- แคมเปญเรียกร้องให้ Oracle คืนเครื่องหมายการค้า JavaScript
- บุคคลสำคัญอย่าง Brendan Eich ร่วมลงนาม
-
เปิดตัว Deno 2
- ปรับปรุงความเข้ากันได้กับ Node และถึงขั้นทำโฆษณา ทำให้ สงครามรันไทม์เริ่มเดือดอย่างจริงจัง
[2025]
-
ประกาศพอร์ต TypeScript ไปยัง Go
- กำลังดำเนินโครงการ
tsgoโดยตั้งเป้า ประสิทธิภาพเร็วขึ้นมากกว่า 10 เท่า - มีแผนจะนำมาใช้เป็นทางการตั้งแต่ TypeScript 7.0
- กำลังดำเนินโครงการ
-
ประกาศโอเพนซอร์ส Copilot Chat
- Microsoft ประกาศกลยุทธ์เปลี่ยน VSCode ให้เป็น AI development IDE แบบโอเพนซอร์ส
[สรุป]
- JavaScript เริ่มต้นจากการเป็นภาษา scripting แบบเรียบง่าย และได้พัฒนาจนเป็น ภาษาสำหรับการพัฒนาทั่วไป ที่ครอบคลุมตั้งแต่ เว็บฟรอนต์เอนด์·แบ็กเอนด์·แมชชีนเลิร์นนิง·อวกาศยาน·AI development IDE
- ชุมชนโอเพนซอร์ส การพัฒนาไวยากรณ์อย่างต่อเนื่อง และนวัตกรรมด้านรันไทม์คือแรงขับเคลื่อนการเติบโตนี้ และต่อจากนี้ก็มีแนวโน้มจะ ขยายจากเว็บไปสู่ขอบเขตที่กว้างขึ้น พร้อมเครื่องมือที่เร็วกว่าและฉลาดกว่าเดิม
10 ความคิดเห็น
ตอนนี้มันกลายเป็นมาตรฐานของตัวการนำไปใช้จริงมากกว่าจะเป็นภาษาไปแล้ว... ไม่ว่าจะชอบหรือไม่ก็ตาม ผมว่ามันคงกลายเป็นไวยากรณ์ที่ต้องแบกรับมรดกเก่าต่อไปแล้วล่ะ
ขอบคุณสำหรับข้อมูลดี ๆ ครับ
IE 3 แทบจะห่วยมาก และตอนนั้น Navigator 3 แทบจะเป็นมาตรฐานอยู่แล้ว แต่พอ IE 4 ออกมา สถานการณ์ก็พลิกกลับเลย ยิ่งไปกว่านั้น IE 4 ยังติดตั้งมากับ Windows เป็นค่าเริ่มต้นด้วย
แม้ว่า Navigator 4 จะออกมาแล้ว แต่ก็ดีไม่พอที่จะพลิกสถานการณ์ได้ ดังนั้นส่วนแบ่งตลาดของ IE ก็ยังเพิ่มขึ้นต่อไป
พอ Navigator เปลี่ยนไปเป็นโอเพนซอร์ส ก็เกิดโครงการ Mozilla ขึ้นมา และเมื่อ Phoenix เวอร์ชันเบตาออกมา ตอนนั้นผู้ใช้น่าจะเริ่มรู้สึกได้เลยว่ามีอะไรเปลี่ยนไปมาก รวมถึงผมด้วย เพราะปัญหาเรื่องเครื่องหมายการค้า จึงเปลี่ยนชื่อเป็น Firefox และนับจากตอนนั้น Firefox ก็เริ่มกลายเป็นคู่แข่งตัวจริงของ IE
น่าจะเปลี่ยนชื่อจาก Phoenix -> Firebird -> Firefox แบบนี้ น่าจะเป็นเพราะมีฐานข้อมูลชื่อ Firebird อยู่ก่อนแล้ว
อ่านไปเรื่อย ๆ แล้วพอมาถึงช่วงกลาง ๆ ก็รู้สึกจุกขึ้นมาเลยครับ
ทั้งเหมือนว่าเพิ่งเกิดขึ้นไม่นานนี้เอง แต่ก็เหมือนเป็นเรื่องเก่ามาก ๆ แล้วเหมือนกัน...
ต้นฉบับเรียบเรียงไว้ดีมากเลยนะครับ มีทั้งภาพหน้าจอและโค้ดชวนคิดถึงด้วย...! หวังว่า Deno จะไปได้ดียิ่งขึ้นนะครับ 555
ดูเหมือนว่าพัฒนาการของ JavaScript จะแบ่งได้เป็นช่วงก่อนและหลังการเปิดตัวของ Node.js
เห็นด้วยครับ
พร้อมกับ Java เครื่องหมายการค้า JavaScript ก็ถูกโอนไปยัง Oracle ด้วย เพิ่งรู้ส่วนนี้เป็นครั้งแรกเหมือนกัน
เดิมทีเครื่องหมายการค้า JS เป็นของ Sun แต่พอ Sun ถูกซื้อกิจการไป เครื่องหมายการค้า JS (รวมถึง MySQL เป็นต้น) ก็ถูกโอนไปยัง Oracle ด้วย
ต้นฉบับมีทั้งภาพและโค้ดหลากหลายส่วน แนะนำให้เปิดดูควบคู่กันไปด้วย