STDIO
Tìm kiếm gần đây

    Nội dung

    Lược Sử ECMAScript

    05/07/2020
    11/07/2020
    Lược Sử ECMAScript
    Quá trình hình thành, lịch sử ra đời của JavaScript qua các giai đoạn thăng trầm.

    Khai sinh JavaScript

    ... vào tháng 5 năm 1995, bởi Brendan Eich khi ông còn ở Netscape.

    Tên đầu tiên của JavaScript là Mocha, được đặt bởi người sáng lập Netscape là Marc Andreessen, sau đó 4 tháng Mocha được đổi tên thành LiveScript.

    Vào thời điểm đó, Sun Microsystems sở hữu thương hiệu (trademark) cho cái tên JavaScript. Netscape đã mua giấy phép của họ và đổi tên LiveScript thành JavaScript vào tháng 12 năm 1995. Việc sử dụng cái tên JavaScript mang nhiều ý nghĩa về marketing, không có ý nghĩa về mặt kỹ thuật vì cái tên Java trong thời điểm đó rất nổi tiếng.

    ECMAScript

    Từ năm 1996 đến 1997, Netscape đưa JavaScript vào tổ chức Ecma International để trau chuốt và bảo trì đặc tả ngôn ngữ cho phép các nhà cung cấp trình duyệt khác phát triển dựa nền tảng họ đã thực hiện.

    Uỷ ban kỹ thuật Ecma 39 (TC39) được thành lập để tiếp tục phát triển ngôn ngữ và cuối cùng cho release ECMA-262 Ed.1 vào tháng 6 năm 1997. ECMAScript là tên của tiêu chuẩn chính thức và JavaScript là phiên bản ngôn ngữ nổi tiếng nhất của chuẩn này. ActionScript (Macromedia) và JScript (Microsoft) là hai ví dụ về các phiên bản ngôn ngữ khác.

    Các phiên bản JavaScript được xác định bởi thông số kỹ thuật mang tên chính thức của ngôn ngữ. Ví dụ, phiên bản tiêu chuẩn đầu tiên của JavaScript là ECMAScript 1 và hiện tại thường được viết tắt thành ESX và X đã được thay đổi vào năm 2016 khi TC39 chuyển sang release hàng năm.

    Cách thức các tính năng ra đời

    Tất cả các tính năng trong ECMAScript (ES) đều trải qua một quy trình đề xuất chính thức.

    Một đề xuất cho một tính năng mới thường bắt nguồn từ cộng đồng giữa các nhà phát triển, bắt đầu bằng một bản phác thảo hoặc một đề xuất, cung cấp một mô tả ban đầu về tính năng được đề xuất. Nếu TC39 đánh giá tính năng này hữu ích, nó sẽ được chuyển sang giai đoạn Proposal - đề xuất.

    Giai đoạn tiếp theo là In Implementation theo đó tính năng sẽ được hiện thực bằng 2 engine JavaScript. Các hiện thực này cùng với phản hồi từ cộng đồng developer giúp định hình đề xuất trong quá trình phát triển nó. Cuối cùng, nếu đề xuất tiếp tục chứng minh là có giá trị, TC39 sẽ chấp nhận và tính năng này sẽ được thêm vào phiên bản tiếp theo của ECMAScript và được xem là một Standard - tiêu chuẩn.

    Thăng trầm của ECMAScript

    ECMAScript 1, ECMAScript 2, ECMAScript 3

    Tháng 6, năm 1997, ECMAScript 1 phiên bản tiêu chuẩn đầu tiên cho ngôn ngữ JavaScript được phát hành.

    1998, ECMAScript 2 được phát hành với các thay đổi nhỏ để giữ đồng bộ song song với chuẩn ISO cho JavaScript.

    18 tháng sau vào tháng 12, năm 1999, ECMAScript 3 được phát hành, giới thiệu nhiều tính năng phổ biến của JavaScript mà chúng ta đang sử dụng như regex, try/catch và format cho numeric output.

    ECMAScript 4 - Bị ruồng bỏ

    Đầu năm 2000, ECMAScript 4 bắt đầu được xây dựng, và đây là 1 "big update" - một bản nâng cấp khổng lồ cho ES3 và thậm chí còn có tên mã JavaScript 2.

    Năm 2003, TC39 phát hành một bản sơ bộ chỉ chứa một số chức năng dành cho ES4. JScript của Microsoft và ActionScript của Adobe đã triển khai một số tính năng này nhưng đã dừng hoàn toàn sau khi bản sơ bộ đó được phát hành.

    Trong khoảng thời gian này, một kỹ thuật mới cho việc tạo các ứng dụng web động client-side sử dụng JavaScript đã xuất hiện, mang lại một chút phục hưng cho JavaScript. Các thư viện công cụ JavaScript như jQuery, Prototype, Dojo và Mootools đều được phát hành trong giai đoạn tái sinh JavaScript này. Jesse James Garrett đưa ra cách tiếp cận mới là “AJAX” vào tháng 2 năm 2005.

    Đây rất có thể là lý do tại sao TC39 được chọn để tái lập và tiếp tục công việc trên ES4 vào mùa thu năm 2005. ES4 được phát triển tiếp tục dựa trên ES3, bản báo cáo ES4 sơ bộ và vài phần từ ActionScript và JScript.

    Tuy nhiên, khi TC39 kết hợp lại thì lại chia thành 2 phe riêng biệt. Ở một bên là ECMAScript 4 Camp, gồm Adobe, Mozilla, Opera & Google, những người hướng về bản nâng cấp lớn. Ở bên còn lại là Microsoft & Yahoo, ECMAScript 3.1 Camp, tìm kiếm một tập con của ES4, và là một bản nâng cấp của ES3 chứa một số tính năng nhỏ và sửa lỗi.

    Xung đột diễn ra khá sâu, may mắn là vào tháng 7 năm 2008 tại một cuộc họp ở Oslo, Na Uy, một thỏa hiệp đã được đề ra:

    • Về cơ bản, ECMAScript 3.1 sẽ trở thành ECMAScript 5 - bản nâng cấp của ES3.
    • TC39 phát triển một bản release chính mới sẽ là phiên bản thu nhỏ của ES4, nhưng phạm vi lớn hơn so với ES5. Bản release chính này có tên mã là Harmony và là phần lớn của những gì chúng ta biết bây giờ là ECMAScript 6.
    • Một số tính năng khác của kế hoạch ES4 ban đầu bị loại bỏ để được chọn trong các phiên bản tiếp theo.
    • Sự thỏa hiệp đã khiến ECMAScript 4 bị hủy bỏ, nhưng một quyết định mới được thông qua rằng mọi ý tưởng mới sẽ được phát triển với sự đồng thuận của TC39 để ngăn chặn các rủi ro trong tương lai.

    ECMAScript 5 - Phiên bản ổn định

    ECMAScript 5 - bản nâng cấp ES3 được phát hàh vào tháng 12 năm 2009, hơn một thập kỷ sau ES3. Đây là phiên bản JavaScript được hỗ trợ đầy đủ trong tất cả các trình duyệt đang sử dụng ngoại trừ Internet Explorer 8.

    Được thêm một số cải tiến vào thư viện tiêu chuẩn:

    • Hỗ trợ parse/serialize JSON
    • Các phương thức array prototype (như map và forEach)
    • Các phương thức liệt kê thuộc tính (như Object.keys).

    Cập nhật cú pháp:

    • Cho phép dấu phẩy ở cuối danh sách hoặc định nghĩa đối tượng
    • Cho phép các từ khoá (như new hoặc for) làm thuộc tính đối tượng
    • strict mode, giúp JavaScript trở thành ngôn ngữ sạch hơn bằng cách chặn một số tính năng, thực hiện kiểm tra runtime và xử lý được nhiều exception.

    ECMAScript 6 - Làn gió mới

    ECMAScript 6, là phiên bản cập nhật với nhiều điều mới mẻ, dự định phát hành vào năm 2013, nhưng không được phát hành chính thức cho đến tháng 6 năm 2015.

    ECMAScript Harmony là tên mã cho nhóm các tính năng sau ES5 nhưng các mục tiêu của nhóm tính năng này vẫn còn quá xa vời, vì vậy TC39 đã quyết định chia thành hai giai đoạn:

    • Các tính năng ưu tiên cao nhất sẽ có trong bản release tiếp theo của ECMAScript, có tên mã là ECMAScript.next để không lặp lại thất bại như ECMAScript 4.
    • Các tính năng còn lại sẽ được xem xét vào các phiên bản sau.

    Khi ECMAScript.next đủ lông đủ cánh, tên mã bị loại bỏ và bắt đầu được biết đến như ECMAScript 6, hoặc đơn giản là ES6. Tuy nhiên, vào cuối năm 2014, TC39 đổi tên ECMAScript 6 thành ECMAScript 2015 theo kế hoạch mới để phát hành ECMAScript hàng năm. Vào thời điểm này, tiêu chuẩn đã được biết đến rộng rãi là ECMAScript 6, vì vậy hầu hết mọi người vẫn gọi và đề cập nó là ES6.

    Các tính năng của ES6 dần được đưa vào trình thông dịch của các trình duyệt và máy chủ:

    • Trình duyệt Edge mới của Microsoft hỗ trợ 67% tính năng ES6 được hỗ trợ.
    • Firefox 11 (phát hành vào tháng 3 năm 2012) là trình duyệt đầu tiên hỗ trợ ES6.
    • Các transpiler như Babel và Tracer cho phép bạn chuyển đổi code ES6 xuống code ES5 để tương thích với các trình duyệt.

    Bài viết được tham khảo từ Wikipedia.

    JavaScript

    STDIO Training - Đào tạo lập trình Frontend - Backend.

    Thảo luận

    In order to comment you must be a STDIO Insider. Please sign up or log in to continue.

    Đăng nhập

    Bài viết liên quan

    Thỏa Thuận Sử Dụng Dịch Vụ STDIO

    Thỏa Thuận Sử Dụng Dịch Vụ STDIO

    Thỏa thuận này quy định về điều kiện giao kết hợp đồng, quyền lợi, nghĩa vụ và các vấn đề pháp lý khác có liên quan đến người sử dụng, người đọc, người viết khi truy cập ...

    STDIOChính sách

    07/04/2014

    Khác Biệt Giữa Java và JavaScript

    Khác Biệt Giữa Java và JavaScript

    Cơ bản nguồn gốc của Java và JavaScript, sự khác nhau của Java và JavaScript.

    Đời Con BọSự nghiệp

    10/08/2020

    Tính Hiệu Quả Và Khả Thi Trong Việc Sử Dụng Hệ Thống Chơi Game Thực Tại Ảo Tại Gia Cho Người Lớn Tuổi

    Tính Hiệu Quả Và Khả Thi Trong Việc Sử Dụng Hệ Thống Chơi Game Thực Tại Ảo Tại Gia Cho Người Lớn Tuổi

    Hệ thống chơi game thực tại ảo có thể sử dụng cho người lớn tuổi tại gia, từ đó tạo điều kiện cho các hoạt động thể chất để cải thiện các khiếm khuyết, các hoạt động bị ...

    Kanzaki Nguyen

    14/08/2015

    Một Số Hàm Xử Lý Đồ Hoạ Trong PHP

    Một Số Hàm Xử Lý Đồ Hoạ Trong PHP

    Ngày nay, nhu cầu về sử dụng đồ hoạ đang bùng nổ rất mạnh mẽ, kéo theo sự phát triển của các thư viện đồ hoạ trong những năm gần đây. Bài viết ra đời, nhằm cung cấp đến ...

    Ryan Lê

    30/03/2015

    Xử Lý Sự Kiện Trong SDL

    Xử Lý Sự Kiện Trong SDL

    Xử lý sự kiện trong game vô cùng quan trọng, đòi hỏi chúng ta phải thao tác với bàn phím, chuột, hay touch đối với những dòng có màn hình cảm ứng. Framework SDL có hỗ trợ ...

    Nguyễn Nghĩa

    13/10/2015

    Thao Tác Với MySQL Database Sử Dụng MySQLi Extension Trong PHP

    Thao Tác Với MySQL Database Sử Dụng MySQLi Extension Trong PHP

    Việc thao tác với database trong quá trình phát triển và bảo trì website là công việc thường xuyên đối với những lập trình viên. Với mỗi database được tích hợp trong ...

    Nguyễn Nghĩa

    07/11/2015

    BigData - Xu Thế Hay Điều Tất Yếu Đang Xảy Ra

    BigData - Xu Thế Hay Điều Tất Yếu Đang Xảy Ra

    BigData là một khái niệm, để miêu tả về một khối lượng dữ liệu lớn, khổng lồ. Lớn đến mức dữ liệu không thể lưu trữ trong các hệ thống cơ sở dữ liệu quan hệ truyền thống. ...

    Lê Minh Trung

    26/05/2015

    5 Lý Do Kiến Trúc Sư Nên Học Lập Trình

    5 Lý Do Kiến Trúc Sư Nên Học Lập Trình

    Trong AutoCAD có hỗ trợ lập trình với Python, Revit có thể viết tự động với C++, đây là tiền đề cho việc tự động hóa các công việc thủ công của các kỹ sư và kiến trúc sư ...

    STDIO TrainingGóc nhìn

    09/08/2020

    Gửi Email Sử Dụng PHP

    Gửi Email Sử Dụng PHP

    Trong lập trình web, đôi khi trang web phải cần có ý kiến hay sự phản hồi từ người sử dụng. Vậy làm thế nào mà chúng ta nhận thông điệp từ người sử dụng? Đó là một kiểu ...

    Phạm Hoài Nguyên

    24/11/2016

    Xử Lý Sự Kiện Trong Cocos2d-x 3.x.x

    Xử Lý Sự Kiện Trong Cocos2d-x 3.x.x

    Bài viết nằm trong loạt bài viết chương trình Tự Học Cocos2d-x 3.x.x. Trong bài viết sẽ giới thiệu khái niệm các loại sự kiện trong cocos2d-x và các ví dụ hiện thực các ...

    Trương Xuân Đạt

    23/01/2015

    STDIO
    Trang chính
    Công ty TNHH STDIO

    30, Trịnh Đình Thảo, Hòa Thạnh, Tân Phú, Hồ Chí Minh
    +84 28.36205514 - +84 942.111912
    developer@stdio.vn

    383/1 Quang Trung, Phường 10, Quận Gò Vấp, Hồ Chí Minh
    Số giấy phép ĐKKD: 0311563559 do sở Kế hoạch và Đầu Tư TPHCM cấp ngày 23/02/2012

    ©STDIO, 2013 - 2020