Gần đây tôi đã xem this bài thuyết trình thú vị về lập trình phản ứng trong Elm.Có thể dịch ví dụ Mario từ Elm sang JavaFX thuần túy hoặc sang JavaFX + RxJava trong khi vẫn giữ được mức trừu tượng cao của Elm không?
Điều này khiến tôi băn khoăn liệu cấu trúc ngôn ngữ được sử dụng để triển khai trò chơi Mario (trong bản trình bày được hiển thị và cũng như trong hình bên dưới) có thể được ánh xạ tới các cấu trúc ngôn ngữ cao cấp tương đương trong JavaFX hoặc JavaFX thuần túy với RxJava?
Nói cách khác, có thể diễn tả trò chơi Mario được triển khai trong Elm bằng cách sử dụng cùng một khái niệm trừu tượng (tức là các giá trị phụ thuộc thời gian) trong JavaFX đơn thuần hoặc trong JavaFX + RxJava không?
Vì vậy, nếu một lập trình viên JavaFX có kinh nghiệm 1) hoặc JavaFX + RxJava + Lập trình viên chức năng muốn chuyển trò chơi Mario từ Elm sang 1) JavaFX hoặc 2) JavaFX + RxJava thì lập trình viên nào có thể thực hiện tác vụ này bởi sử dụng các phép trừu tượng mức cao tương tự như đã được sử dụng trong Elm?
Tóm tắt mà tôi có trong đầu cho JavaFX là các ràng buộc và cho JavaFX + RxJava là các ràng buộc + Quan sát/Đối tượng/Đăng ký.
Câu trả lời rất chính xác cho thấy sự tương ứng giữa Elm và JavaFX! Câu trả lời này thậm chí sẽ giúp tôi trong luận án của tôi. (Btw, làm việc tốt trên ReactFX. Các ví dụ của nó trên [blog] của bạn (http://tomasmikula.github.io/blog/2014/04/25/combining-reactfx-and-asynchronous-processing.html) rất ấn tượng. đã lên kế hoạch một phần về ReactFX trong fyi luận án của tôi.) – Eugen
Cảm ơn bạn đã trả lời chi tiết. Làm thế nào về dịch Elm xây dựng để JavaFX + RXJava? Điều đó sẽ dễ dàng hơn (ít lò hơi) so với việc dịch các cấu trúc Elm sang JavaFX? – jhegedus
Tôi không nghĩ vậy. Các boilerplate là do Elm _language_ tính năng mất tích từ Java, như suy luận kiểu mạnh mẽ hơn, loại bí danh, loại bản ghi ... Không có thư viện Java sẽ thêm rằng vào ngôn ngữ. Các hàm thuần túy (tác dụng phụ) và các đối tượng bất biến không thể được thực thi trong Java, nhưng có thể đạt được bằng kỷ luật của riêng bạn. Các nút JavaFX có thể thay đổi theo thiết kế, vì vậy bạn cần thư viện tiện ích không thay đổi mà tôi đã đề cập. Chức năng thành phần là đủ dễ dàng với Java 8 lambdas. –