openplanning

Lịch sử của Java và sự khác biệt giữa Oracle JDK và OpenJDK

  1. Sơ lược lịch sử Java
  2. JVM và khẩu hiệu của Java
  3. JDK, JRE là gì?
  4. OpenJDK vs Oracle JDK

1. Sơ lược lịch sử Java

Java được khởi xướng bởi James Gosling và các bạn đồng nghiệp ở Sun Microsystems năm 1991. Từ ý tưởng muốn lập trình để điều khiển mà không phụ thuộc vào loại CPU cho các thiết bị điện tử như tivi, máy giặt, lò nướng... Do đó, họ đã bắt tay vào xây dựng một ngôn ngữ chạy nhanh, gọn, hiệu quả, độc lập thiết bị và ngôn ngữ “Oak” ra đời, sau đó được đổi tên thành Java.
James Gosling
Ban đầu Java được đặt tên là "Oak" (Cây sồi) bởi vì đây là cây được trồng rất phổ biến tại Mỹ, Đức, Romania,... và được xem là như biểu tượng của nước đó, biểu tượng của sức mạnh. Xung quanh căn phòng làm việc của James Gosling cũng trồng rất nhiều cây sồi.
Oak tree
Năm 1995, Oak đã được đổi tên thành Java bởi vì cái tên Oak đã được đăng ký trước đó bởi một công ty có tên Oak Technologies. Đây cũng là năm ra đời phiên bản đầu tiên của Java, như vậy để có được phiên bản Java đầu tiên các kỹ sư của Sun Microsystems đã làm việc chăm chỉ trong suốt 4 năm, từ năm 1991 đến năm 1995. Trong thời gian này họ đã làm việc ngày đêm, họ đã uống rất nhiều Cà phê và Trà, các đồ uống này giúp họ rất nhiều, những chiếc cốc luôn có mặt trong phòng làm việc của họ.
Tại sao cái tên Java được chọn?
Có rất nhiều cái tên được đưa ra để các thành viên lựa chọn, chẳng hạn Dynamic, Revolutionary, Silk, Jolt, DNA, … Họ muốn cái gì đó mà phản ánh đúng bản chất của công nghệ, đó là: một cuộc cách mạng, có tính động cao, duy nhất, và phát âm dễ dàng, ...
Java là một hòn đảo ở Indonesia, ở nơi này sản phẩm cà phê đầu tiên được sản xuất (gọi là java coffee), hơn nữa cà phê đã gắn bó với các kỹ sư trong suốt 4 năm làm việc để cho ra đời phiên bản Java đầu tiên, đó là lý do tại sao hầu hết các thành viên trong nhóm lựa chọn cái tên Java và vì sao biểu tượng của Java là cốc cà phê bốc khói nghi ngút thơm lừng.
Theo James Gosling thì Java là một trong những lựa chọn hàng đầu cùng với Silk. Tuy nhiên, vì Java có tính duy nhất hơn, nên hầu như tất cả thành viên trong nhóm đều lựa chọn Java.

2. JVM và khẩu hiệu của Java

Mục đích lớn nhất của Java là làm sao một chương trình được viết ra có thể chạy được trên các nền tảng khác nhau. Câu khẩu hiệu nổi tiếng của Java"Write Once and Run Anywhere - WORA" (Viết một lần và chạy được ở mọi nơi).
Trước khi Java ra đời, một chương trình được viết ra và được biên dịch (compile) thành mã máy (machine code) chạy trên hệ điều hành Windows sẽ không thể chạy được trên hệ điều hành Linux, bởi vì có quá nhiều sự khác biệt.
Các kỹ sư của Sun Microsystems đã tạo ra JVM (Java Virtual Machine) (Máy ảo Java) để cài đặt trên các nền tảng (platform) khác nhau như Windows, Linux, Mac,.
Các chương trình viết bằng ngôn ngữ Java được biên dịch (compile) thành Byte Code, một mã đặc biệt có thể chạy được trong môi trường JVM. JVM giúp thông dịch các Byte Code thành mã của máy vật chủ (host machine). Đây chính là nguyên tắc tại sao Java có thể chạy được trên các nền tảng khác nhau.

3. JDK, JRE là gì?

JRE
JRE là từ viết tắt của Java Runtime Environment (Môi trường chạy Java), nó bao gồm JVM (Máy ảo Java) và một số thư viện Java giúp thực thi các chương trình viết bằng ngôn ngữ Java.
JDK
JDK là từ viết tắt của Java Development Kit (Bộ phát triển Java), nó bao gồm 2 thành phần JREJava Development Tools (Các công cụ phát triển Java).
JDK cần thiết cho các lập trình viên vì Java Development Tools cung cấp các công cụ để phát triển ứng dụng Java, chẳng hạn Javac giúp biên dịch (compile) các mã nguồn của lập trình viên thành Byte Code,.. sau đó sử dụng JRE để chạy ứng dụng trong quá trình phát triển.

4. OpenJDK vs Oracle JDK

Dưới đây là bảng mô tả lịch sử các phiên bản của Java.
Version
Release
date
End of Free
Public Updates
Extended
Support Until
JDK Beta
1995
?
?
JDK 1.0
January 1996
?
?
JDK 1.1
February 1997
?
?
J2SE 1.2
December 1998
?
?
J2SE 1.3
May 2000
?
?
J2SE 1.4
February 2002
October 2008
February 2013
J2SE 5.0
September 2004
November 2009
April 2015
Java SE 6
December 2006
April 2013
December 2018
Java SE 7
July 2011
April 2015
July 2022
Java SE 8 (LTS)
March 2014
January 2019 for Oracle (commercial)
December 2020 for Oracle (personal use)
At least September 2023 for AdoptOpenJDK
At least June 2023 for Amazon Corretto
December 2030
Java SE 9
September 2017
March 2018 for OpenJDK
N/A
Java SE 10
March 2018
September 2018 for OpenJDK
N/A
Java SE 11 (LTS)
September 2018
At least August 2024 for Amazon Corretto
September 2022 for AdoptOpenJDK
September 2026
Java SE 12
March 2019
September 2019 for OpenJDK
N/A
Java SE 13
September 2019
March 2020 for OpenJDK
N/A
Java SE 14
March 2020
September 2020 for OpenJDK
N/A
Java SE 15
September 2020
March 2021 for OpenJDK
N/A
Java SE 16
March 2021
September 2021 for OpenJDK
N/A
Java SE 17 (LTS)
September 2021
TBA
TBA
Một sự kiện lớn xẩy ra vào tháng 10 năm 2009, Oracle mua Sun Microsystem, như vậy Java đã chính thức thay đổi chủ sở hữu. Hãy chú ý tới thời điểm trước và sau năm 2009.
Các phiên bản Java từ 1 đến 6 được phát triển bởi Sun Microsystem, họ mở mã nguồn của Java cho tất cả mọi người trên thế giới.
Tháng 7 năm 2011, Oracle phát hành Java 7, họ đã phát hành 2 biến thể khác nhau của JDKOracle JDKOpenJDK, thời điểm đó mã nguồn của 2 biến thể này không có quá nhiều sự khác biệt, bởi vì chúng đều được thừa kế từ JDK 6.
OpenJDK
OpenJDK được mở mã nguồn, nó được bảo trì và phát triển bởi Oracle, nhưng cho phép cộng đồng và các công ty khác tham gia vào sự phát triển này, chẳng hạn như Red Hat, Azul Systems, IBM, Apple Inc... OpenJDK vừa là một sản phẩm JDK vừa là một đặc tả (specification), bất kỳ một công ty, tổ chức nào muốn sử dụng OpenJDK để tạo ra một biến thể mới phải tuân thủ các đặc tả đó.
OpenJDK được phát triển bởi Oracle và sự đóng góp từ cộng đồng, đôi khi chúng ta gặp vấn đề với sự ổn định, dựa trên phản hồi của người dùng nó sẽ được nâng cấp để tốt hơn. OpenJDK được cập nhập thường xuyên, khoảng 6 tháng một lần.
Oracle JDK
Oracle JDK được bảo trì và phát triển bởi Oracle, và tuân thủ các đặc tả của OpenJDK, nhưng nó không được mở mã nguồn. Oracle JDK tốt hơn nhiều về khả năng đáp ứng và hiệu năng JVM. Nó tập trung nhiều hơn vào sự ổn định do tầm quan trọng của nó đối với khách hàng doanh nghiệp của mình.
Có thể bạn đặt ra câu hỏi "Thế nào là một đặc tả (specification)?", hãy xem một ví dụ, một tổ chức quy định ra kích thước của một cái lốp xe đạp, đó là một đặc tả, và các nhà sản xuất cần tuân thủ quy định đó, đặc tả không quan tâm làm thế các nhà sản xuất làm ra cái lốp xe.
OpenJDK được phát hành theo giấy phép "GPL v2", trong khi Oracle JDK được phát hành theo "Oracle Binary Code License Agreement".

Java cơ bản

Show More