Các nhà nghiên cứu tại trường đại học Brown University vừa xây dựng ngôn ngữ lập trình mới dành cho các ứng dụng phát triển web. Họ đặt tên cho ngôn ngữ này là Flapjax.
Flapjax nằm trong cặp anh em sinh đôi với AJAX (Asynchronous JavaScript and XML), chủ yếu dựa trên JavaScript.
Ngôn ngữ mới giúp các chương trình phát triển “kiểu AJAX” dễ dàng hơn. Theo các chuyên gia phát triển phần mềm nhận xét thì ngôn ngữ mới có nhiều tính năng không rắc rối phức tạp như JavaScript. Flapjax dễ học vì “cú pháp của nó chính xác gần giống như JavaScript”. Shriram Krishnamurthi, giáo sư bộ môn khoa học máy tính ở đại học Brown hiện đang là người đứng đầu dự án này.
Flapjax được xây dựng hoàn toàn dựa trên JavaScript. Nó chạy trên trình duyệt Web truyền thống không cần các thành phần plug-in hay thành phần download nào khác.
Bạn có thể sử dụng Flapjax giống như một thư viện trong JavaScript hơn là như một chương trình biên dịch từ Flapjax sang JavaScript. Bạn có thể tích hợp nó vào các chương trình đã tồn tại trước đó.
Flapjax có sáu thuộc tính chính: hướng sự kiện và phản hồi; giảm các mã không cần thiết qua hệ thống khuôn mẫu riêng; cung cấp không gian lưu trữ lâu dài tự động update tất cả client chia sẻ cùng dữ liệu; cho phép chia sẻ dữ liệu với máy khác; thực thi các điều khiển truy cập trên kênh dữ liệu chia sẻ; và hỗ trợ thư viện kết nối tới các website cuối, cho phép tạo ra các website client kết hợp.
Flapjax được cung cấp theo kiểu bản quyền nguồn mở BSD. Đội xây dựng và phát triển Flapjax bao gồm giáo sư Krishnamurthi, Leo Meyerovich, Michael Greenberg, Gregory Cooper và Aleks Bromfield.
Trước đó, giáo sư Krishnamurthi đã đưa ra ý tưởng về Flapjax ở Hội nghị chuyên đề Lang.NET diễn ra tại trụ sở của Microsoft hôm mùng một tháng tám. Ông đã giải thích các hoạt động của Flapjax với một chuyên viên ngôn ngữ lập trình.
“Điều chúng tôi làm là cho ra đời ngôn ngữ loại trừ tất cả các chi tiết lộn xộn của AJAX”, giáo sư Krishnamurthi nói. “Thay vì phải lo lắng những điều như xây dựng các gói mức thấp, chúng tôi cung cấp cách thức đơn giản để xác định ‘một dữ liệu có nằm trong server từ xa nào đó hay không, sau đó gửi tất cả thông tin update của tôi cho nó và lấy tất cả thông tin update của nó cho tôi’. Đó là cách thức hoạt động điển hình của AJAX, nhưng với AJAX không bao giờ hoạt động ở mức cao hay trìu tượng hoá”.
Các nhà phát triển có thể sử dụng Flapjax dưới hai góc độ. Thứ nhất, về mặt kỹ thuật thì nó là ngôn ngữ kế thừa cú pháp của JavaScript nhưng giúp việc viết mã nguồn tạo ứng dụng tương tác tự nhiên hơn. Hoặc Flapjax có thể được sử dụng với vai trò như là một thư viện JavaScript, cung cấp một số trợ giúp trong việc tạo ra các ứng dụng tương tác.
Những người không muốn sử dụng chương trình dịch từ Flapjax sang JavaScript vẫn có thể dùng các thành phần của JavaScript. Họ chỉ cần tự viết nhiều mã lệnh hơn.
Dion Almaer, đồng sáng lập của Ajaxian.com nói rằng ông nghĩ Flapjax “thực sự là kỹ thuật thú vị”, nhưng không thể mang lại cơn bão nào cho giới công nghệ.
Flapjax là một bước bổ sung lớn cho các chương trình biên dịch. Bộ biên dịch của JavaScript chỉ dùng cho các mã chạy trong trình duyệt. “Sẽ hữu ích hơn nếu Flapjax được kết hợp với một framework nào đó như Rails chẳng hạn”, Almaer nói. “Điều đó cho phép bạn có được chương trình hỗ trợ Rails với vai trò biên dịch của Flapjax”.
Phần hưỡng dẫn trên website công nghệ nói rằng Flapjax cố gắng dung hoà hai kiểu xung đột trong lập trình: lập trình khai báo và lập trình mệnh lệnh.
Với lập trình khai báo, nhà phát triển phải hoạt động như một người giữ sách, đặc tả các thuật toán chạy trong chương trình. Trong khi đó ngôn ngữ mệnh lệnh mô tả mục đích của chương trình và sử dụng các thực thi của thuật toán cho phần mềm hỗ trợ.
Trái ngược với cả hai kiểu này, “Flapjax hướng tới kiểu ngôn ngữ đặc tả khai báo qua dữ liệu mệnh lệnh”.
Mặc dù Flapjax được giới thiệu là đơn giản hoá các phát triển AJAX, nhưng một số nhà phát triển nhận thấy rằng nó hoàn toàn có thể bổ sung một số tính năng tổng hợp.
Trong một trả lời từ blog về Flapjax trên website Ajaxian, một nhà phát triển tự nhận có tên Ryan Gahl gọi đó là “một bước lùi. Thay vì phân tách các vấn đề, nó được khuyến khích phát triển như một chiếc bánh spaghetti. Chiếc bánh đó tuyệt hảo cho bữa tối với một ít thịt viên và chút phomát. Nhưng tốt nhất là đừng để nó dính dáng đến các dự án sắp tiến hành của tôi”.
Giáo sư Krishnamurthi khẳng định lại rằng Flapjax hữu ích theo nhiều cách. Và trong mô hình “kín đáo” của mình, Flapjax phân tách tầng trình chiếu của ứng dụng theo các markup của nó.
Mô hình kín đáo cung cấp các tính năng tương tự ngôn ngữ lập trình hướng khía cạnh, giáo sư nói.
T.Thu