Giới thiệu về ngôn ngữ lập trình JAVA

Java là ngôn ngữ lập trình bậc cao hiện đại, được thiết kế từ khoảng thập niên 1990 bởi Sun Microsystem mà hiện nay thuộc sở hữu của Oracle. Java là một nền tảng độc lập, có nghĩa bạn chỉ cần viết chương trình một lần thì có thể chạy trên nhiều nền tảng khác nhau. Như khẩu hiệu của nó Viết một lần, chạy được khắp nơi. Các ứng dụng được viết bằng ngôn ngữ lập trình Java hiện đã có mặt ở khắp nơi trong đời sống của chúng ta từ các chương trình chạy trên máy tính cá nhân, trên các thiết bị đi động, thiết bị mạng, thiết bị chuyên dụng cho đến các hệ thống máy chủ.

Vậy thế mạnh của ngôn ngữ Java là gì?

Ưu điểm được nhắc đến đầu tiên, cũng chính là niềm tự hào đặc trưng của JAVA: Cross – Platform.

Vậy Cross – Platform là gì?

Cross – Platform là bạn có thể viết mã nguồn trên một IDE ở một máy tính và thực thi chương trình ở bất cứ máy tính sử dụng hệ điều hành nào. Với điều kiện máy tính thực thi chương trình phải có hệ thống trình biên-thông dịch riêng được gọi là Java Virtual Machine (JVM), JVM sẽ có nhiều phiên bản dành riêng cho từng hệ điều hành (Windows, Linus và MAC OS).

Ưu điểm thứ 2, Java là ngôn ngữ hướng đối tượng – phù hợp với xu thế phát triển. “Chương trình phải được thiết kế trước khi xây dựng”, không lập trình viên nào có thể thực hiện toàn bộ một chương trình ngay từ đầu. Công việc đầu tiên phải thiết kế phân tích chia nhỏ các phần công việc độc lập, tiếp tục chia các phần nhỏ thành nhỏ hơn nữa. Với cơ chế đặc trưng “sử dụng lại” (kế thừa) , “mở rộng” (đa hình) trong kiến trúc OOP, lập trình viên có thể đầu tư phân tích và kiến tạo cấu trúc của toàn bộ một chương trình (Software Engineering) sao cho phù hợp với tính chất công việc.

Ưu điểm thứ 3, công nghệ mở và phát triển không ngừng. Cạnh tranh với các công nghệ trong .NET, cộng đồng công nghệ trong JAVA cũng không kém cạnh và miễn phí đường đường chính chính.

Các ưu điểm khác: phát triển mạnh hướng network, di động (phổ biến hiện nay là Android, ngoài ra còn có J2ME), an toàn trong công tác quản lí tài nguyên cấp phát động (cơ chế Garbage Collection – tương đồng trong C#), bảo mật ở mức quản lí chương trình với nhiều mức (phần nguyên lí hoạt động sẽ nêu rõ). Khi Java lần đầu tiên ra mắt đã gây nhiều ấn tượng với khả năng viết applet, là một một ứng dụng cho phép nhúng trên trang web, tuy nhiên về sau dần trở nên mờ nhạt vì nhược điểm thiếu an toàn bảo mật.

Nhược điểm:

  1. Tool tràn lan (NetBeans, Eclipse, J Builder, vv), đặc tính là free nên hỗ trợ không thoải mái như Visual Studio.
  2. Bảo mật sourcecode không tốt (phần nguyên lí hoạt động sẽ nêu rõ).
  3. Chậm ! (sẽ nêu rõ trong phần phần nguyên lí hoạt động).

Nguyên lí hoạt động (đa nền tảng Cross – Platform)
Trước khi nói về Cross – Platform, ta sẽ nhìn sơ lược quá một số kiến thức về mã lệnh bậc cao và mã máy, trình thông dịch và trình biên dịch.

Chương trình là một tập hợp cá mã lệnh. Vậy mã lệnh mà máy hiểu và thực thi ở đây là gì? là dãy “010010” hay là những dòng lệnh đại loại như

System.out.println(s);

hay

cout >> "Hello world!";

Giữa hai kiểu ngôn ngữ trên liên quan đến nhau như thế nào?

Thông thường các bậc ngôn ngữ phổ biến được dạy trong trường đại học là mã máy – ngôn ngữ bậc thấp (machine language) và ngôn ngữ bậc cao (high level programing language) – được biết đến điển hình trong thiết kế của C++ C#, vv. Chuyển đổi bậc của hai ngôn ngữ này là một việc khả thi nếu bạn có trình biên dịch hoặc thông dịch. Trình biên dịch (Compiler): dịch hết toàn bộ source code (bậc cao) thành file thực thi và có thể được CPU thực thi thành process(tiến trình).

Tuy nhiên nếu bạn muốn chạy được chương trình này trên một máy chạy hệ điều hành khác thì không thể. Khi biên dịch, trình biên dịch chỉ biên dịch thành file thực thi cho chương trình ứng với hệ điều hành của máy hiện tại mà thôi. Trình thông dich (Interperter): dịch từng câu/đoạn/phần của source code thành mã máy và để CPU thực thi lần lượt, cơ chế “dịch từng lệnh một” quyết định những công việc cần thiết và các nhu cầu đáp ứng từ hệ thống. Trình thông dịch sẽ cho phép khả năng từ một mã nguồn bạn có thể thực thi trên nhiều “thể loại máy” khác nhau.

JAVA là ngôn ngữ kết hợp cả hai cơ chế biên dịch và thông dịch, điều bạn không thể bắt gặp trong C++ (chỉ biên dịch). Cơ chế cộng hưởng này được biết đến với tên Java Virtual Machine (JVM). Hoạt động của JVM như sau. Khi các bạn viết source code và thực hiện biên dịch, trình biên dịch sẽ biên dịch toàn bộ source code thành một loại mã gọi là JavaByteCode. JavaByteCode sẽ được trình thông dịch được cài đặt trên các máy tính (có cài đặt JVM) thông dịch tương ứng với hệ điều hành của máy tính đó. – mô tả dưới hình sau.

JVM

Câu hỏi đặt ra là “Tại sao JVM không phải là trình biên dịch ?”

Giả như ta có source code biên dịch thành Java ByteCode và biên dịch thành mã máy tương ứng với HĐH. Có một số nguyên nhân được nhà phát triển ngôn ngữ lý giải như sau:

Đầu tiên, chương trình biên dịch ngôn ngữ JAVA được hiện thực vốn không đơn giản, khi muốn compile một file source code thành machine code cho từng hệ điều hành ta cần xây dựng compiler ứng với hệ điều hành đó, điều này vô cùng phức tạp.Trong khi đó, trình thông dịch Bytecode lại cực kì nhỏ gọn và tiện dụng (Vậy nên lí do đầu tiên là đơn giản tiện dụng).

Thứ hai, có đa số các chương trình JAVA được download từ Internet, khiến cho sự bảo đảm về an toàn dữ liệu cá nhân dễ bị xâm phạm khi down load mã biên dịch trực tiếp. Làm rõ hơn về vấn đề này ta có thể hình dung, JVM như là một bộ đệm trung gian, nó có thể kiểm soát được những mối nguy hại từ JavaBytecode -> machine language trong lúc thông dịch. Từ đó sẽ an toàn hơn.

Bởi vì cơ chế thông dịch nên Ứng dụng Java mắc phải nhược điểm CHẬM!. Tuy nhiên vấn đề này đã được cải thiện không ngừng với just-in-time compilers, thực chất là thông dịch từng đoạn thay vì từng mã lệnh như cơ chế hoạt động bình thường của trình thông dịch cơ bản.

Các hướng phát triển về GUI (Graphic User Interface). Ngày xưa người sử dụng phải tương tác với máy tính thông qua màn hình comand line, phát triển hơn ở mức giao diện đồ họa đặc trưng của Windows, ngày nay GUI không những cần thiết mà còn phải đẹp và phù hợp trong quá trình thiết kế chương trình. GUI của JAVA sử dụng một số nguồn công cụ có sẵn như Abstract Windowing Toolkit (AWT), Swing, vv. Mặc dù tự hào ở mặt tương tác tốt với bất kì hệ điều hành nào tuy nhiên quan điểm cá nhân thì GUI của JAVA chưa thực sự bắt mắt (ỡ lĩnh vực stand alone app).

Cuối cùng, Java hiện tại là một trong những ngôn ngữ phổ biến và được xếp thứ hạng cao trong danh sách các ngôn ngữ được nhiều nhà tuyển dụng, đang phát triển mạnh mẽ không ngừng hiện nay, tìm hiểu và nghiên cứu ngôn ngữ JAVA sẽ là bước đầu tiên để trở thành một lập trình viên chuyên nghiệp.

About the Author: phongph

Trả lời