Anonystick

anonystick@gmail.com

ECMAScript 4 - Vì sao nó không xuất hiện

Trong khi sử dụng ECMAScript hầu hết mỗi lập trình viên đều không quan tâm đến phiên bản, một số ít quan tâm mà có nhận ra rằng chỉ có ECMAScript 3 và 5 trở lên nhưng sao không bao giờ thấy ECMAScript 4. Tại sao lại như vậy? Nếu như bạn hay ai đó có những câu hỏi như vậy hoặc chưa biết thì có thể cùng tôi quay về lịch sử một chút, nhìn nhận lại vì sao điều đó lại xảy ra.


Lịch sử của ECMAScript


Đầu tiên quay về lịch sử của ECMAScript một chút ta thấy, một số điều sau đây như phải mất 15 năm để ES6 được phát triển từ đầu cho đến bản phát hành cuối cùng. Theo wiki - Như đã đề cập trước đó, ECMAScript 1.0 được phát hành vào năm 1997, và trong hai năm tiếp theo, ECMAScript 2.0 (tháng 6 năm 1998) và ECMAScript 3.0 (tháng 12 năm 1999) lần lượt được phát hành. Phiên bản 3.0 là một thành công lớn, đã được hỗ trợ rộng rãi trong ngành và trở thành một tiêu chuẩn chung, đặt ra cú pháp cơ bản của ngôn ngữ JavaScript và các phiên bản tiếp theo sẽ được kế thừa hoàn toàn. 

Cho đến ngày nay, khi người mới bắt đầu học JavaScript, họ thực sự đang học ngữ pháp của phiên bản 3.0. Năm 2000, ECMAScript 4.0 bắt đầu được cho ra mắt. Nhưng phiên bản này cuối cùng lại không thành công, nhưng phần nào đó được an ủi đó là hầu hết chức năng nội dung của nó đã được ES6 kế thừa. Do đó, điểm khởi đầu cho ES6 thực sự là 2000.


Tại sao ES4 missing?


Thứ nhất bởi vì phiên bản này quá cấp tiến, ES3 đã được nâng cấp hoàn toàn, điều này khiến một số thành viên của ủy ban tiêu chuẩn không muốn chấp nhận nó. Ủy ban Kỹ thuật 39 (TC39) của ECMA chịu trách nhiệm xây dựng các tiêu chuẩn ECMAScript và các thành viên của nó bao gồm các công ty lớn như Microsoft, Mozilla và Google. Thêm một thông tin nữa vào tháng 10 năm 2007, phiên bản dự thảo của ECMAScript 4.0 được phát hành và phiên bản chính thức dự kiến sẽ được phát hành vào tháng 8 năm sau. 

Tuy nhiên, có những bất đồng nghiêm trọng về việc có nên thông qua tiêu chuẩn này hay không. Các công ty lớn, đứng đầu là Yahoo, Microsoft và Google, phản đối việc nâng cấp đáng kể JavaScript và ủng hộ những thay đổi nhỏ; Mozilla, do người sáng tạo JavaScript là đại ca Brendan Eich đứng đầu, nhấn mạnh về bản dự thảo hiện tại. Vào tháng 7 năm 2008, do các bên có quá nhiều bất đồng và tranh luận quá nhiều về những chức năng nào nên được đưa vào phiên bản tiếp theo, ECMA đã quyết định tạm dừng phát triển ECMAScript 4.0 và phát hành một phần nhỏ liên quan đến cải tiến các chức năng hiện có như ECMAScript 3.1, và mở rộng phạm vi của các ý tưởng cấp tiến khác và đưa chúng vào các phiên bản sau. Do không khí của cuộc họp, mã dự án của phiên bản này được đặt tên là ES6 Harmony. 

Ngay sau cuộc họp, ECMAScript 3.1 được đổi tên thành ECMAScript 5. Tháng 12 năm 2009, ECMAScript phiên bản 5.0 chính thức được phát hành. Dự án ES6 Harmony được chia làm hai. Một số ý tưởng khả thi hơn được đặt tên là JavaScript.next và tiếp tục được phát triển, sau đó phát triển thành ECMAScript 6. Hãy cân nhắc tung ra một lần nữa. Sự xem xét tổng thể của ủy ban TC39 là ES5 về cơ bản tương thích với ES3 và các sửa lỗi ngữ pháp chính và các tính năng mới được thêm vào, sẽ được hoàn thiện bởi JavaScript.next. Vào thời điểm đó, JavaScript.next đề cập đến ES6 và sau khi phiên bản thứ sáu được phát hành, nó đề cập đến ES7. Nhận định của TC39 là ES5 sẽ trở thành tiêu chuẩn chủ đạo cho sự phát triển JavaScript vào giữa năm 2013 và sẽ duy trì vị trí này trong 5 năm tới.


  • Vào tháng 6 năm 2011, ECMAScript phiên bản 5.1 được phát hành và trở thành tiêu chuẩn quốc tế ISO (ISO / IEC 16262: 2011). 
  • Vào tháng 3 năm 2013, bản nháp ECMAScript 6 bị đóng băng và không có tính năng mới nào được thêm vào. Các tính năng mới sẽ được đưa vào ECMAScript 7. Vào tháng 12 năm 2013, bản thảo ECMAScript 6 đã được phát hành. Sau đó là khoảng thời gian thảo luận kéo dài 12 tháng để lắng nghe phản hồi từ tất cả các bên. 
  • Tháng 6 năm 2015, ECMAScript 6 chính thức được thông qua và trở thành tiêu chuẩn quốc tế. Tính từ năm 2000, đã 15 năm trôi qua.


Hiện tại, bạn có thể xem hỗ trợ của các trình duyệt chính cho ES6 tại kangax.github.io/compat-table/es6/


Node.js check ES6


Node.js thì tips javascript đã nói qua nhiều về sức mạnh của nó, như lượng connect đồng thời sao, đa luồng chứ không hên đơn luồng như mọi người vẫn nghĩ. Node.js là môi trường thời gian chạy máy chủ (runtime) của JavaScript. Nó có hỗ trợ cao hơn cho ES6. Ngoài các chức năng được bật theo mặc định, có một số chức năng cú pháp đã được thực hiện, nhưng chúng không được bật theo mặc định. Sử dụng lệnh sau để xem cú pháp thử nghiệm ES6 không được bật theo mặc định trong Node.js.

// Linux & Mac
$ node --v8-options | grep harmony

// Windows
$ node --v8-options | findstr harmony

Bài viết có lấy một số thông tin tại: learn ECMAScript