Những tính năng nào có thể được thêm vào ngôn ngữ lập trình mới để làm cho nó trở nên "trực quan" hơn? Khi nói đến các trang web và máy tính để bàn, chúng tôi ưu tiên khả năng sử dụng cao, gần như trực quan khả năng sử dụng. Ngày càng trở nên mong đợi rằng ứng dụng của bạn sẽ "hoạt động". Đối với một lớp học nhất định của các ứng dụng, ý tưởng mà một người phải là RTFM, là một nhãn hiệu chống lại tính hiệu quả của ứng dụng. Mọi người có xu hướng mong đợi ứng dụng hoạt động theo cách họ "nghĩ" nó sẽ hoạt động. Người ta có thể lập luận rằng đây là một tiêu chuẩn đáng giá mà các nhà thiết kế nên phấn đấu.Ngôn ngữ lập trình có nên trực quan không?
Có thể sử dụng cùng một mức độ khả dụng tương tự cho ngôn ngữ lập trình và môi trường nhà phát triển không? Tôi nhận ra có các công cụ như IntelliSense cung cấp các gợi ý và một IDE tốt cung cấp số lượng hỗ trợ . Nhưng còn bản thân ngôn ngữ cốt lõi thì sao? Những gì có thể được thêm vào (hoặc loại bỏ) mà làm cho một số kỹ thuật lập trình nhất định hoặc các thuật toán rõ ràng hơn để thực hiện? Làm thế nào để làm cho biểu thức chính quy hoặc đệ quy linh hoạt hơn? Hoặc là sự điên rồ này?
Lấy ví dụ cụ thể hơn: bố cục lỏng trong HTML, CSS, hoặc Flex và MXML. Trong HTML và CSS, mô hình hộp là bất cứ điều gì nhưng trực quan được cung cấp các triển khai khác nhau của Internet Explorer và các trình duyệt khác. Và trừ khi ai đó đọc tài liệu hoặc nghiên cứu khái niệm về mô hình hộp sẽ rất khó để "chỉ nhận được" khi thiết kế bố cục trên lần đâm đầu tiên của một người tại CSS. Tôi cho rằng đây là số vì sao bảng phát triển mạnh trong những ngày đầu. Mô hình hộp là ẩn trong khái niệm của ô bảng. Với sự giúp đỡ của các công cụ như Dreamweaver, người ta có thể có được tâm trí của mình xung quanh độ rộng và bố cục phần trăm trong các ràng buộc của các ô bảng. Sau đó, CSS đã đến hạn và toàn bộ các lý do hợp lệ là xuất hiện vì sao bảng không dành cho bố cục. Nhưng để đạt được cùng một hiệu ứng nhà thiết kế đã thực sự nghiên cứu triển khai CSS và mô hình hộp, và tiêm một lớp trừu tượng mới vào suy nghĩ của họ.
Trong một ví dụ khác, tôi tìm thấy khi lập trình rất nhiều điều trong ActionScript và MXML, toàn bộ khái niệm về bố trí chất lỏng và độ rộng tỷ lệ phần trăm dựa trên các yếu tố không phải là rất rõ ràng và không luôn luôn làm theo trực giác. Tôi hiểu vấn đề cơ bản của trong đó Adobe Flash player và bố cục cần để hiểu mọi thứ theo thuật ngữ pixel tuyệt đối. Khi nó đến với chiều rộng tiềm năng của một thành phần, tôi hiểu tại sao tỷ lệ phần trăm không rõ ràng ngay lập tức để triển khai ở cấp độ chính của mã . Về lý thuyết, trình phát Flash Trình phát cần biết (hoặc tính toán) chiều rộng chính xác của thành phần sao cho nó có thể cung cấp hình dạng phù hợp cho thẻ video khi vẽ trên màn hình. Nhưng khi bạn giới thiệu một số khái niệm về tỷ lệ phần trăm thì bạn giới thiệu khả năng lý thuyết của một chiều rộng vô hạn . Và để tìm các pixel "vô cùng - 1" không phải là thứ mà máy tính có thể trực tiếp thực hiện mà không có một số lớp trừu tượng và tính toán . Khung nhìn phải được tham chiếu.Chương trình phải biết ranh giới của nó. Vì vậy, độ rộng tuyệt đối là tiêu chuẩn, mặc dù con người có thể thích thiết kế theo tỷ lệ phần trăm.
Khi nói đến ngôn ngữ lập trình, có thể có các biểu thức và tính năng hỗ trợ trực giác khi suy nghĩ về tác vụ lập trình. Hay chúng ta tốt hơn là "suy nghĩ như một máy tính" và chỉ cần RTFM 'hướng dẫn khi chúng ta cần để hiểu cách triển khai một số tính năng hoặc bố cục trong mã ?
Nếu bạn có thể thay đổi cú pháp hoặc ngữ nghĩa của ngôn ngữ lập trình của sự lựa chọn, bạn sẽ thêm, thay đổi, hoặc loại bỏ để cải thiện "tính trực giác" của nó?
Phụ lục, lý do yêu cầu câu hỏi này được lấy cảm hứng từ xem ví dụ về những gì "người mới" có thể đạt được trong Smalltalk trong Alan Kay's lecture: Doing with Images Makes Symbols.
Trên một lưu ý phụ, đây có thể là một cuộc trò chuyện chủ quan và cần được đánh dấu "wiki cộng đồng" – Randolpho