Luna mang đến khả năng phát triển trực quan cho lập trình hàm

Ngoc Huynh

Theo thông lệ, các nhà phát triển sẽ bắt đầu phác họa các component và dependency trên một whiteboard trước khi code, do đó các nhà sáng tạo của Luna cho rằng điều này chẳng hợp lý để mà thực hiện sự logic đó chỉ bằng text.

Theo các nhà sáng tạo của Luna, ngôn ngữ hàm Luna cam kết enable kết cấu ứng dụng (application assembly) bằng cách nhấp chuột và kéo các yếu tố trực quan cùng với nhau.
Dự kiến sẽ được phát hành như là một mã nguồn mở khi Luna bước sang giai đoạn beta, compiler của nó sẽ tạo ra native code dành cho các nhà phát triển Linux, MacOS, Windows, hoặc JavaScript.

Những người sáng tạo của Luna lập luận rằng bởi vì các nhà phát triển thường bắt đầu phác hoạ các thành phần và dependency vào một whiteboard trước khi code, điều đó không hợp lý để thực hiện logic đó chỉ trong văn bản. Phần mềm có thể có hàng ngàn dòng code được phân phối trong hàng trăm tệp tin, có thể tăng tốc việc thực hiện luồng dữ liệu trực quan và kiến trúc ứng dụng. Các công cụ như sơ đồ kiến trúc UML (UML architecture diagrams) chỉ giải quyết các triệu chứng chứ không phải nguồn gốc của vấn đề.

Đó là lý do tại sao Luna nhấn mạnh đến cả dạng biểu thị trực quan và text. Các nhà phát triển có thể duy trì các thói quen lập trình của họ trong khi vẫn có một giao diện như whiteboard đồ họa.

Các biểu thị trực quan của Luna cho thấy cấu trúc, hành vi (behavior) và luồng dữ liệu. Nó cho phép tạo mẫu và hình ảnh trực quan để hiểu được sự tắc nghẽn về hiệu năng. Luna tập hợp các thống kê bao gồm thời gian tính toán, phân bổ bộ nhớ CPU / GPU, chuyển mạng và mô hình luồng.

Các tính năng khác của Luna bao gồm:

• Parallelism
• Higher order functions
• Non-strict semantics
• User-defined algebraic types
• Một hệ thống I / O monadic bao gồm một bộ kiểm tra kiểu và influencer để hiểu được function nào là các I / O actions và function nào là pure.
• Xử lý lỗi lưu lượng dữ liệu
• Một hệ thống loại dependent type mạnh mẽ

Luna cũng hỗ trợ khả năng tương tác ngôn ngữ, với các nhà phát triển có thể tạo một nút “foreign” và dán vào Python hoặc Haskell code. Khả năng tương tác với JavaScript và C ++ cũng được lên kế hoạch. Nhưng những nhà sáng tạo của Luna cảnh báo rằng các ngôn ngữ khác không được thiết kế với sự biểu thị trực quan, do đó, mã nguồn của chúng không thể được biểu thị bằng đồ hoạ như code của Luna.

Chia sẻ bài viết ngay

Nguồn bài viết : http://www.infoworld.com