Những điểm mới của Java 8 (phần 6: Nashorn engine và lập trình tuần tự)

SmartJob sẽ không nói về tê giác hay một lớp tăng thiết giáp của Đức có tên là Nashhorn. Chúng tôi nói về một Javascript engine. JavaScript engine nghe có vẻ lạ lẫm, nhưng thực ra đã có trước đó, ví dụ như Rhino (cũng được đặt tên theo một loài tê giác) do Mozilla Foundation xây dựng những năm về trước [1]. JDK 8 phát hành vào đầu quý II/2014, kèm theo một Javascript engine có tên Nashorn.

Javascript engine trong JDK 8 được đặt theo tên một loài tê giác sắp tuyệt chủng - Nashorn.

Javascript engine trong JDK 8 được đặt theo tên một loài tê giác sắp tuyệt chủng – Nashorn.

Javascript engine đặt trong Java Development Kit (Bộ công cụ phát triển Java) để làm gì? Để cho phép lập trình viên Java viết mã nguồn theo phong cách tuần tự của ngôn ngữ lập trình kịch bản (scripting language) giống như Javascript, Python hay PHP. Ngôn ngữ lập trình kịch bản (scripting language) là ngôn ngữ lập trình cho phép ứng dụng thực thi ngay (thông dịch) mà không cần biên dịch. Tất nhiên dù bạn sử dụng Java Nashorn, thì bạn vẫn phải biên dịch. Tuy nhiên cách viết mã nguồn sẽ theo phong cách “tuần tự” (scripting, chạy từ trên xuống dưới, nếu bị lỗi ở dòng code nào thì chương trình dừng lại ở đó).

Kiểm tra rằng biến môi trường JAVA đã khai báo đúng cách, gọi cmd và chạy lệnh:

Nếu câu lệnh  trên trả về kết quả, bạn có thể chạy ngay Nashorn engine của JDK 8, gõ lệnh

Sau đó tại dấu nhắc lệnh của jjs gõ lệnh:

g2

Bạn thấy kết quả là một xâu ký tự (String) đã được in ra màn hình console. Lần đầu tiên bạn đã sử dụng lệnh Java để gọi sinh mã JavaScript. Và có thể là lần đầu tiên lập trình kịch bản (scripting programming) trên máy ảo Java (JVM).

 

TỪ CODE JAVA GỌI HÀM JAVASCRIPT

Để xây dựng các ứng dụng phức tạp hơn, bạn cần mở IDE lên để code, ví dụ Eclipse IDE for Java developer. Tạo class Java có tên Example:

Tại dòng 11, chúng ta đã gọi đến một đoạn mã tuần tự, đó là lối lập trình kịch bản.

Ứng dụng ngày càng trở lên phức tạp hơn, chúng ta không thể gọi các đoạn mã script trong code Java mãi được, chúng ta sẽ tách riêng các script này ra một file riêng. Tạo tập tin script1.js đặt ngang cấp với thư mục mã nguồn Java (src), có 2 phương thức là
displayInfo  và
getTypeOfObject

Tạo mới class Example2 để tương tác, gọi đến các phương thức đặt trong file script.js

Tại dòng 18, chúng ta gọi đến phương thức
displayInfo  (hàm Javascript), tại dòng 23 gọi đến phương thức
getTypeOfObject  (hàm Javascript).

Tải về mã nguồn: Nashorn (từ server SmartJob) hoặc https://github.com/SmartJobVN/java8 (từ server GitHub)

[1] https://developer.mozilla.org/en-US/docs/Mozilla/Projects/Rhino

Đỗ Như Vý – developer tại SmartJob


java,
Java 7,
Java 8,
Nashorn,
scripting language,