Ít nhất theo cách thường được hiểu, Sách thực thi đóng gói và trình bày code được thảo luận trong văn xuôi của họ. Người đọc có thể được yêu cầu mở rộng code đó trong các bài tập, nhưng sách thực thi trình bày code như một đối tượng được tạo ra bởi tác giả để khám phá. Văn xuôi nhằm giúp học sinh đọc và hiểu code. Một cách tiếp cận thay thế thú vị là xem xét các phương tiện giống như sách thực thi nhưng đặt code như thứ gì đó chủ yếu được người đọc viết.
Một cuốn sách như vậy sẽ giống The Incredible Machine hơn là một cuốn sách tranh Rube Goldberg: nó có thể trình bày Các tiến trình nhiệm vụ chi tiết như là giàn giáo nhận thức và thông tin liên quan dọc theo đường đi. Người đọc thực hiện việc thực thi, nhưng sự thực thi đó được cấu trúc cao bởi tác giả: một Trải nghiệm thể hiện. Liên quan: Đặt game như Shenzhen IO vào môi trường chuyên nghiệp như IDE thì sao
Một ví dụ khác; Pavel Panchekha đang làm việc trên một cuốn sách về cách xây dựng trình duyệt web. Anh ấy rõ ràng không muốn cuốn sách được cấu trúc như một sách thực thi thông thường—các đoạn code dễ chạy và dễ pha trộn—vì anh ấy muốn người đọc xây dựng trình duyệt web của riêng họ.
Cách tiếp cận sách thực thi (như notebook) tốt cho việc hiểu code cố định. Bạn có thể chạy từng phần, đọc bình luận và thấy từng phần được nổi bật khi văn bản mô tả nó. Nhưng điều đó khuyến khích một chế độ tương tác nơi bạn đọc code, không phải viết nó. Có lẽ việc yêu cầu người đọc bình thường thực sự viết một trình duyệt web là quá nhiều, nhưng ít nhất tôi yêu cầu sinh viên của mình làm vậy! Một mối lo tương tự về code tự giải thích, nơi trình duyệt ghi lại một số loại nhật ký phong phú về các hoạt động của chính nó và cho phép bạn khám phá nó. Một lần nữa đó là về việc khám phá một codebase cố định, trong khi mục tiêu thực sự của cuốn sách không phải là giải thích trình duyệt hoạt động như thế nào mà là thuyết phục người đọc rằng họ có thể viết một cái.
Q. Tại sao Pavel không nghĩ rằng khái niệm điển hình của sách thực thi phù hợp với cuốn sách của anh ấy về kỹ thuật trình duyệt?
A. Sách thực thi chủ yếu là về việc đọc và hiểu code có sẵn; anh ấy muốn người đọc thực sự viết một trình duyệt. (Executable books are mostly about reading and understanding pre-existing code; he wants readers to actually write a browser.)
Q. Các “danh sách code” trong các trò chơi như Shenzhen I/O và The Incredible Machine khác với những danh sách trong sách thực thi điển hình như thế nào?
A. Chúng cố ý không hoàn chỉnh: người chơi được dự định điền vào chỗ trống. (They’re intentionally incomplete: players are meant to fill in the blanks.)
Tài liệu tham khảo (References)
Conversation với Pavel Panchekha, 2020-09-01: Re: Making my book a timeful text