Lập trình tƣơng tác (Interactive Programming) cho phép chúng ta tiếp cận các đối tƣợng và cấu trúc dữ liệu bất cứ khi nào chúng ta muốn vì vậy nó sẽ là vấn đề lớn nếu mã của chúng ta không có tổ chức. Với các thiết kế Games hiện nay chúng ta sẽ phải cẩn thận hơn trong cấu trúc chƣơng trình. Trong Elm tất cả các trò chơi đều sử dụng các cấu trúc giống nhau. Việc phát triển vòng lặp ngày càng đƣợc chú trọng bằng việc tích hợp trình biên dịch, các lỗi tin nhắn, văn bản, việc kiểm tra
48
và các quá trình xử lý code khác. Mục đích chung vẫn là khám phá những khả năng của lập trình tƣơng tác cái mà làm chƣơng trình trở lên thú vị hơn và hiệu quả hơn.
Elm đang có những bƣớc tiến tiếp theo bằng cách hỗ trợ hot – swapping, là chìa khóa quan trọng trong lập trình tƣơng tác.
Lập trình tƣơng tác là: Kết quả chƣơng trình đƣợc phản hồi ngay trực tiếp
(coding with immediate feedback). [10]
- Lập trình tƣơng tác thể hiện sự sáng tạo thông qua việc phản hồi ngay lập tức kết quả chƣơng trình và biểu diễn giá trị dòng dữ liệu thông qua mã lập trình của chúng ta.
- Có thể nhúng bất cứ cái gì bạn muốn đặc biệt là trong các trò chơi.
- Dễ dàng tùy biến, có khả năng mở rộng phù hợp với các dự án cụ thể của bạn.
- Hỗ trợ các công cụ tìm kiếm và gỡ lỗi phù hợp.
- Thiết kế giao diện đẹp, linh hoạt, cấu trúc gọn gàng không lộn xộn.
Hot – swapping: Chỉnh sửa mã chƣơng trình khi đang chạy (modifying running code).
Đây là một kỹ thuật đặc biệt sử dụng bởi các trình biên dịch và thời gian chạy của hệ thống để thực thi, trao đổi các hàm và giá trị mới trong một chƣơng trình trong lúc nó đang chạy. Đây là một kỹ thuật hoàn hảo cho lập trình tƣơng tác.
Lập trình tƣơng tác là một mục tiêu và hot – swapping là một kỹ thuật chính để tạo lên sự thay đổi đó.
Hot – swapping làm việc trong Elm: Elm sử dụng các tín hiệu thể hiện các giá trị và đƣợc biểu diễn nhƣ các dòng chảy trong chƣơng trình. Một tín hiệu nhƣ là một giá trị thay đổi theo thời gian hoặc một dòng sự kiện. Trong mọi chƣơng trình Elm sẽ thiết lập và xử lý các tín hiệu này đƣợc gọi là đồ thị tín hiệu.
Đồ thị tín hiệu nhƣ một tập các nút. Mỗi nút gắn với một vài trạng thái và một hàm xử lý. Để thực hiện hot – swapping trong Elm ta phải thực hiện:
49
Biên dịch chƣơng trình mới, tạo ra kết quả trong một đồ thị mới.
Cập nhật trạng thái từ đồ thị tín hiệu cũ.
Chƣơng trình phải đảm bảo rằng khi biên dịch các chức năng phải đƣợc cập nhật đầy đủ, tất cả các trạng thái vẫn đƣợc duy trì, lƣu trữ.