• Thứ Tư, 01/06/2005 11:03 (GMT+7)

    10 năm Java – chặng đường đã qua và phía trước

    Mười năm sau khi Java được chính thức công bố vào tháng 5 năm 1995, giấc mơ về một nền tảng phần mềm hiện diện khắp nơi và hỗ trợ cho thế giới nối mạng đang dần trở thành hiện thực.


    Mười năm sau khi Java được chính thức công bố vào tháng 5 năm 1995, giấc mơ về một nền tảng phần mềm hiện diện khắp nơi và hỗ trợ cho thế giới nối mạng đang dần trở thành hiện thực.

    Java, có tên ban đầu là Oak, là một phần trong dự án Green của hãng Sun. Dự án này được bắt đầu từ tháng 12 năm 1990 với 3 thành viên gồm Patrick Naughton, Mike Sheridan và James Gosling (người cuối cùng là kiến trúc sư trưởng của Java, được xem như “cha đẻ” của Java). Ngay từ ngày đó, các kiến trúc sư Java đã tiên đoán về một thế giới nối mạng phủ khắp, kết nối tất cả các loại thiết bị với nhau và tạo nên môi trường làm việc cộng tác tuyệt vời. Đó là thời điểm chỉ vài năm trước khi trình duyệt Mosaic ra mắt và World Wide Web ra đời.

    Kim Polese, nguyên giám đốc sản phẩm Java thời đó, nhớ lại: Chúng tôi biết mình có một công nghệ mạnh, nhưng có khó khăn trong việc tìm nền tảng thích hợp để làm bệ phóng cho nó. Những bước thăm dò ban đầu trong lĩnh vực truyền hình tương tác và PDA mới mẻ tỏ ra non nớt, nhưng sự kiên trì của chúng tôi được đền đáp khi xuất hiện phiên bản đầu tiên của trình duyệt Mosaic.

    Mosaic chỉ hiển thị văn bản và hình ảnh tĩnh. Cái còn thiếu chính là sự tương tác: Khả năng chạy chương trình trong trang web, hiển thị ảnh động và đáp ứng thời gian thực. Nhận thấy World Wide Web là môi trường lý tưởng để làm bệ phóng cho Java, các kiến trúc sư Java đã phát triển HotJava, trình duyệt tương tác đầu tiên cho phép hiển thị ảnh động và thông tin (như tỉ giá ngoại tệ, giá chứng khoán...) theo thời gian thực trên web.

    Về mặt kỹ thuật, Java đã phá bỏ những rào cản nền tảng hệ thống. Nó giải phóng các nhà phát triển phần mềm khỏi sự lệ thuộc phần cứng, và cho phép họ viết ứng dụng một lần cho nhiều hệ điều hành khác nhau. Java rất linh hoạt. Là một ngôn ngữ lập trình, Java được thiết kế đủ nhỏ để có thể chạy trên các thiết bị di động có tài nguyên hạn chế, nhưng cũng đủ mạnh để hỗ trợ các ứng dụng phức tạp. Bằng cách sử dụng máy ảo, Java có thể giải quyết những vấn đề bảo mật đã cản trở những cố gắng trước đó nhằm tạo chương trình có tính khả chuyển trên nhiều nền tảng hệ thống.

    Chặng đường đã qua
    Chưa đầy một năm sau khi ra mắt chính thức, tháng 1 năm 1996, bộ công cụ đầy đủ dành cho phát triển ứng dụng Java, JDK 1.02 (Java Development Kit) được phát hành. Phiên bản JDK 1.1 được tung ra một năm sau đó và được nâng cấp dần trong nhiều năm, cuối cùng kết thúc với phiên bản 1.1.8.
    JDK 1.1 giới thiệu mô hình JDBC (Java Database Connectivity) dùng cho truy xuất cơ sở dữ liệu, RMI (Remote Method Invocation) dùng cho đối tượng phân tán và JavaBean dùng cho giao tiếp ứng dụng phía client. Mô hình JavaBean đưa ra phương thức getter/setter rất mạnh nhưng đồng thời cũng giới thiệu những hàm đầy tai tiếng trong AWT (Abstract Window Toolkit) có thể gây khó khăn cho việc gỡ bỏ về sau. AWT còn đưa ra mô hình ủy thác sự kiện được sử dụng ở một giai đoạn khác trên lộ trình Java, dự án Swing.
    Dự án Swing, hay thành phần JFC (Java Foundation Classes), đã có một hành trình riêng trước khi được tích hợp vào JDK. Không biết có ai còn nhớ nhóm phát triển trình duyệt Netscape đã phát triển công nghệ gọi là IFC (Internet Foundation Classes) và chính công nghệ này được dùng làm cơ sở cho JFC. JFC là bộ công cụ đồ họa thuần tuý Java và yêu cầu sự hỗ trợ rất ít từ AWT. Swing có những tính năng mới như kéo-thả. Mã lệnh Swing được tích hợp vào JDK 1.2.
    JDK 1.2 được dự tính gọi là JDK 2.0. Do ngày phát hành gần thời khắc thiên niên kỷ, năm 2000, ngay cả tên Java 2000 cũng đã được xem xét. Cuối cùng tên gọi Java 2 phiên bản 1.2 được chọn. Bản phát hành này không có Swing, nhưng có API Collections, một thư viện dựng hình Java 2D và âm thanh mới. Hai công nghệ mới này sử dụng các sản phẩm của hãng khác và việc tích hợp chúng đã gây không ít khó khăn. Một số lỗi do việc tích hợp này đã không được sửa cho đến tận phiên bản 1.4 và J2SE 5.0 (được đổi số hiệu từ 1.5).
    Có thể nhiều nhà phát triển không nhớ phiên bản 1.2.1. Đây là bản sửa lỗi bảo mật có cuộc sống ngắn ngủi. Bản sửa lỗi thực sự là 1.2.2. JDK 1.2.2 là phiên bản đưa ra JVM trên Linux lần đầu tiên. Máy ảo Java (JVM - Java Virtual Machine) này được gọi là JVM kinh điển và sử dụng trình biên dịch JIT (Just-In-Time compiler).
    Trong khi đó, Hotspot JVM lẳng lặng chờ thời. Sun đã mua lại công nghệ này dùng để đẩy mạnh Smalltalk và đã tốn nhiều công sức phát triển. Khác với trình biên dịch JIT, sản phẩm Hotspot là bản JVM hoàn chỉnh với đầy đủ sức mạnh, sử dụng các kỹ thuật thu “rác” mới và quản lý tiến trình tốt hơn.
    J2SE 1.3 được phát hành trong năm 2000 và đưa ra Hotspot JVM cho tất cả nền tảng, tuy nhiên phải đến phiên bản 1.3.1, JVM này mới được hỗ trợ đầy đủ.
    Những sự kiện trong 5 năm qua hẳn chưa phai nhoà trong ký ức mọi người. J2SE 1.4 xuất hiện vào năm 2002 và đưa ra NIO (New I/O), Java Web Start, JVM 64-bit và chú trọng Swing, cải tiến tốc độ và API lưu ký (log). Tiếp đó là bản nâng cấp 1.4.1 hỗ trợ một số tính năng của nền tảng Itanium và các cơ chế thu “rác” mới. J2SE 1.4.2 là bản nâng cấp cuối cùng của 1.4.
    Đánh giá đây là bước phát triển lớn, Sun quyết định đổi số hiệu 1.5 (tên mã Tiger) thành J2SE 5.0 hiện tại, tập trung cải tiến thời gian khởi động, các tính năng ngôn ngữ mới và giám sát hệ thống.

    Tương lai Java
    Tin vui cho “fan” của Java, các phiên bản 6.0 (tên mã “Mustang”, dự kiến phát hành vào giữa năm 2006) và 7.0 sẽ nối dài lộ trình Java đến năm 2008. Đặc biệt, hãng Sun đã gián tiếp đề cập đến tương lai Java thông qua một số phát biểu gần đây về chính sách bản quyền mới, tuy vẫn chưa phải là nguồn mở. Động thái này trấn an dư luận lo ngại về việc Sun sẽ “giết chết” Java theo đường lối “đóng cửa”. Cả đặc tả JVM và ngôn ngữ Java giờ đây đều đã chín muồi đủ để tách thành tổ chức độc lập, đây là điều đã từng được hứa hẹn vào những ngày đầu của Java và giờ đã đến lúc thực hiện cam kết này với các nhà phát triển khắp thế giới.

    Trong một cuộc thuyết trình hồi đầu năm, James Gosling đã nhận định tương lai Java sẽ là những hệ thống “không biên giới” – các hệ thống có thể liên lạc với nhau dễ dàng và thông suốt, hay một thế giới nối mạng phủ khắp. Theo ông, tương lai của Java không giới hạn trên các hệ thống PC mà là tất cả hệ thống có thể “nhúng” chương trình, ví dụ điện thoại di động. Nếu bạn nhìn vào các điện thoại di động hiện nay, bạn sẽ thấy chúng có năng lực tương đương như PC cách đây 6 hay 7 năm. Hãy nhìn vào những gì người ta đang làm với PDA và những thứ tương tự.

    Hậu Java? Theo Guy L., Steele Jr., người vừa đoạt giải thưởng Excellence in Programming Award 2005 của tạp chí Dr. Dobbs Journal (tạp chí hàng đầu về lập trình) và là đồng tác giả đặc tả Java (cùng với James Gosling), các ngôn ngữ lập trình cũng có tuổi thọ và Java có thể tồn tại trong khoảng 20 năm nữa. Đó là lúc xuất hiện một ngôn ngữ lập trình mới. Hiện Guy lãnh đạo một nhóm nghiên cứu nhằm tạo ra một ngôn ngữ lập trình mới tốt hơn Java có tên là Fortress. Đây là một phần trong dự án lớn của Sun thiết kế nhắm đến hệ thống siêu máy tính trong tương lai. Dự án này được sự tài trợ của DARPA (cơ quan nghiên cứu quốc phòng Mỹ), tổ chức khởi xướng Internet.

    Phương Uyên (tổng hợp)

    Từ khóa: Phương Uyên
    ID: A0505_109