ĐỂ GIỮ CHO JAVA LUÔN HẤP DẪN

Một lần nữa xin điểm lại chủ đề kỷ niệm 10 năm ra đời ngôn ngữ lập trình Java. Cách đây hơn 2 tháng tớ có viết một bài với chủ đề Java - 10 năm nhìn lại để ký niệm dịp này. Đó là một bài viết dựa trên chính những gì tớ cảm nhận và hiểu về Java. Tuy nhiên, với một người chỉ mới học Java hơn 1 năm như tớ thì có lẽ những gì tớ thấy và hiểu về Java có lẽ là chưa đủ sâu để viết về một chủ đề như vậy. Hơi tiếc nhưng cũng rất mừng vì đã nhận được rất nhiều ý kiến từ nhiều phía thẳng thắng chỉ ra những chỗ tớ chưa thật sự hiểu.
Lần này, thay vì tự viết, tớ xin giới thiệu đến các bạn bài báo chính thức của tạp chí Infoworld số tuần này (số 26 năm 2005). Đây là số chuyên đề về hội nghị JavaOne diễn ra cuối tháng vừa rồi và cũng để chính thức kỷ niệm 10 năm ra đời của Java. Bài báo có tên "Keeping Java Hot" (tớ tạm dịch như tiêu đề của bài này) và bản dịch đầy đủ của tớ có thể đọc trong bài (kèm một biểu đồ ghi lại những cột mốc chính trong lịch sử Java 10 năm)…
ĐỂ GIỮ CHO JAVA LUÔN HẤP DẪN
Thập kỷ đầu tiên của Java đã chứng tỏ nó là một công nghệ có khả năng thích ứng một cách đáng chú ý. Được thai nghén như là một kiểu ngôn ngữ dùng cho các thiết bị tiêu dùng, Sun Microsystems giới thiệu Java năm 1995 như một thứ ngôn ngữ lập trình dành cho các trình duyệt Web. Java nhanh chóng được áp dụng để xây dựng các công cụ hàng đầu cho các doanh nghiệp cũng như trong các ứng dụng tối quan trọng. Nói theo một cách nào đó, Java chính là sự kế tục và thừa hưởng những ưu điểm của cả Cobol và C++.
Ngày nay, Java là một nền tảng tất yếu của các ứng dụng quy mô lớn của các doanh nghiệp nhờ vào khả năng mở rộng cũng như những dịch vụ vô cùng phong phú mà nó cung cấp. Thêm vào đó, ngôn ngữ lập trình Java có vô số những tính năng rất hấp dẫn đối với người phát triển như mô hình hướng đối tượng, cấu trúc mã rất dễ hiểu tương tự như C và C++, có ít các cấu trúc không an toàn và đặc biệt là cơ chế “dọn dẹp” bộ nhớ tự động tích hợp sẵn. Với những tính năng đó, thật dễ hiểu tại sao có thể chắc chắn rằng Java sẽ vẫn là thứ ngôn ngữ và môi trường thực thi chủ yếu của các ứng dụng quy mô doanh nghiệp trong nhiều năm tới.
Để đạt được ví trí trung tâm này, Java đã trải qua rất nhiều quá trình chuyển đổi lớn. Để tiếp tục giữ được vị trí hiện tại, nó sẽ cần phải tiếp tục thích ứng với các công nghệ mới và giải quyết các thử thách trước mắt ngay bên trong cộng đồng phát triển.
ĐỦ NHANH?
Một trong những lợi thế quan trọng mà Java cung cấp cho các nhà phát triển là nó hạn chế các lỗi thực hành thường thấy trong C và C++ vốn có thể dẫn đến các lỗi do sơ xuất. Máy ảo Java tự động đảm nhận việc quản lý bộ nhớ và giảm thiểu nhu cầu quản lý dữ liệu ở mức thấp, nhưng bù lại nó ảnh hưởng khá lớn đến tốc độ thực thi.
Các chương trình được viết sử dụng các phiên bản đầu của Java chậm hơn rất nhiều so với phiên bản tương tự viết bằng C và C++. Tuy nhiên, bởi vì rất nhiều những chương trình Java tại thời điểm đó chỉ là các applet (các ứng dụng Java được “nhúng” vào các trang web và hiển thị qua trình duyệt), giới hạn này không quá quan trọng mà chỉ hơi khó chịu đối với người dùng. Mặc dù vậy, càng về sau khi mà Java càng được sử dụng trong môi trường doanh nghiệp lớn, câu hỏi về tốc độ thực thi càng ngày càng trở thành một vấn đề cần quan tâm.
Vấn đề về tốc độ trên đã được giải quyết theo cả 2 hướng. Định luật Moore về tốc độ xử lý của CPU (tốc độ xử lý tăng gấp đôi sau mỗi 18 đến 24 tháng) giúp làm giảm thiểu thời gian trễ do quá trình biên dịch mã của Java. Hướng giải quyết thứ hai xuất phát từ chính những cải tiến bên trong cơ chế biên dịch “just-in-time” (JIT) (cơ chế biên dịch mã tức thì tại thời điểm chạy). Các JIT ban đầu tạo ra các mã với tốc độ khá chậm, nhưng các phiên bản JIT cải tiến thực hiện bởi các nghiên cứu tại các cơ quan học thuật đầu tư bởi các công ty như IBM và Sun, đặc biệt là sản phẩm thực hiện bởi những đồng nghiệp người Thụy Điển tại Appeal Virtual Machines (mua lại bởi BEA năm 2002), đã giúp tối ưu hóa và nén môi trường thực thi.
Ngày nay, chỉ số tốc độ (benchmark) cho thấy Java đã xóa dần khoảng cách giữa nó và các bật tiền bối C hay C++. Bộ thu gom rác tự động (tức cơ chế tự thu hồi các vùng bộ nhớ không cần nữa để dành cho các ứng dụng khác cần đến) vẫn là một trong những nhân tố quan trọng nhất khiến làm giảm tốc độ thực thi. Tuy nhiên, những lợi ích mà tính năng này đem lại là rất lớn khiến hầu hết những nhà phát triển đều cho là xứng đáng với những gì bị mất.
VIẾT MỘT LẦN, SAU ĐÓ LÀM GÌ?
Lần đầu tiên ra mắt, khẩu hiệu chính của Java là “viết một lần, chạy mọi nơi” (write once, run everywhere). Tuy nhiên, thực tế mà những người phát triển Java gặp phải đã tạo ra một phiên bản mới cho khẩu hiệu này: “Viết một lần, sửa lỗi khắp nơi” (Write once, debug everywhere).
Thật sự mà nói, những vấn đề tương thích phổ biến của Java hiện tại chỉ tập trung trong lĩnh vực phần mềm tương tác với khách hàng. Ngày nay, thậm chí phần lớn những vấn đề trên cũng đã được giải quyết với sự thành công của cấu trúc đồ họa GUI (GUI framework).
Một khi những người phát triển bỏ qua một bên những định kiến của họ, họ sẽ nhận ra rằng mặc dù chưa thật hoàn hảo, Java đã thực hiện tốt nhất về khả năng tương thích so với các ngôn ngữ cạnh tranh khác: không còn mấy ai nghi ngờ về khả năng tương thích của Java. Điều này đặc biệt đúng đối với với các phần mềm máy chủ chạy trên nền tảng J2EE bao gồm các tương tác cơ sở dữ liệu, các logic kinh doanh và phương thức trình bày dữ liệu trên giao diện web.
MÃ NGUỒN MỞ VÀ CỘNG ĐỒNG
Cùng với sự phổ biến của Java, những đóng góp từ cộng đồng phát triển bên ngoài cũng càng ngày càng được mở rộng. Hiện tại, các dự án như dự án JBoss của tổ chức Apache Software (Apache Software Foundation), Eclipse hay NetBeans IDEs là một trong số ít hàng ngàn dự án mã nguồn mở Java đang được thực hiện. Rất nhiều những công ty đã có những đóng góp to lớn cho sự phát triển của Java mà nổi bật nhất là IBM với dự án Eclipse (Eclipse sử dụng khá nhiều mã từ những mã nguồn mở của IBM). Mặt khác, IBM cũng đã cho mở mã nguồn của rất nhiều những dự án khác bao gồm cả Cloudscape, hệ thống cơ sở dữ liệu nhúng.
Có rất nhiều những công nghệ hữu ích như Struts (một cấu trúc giao diện web) đã trở thành những phần không thể thiếu trong quá trình phát triển Java doanh nghiệp – và quá trình này thậm chí không cần phải thông báo cho Sun. Tuy nhiên, đôi khi những công nghệ mới được đề nghị đưa vào thư viện gốc của Java. Những người muốn đóng góp cho sự phát triển của Java thường có những góc nhìn rất khác nhau về cách tốt nhất mà Java nên theo hay những công nghệ nên được tích hợp vào Java.
Chính vì điều này, Sun thường phải chịu khá nhiều áp lực yêu cầu họ từ bỏ quyền kiểm soát ngôn ngữ và môi trường thực thi Java, trả lại quyền quản lý cho một tổ chức độc lập. Một số người dùng thậm chí còn đề nghị đưa ra phiên bản Java mã nguồn mở hoàn toàn được quản lý bởi cộng dồng. Ý tưởng này chưa bao giờ được chấp nhận rộng rãi (mặc dù nó ngày càng được ủng hộ) do mối lo sợ rằng nền tảng hiện tại của Java sẽ bị phân mảnh.
Thay vào đó, Sun đã khởi động chương trình JCP (Java Community Process – tạm dịch “Cộng đồng xử lý Java”) với việc xây dựng một hội đồng để đánh giá và phát triển các công nghệ cho Java. Cái nhìn về sự thành công của JCP phụ thuộc vào người đánh giá. Một số người quan sát cho rằng nó rất chậm và không có khả năng phản ứng kịp thời, trong khi số khác lại cho rằng đây là một cách tuyệt vời để quảng bá các công nghệ mới và âm thầm tiêu diệt những công nghệ không tốt. Dù sao đi nữa, phần lớn người dùng đều cho rằng sẽ tốt hơn nếu để cộng đồng, thay vì chỉ một doanh nghiệp, đưa ra những quyết định về sự phát trỉển của Java.
Trang 2: Thách thức từ .NET & Những vấn đề của Java
Trang: Next page










Nguyễn Thanh Sơn
Viet Nam
đến từ
Chào bạn,
Trước đây mình có xem qua 1 số bài viết của bạn cụ thể mình quan tâm đến AJAX, bài viết của bạn rất hay và mình thấy rất có phong cách.
Hôm hay lang thang vô tình lại lạc vào đây thấy có nhiều thay đổi và mong rằng bạn sẽ có nhiều bài viết hay như vậy để anh em được học tập
Thân chào.