Sự ra đời của Java

Bài viết này giới thiệu về sự ra đời của ngôn ngữ lập trình Java.
Tài liệu tham khảo:
Chapter 1, Patrick Naughton and Herbertz Schidt, “Java –2 The Complete Reference” , Fifth edition, Tata McGraw-Hill Publishing Company Limited.
—————————————————————–
Nền tảng được thiết lập cho Java
Vào cuối thập niên 80 và đầu thập niên 90, ngôn ngữ lập trình hướng đối tượng C++ được sử dụng phổ biến. Dường như các lập trình viên đã tìm được một ngôn ngữ lập trình hoàn hảo. Bởi vì C++ pha trộn tính hiệu quả cao và các yếu tố phong cách C với mô hình hướng đối tượng. Tuy nhiên, cũng như trong quá khứ, một lần nữa đã thay đổi sự phát triển của ngôn ngữ máy tính. Chỉ trong vòng vài năm, World Wide Web và Internet đã đến với số đông. Điều này chuẩn bị cho một cuộc cách mạng trong ngôn ngữ lập trình.

Sự ra đời của Java
Java được hình thành bởi James Gosling, Patrick Naughton, Chris Warth, Ed Frank, và Mike Sheridan tại Sun Microsystems năm 1991. Sau hơn 18 tháng để phát triển phiên bản đầu tiên. Ngôn ngữ này lúc đầu được gọi là “Oak” nhưng sau đó được đổi tên thành Java vào năm 1995. Ở giữa khoảng thời gian của phiên bản đầu tiên năm 1992 và thông báo công khai của Java vào năm 1995, nhiều người đã đóng góp vào sự thiết kế và tiến hóa của ngôn ngữ này.
Đáng ngạc nhiên là sự thúc đẩy ban đầu của Java không phải là Internet. Thay vào đó động cơ chính là sự cần thiết của một ngôn ngữ có nền tảng độc lập (hay là kiến trúc trung lập) có thể được dùng để tạo ra phần mềm được nhúng trong nhiều thiết bị tiêu dùng điện tử khác nhau. Ta có thể đoán được, nhiều kiểu CPU được dùng như là bộ điều khiển. Vấn đề rắc rối đối với C và C++ (hay hầu hết các ngôn ngữ khác) là chúng được thiết kế để được biên dịch cho một đối tượng nhất định. Mặc dù có thể biên dịch một chương trình C++ cho bất cứ loại CPU nào, để làm điều đó đòi hỏi một trình biên dịch C++ đầy đủ cho CPU đó. Vấn đề là trình biên dịch đó rất đắt đỏ và mất nhiều thời gian để tạo ra nó. Vì vậy cần một giải pháp dễ dàng và hiệu quả hơn. Trong nỗ lực để tìm ra giải pháp đó, Gosling và các đồng nghiệp bắt đầu làm việc trên một ngôn ngữ linh động và độc lập với nền tảng, nó có thể được dùng để sinh ra mã có thể thực thi được trên các CPU khác nhau dưới các môi trường khác nhau. Sự cố gắng này cơ bản dẫn đến sự ra đời của Java.
Nhiều đặc điểm của Java bắt nguồn từ C và C++. Những người thiết kế Java biết rằng sử dụng cú pháp tương tự C sử dụng đặc trưng hướng đối tượng của C++ sẽ làm cho ngôn ngữ này lôi cuốn được nhiều các lập trình viên C/C++ có kinh nghiệm. Thêm vào đó, Java chia sẻ một vài tính chất khác làm cho C và C++ thành công.
Trước hết, Java được thiết kế, thử nghiệm và cải tiến bởi thực tế của các lập trình viên. Nó là một ngôn ngữ dựa vào sự cần thiết và kinh nghiệm của những người đã nghĩ ra nó. Vì thế Java cũng là một ngôn ngữ của các lập trình viên. Thứ hai, Java có tính liên kết và logic nhất quán. Thứ ba, không kể đến hạn chế bắt buộc của môi trường Internet, Java mang đến cho lập trình viên khả năng điều khiển đầy đủ. Nếu một chương trình làm việc tốt hay tồi, chương trình đó phản ánh đúng chính nó. Java không phải là một ngôn ngữ lập trình để tập tập dượt mà là một ngôn ngữ dành cho các lập trình viên chuyên nghiệp
Bởi vì những đặc điểm tương tự giữa Java và C++, người ta có thể nghĩ đơn giản Java là phiên bản Internet của C++. Tuy nhiên, không hoàn toàn phải vậy. Java có ý nghĩa thực thực tế và nguyên lý khác. Trong khi Java chịu ảnh hưởng của C++ nhưng nó không phải là một phiên bản nâng cao của C++. Ví dụ, Java không tương thích với bất cứ phiên bản nào của C++. Dĩ nhiên, sự tương đồng với C++ có ý nghĩa là nếu bạn là lập trình viên C++, bạn sẽ cảm thấy dễ dàng khi làm việc với Java. Một điểm khác: Java không phải được thiết kế để thay thế cho C++. Java được thiết kế để giải quyết các vấn đề đang tồn tại. C++ được thiết kế để giải quyết các vấn đề dạng khác. Cả hai sẽ cùng tồn tại trong nhiều năm nữa.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s