Có vấn đề gì với chữ XML của Scala?


9

Trong bài đăng này , Martin (honcho head của ngôn ngữ) viết:

[Văn học XML] Có vẻ là một ý tưởng tuyệt vời vào thời điểm đó, bây giờ nó dính ra như ngón tay cái đau. Tôi tin rằng với sơ đồ nội suy chuỗi mới, chúng ta sẽ có thể đưa tất cả quá trình xử lý XML vào các thư viện, đây sẽ là một chiến thắng lớn.

Bản thân tôi quan tâm đến việc thiết kế ngôn ngữ, tôi tự hỏi: Tại sao anh ta viết rằng đó là một sai lầm khi kết hợp các chữ XML vào ngôn ngữ? Những tranh cãi liên quan đến tính năng này là gì?


2
Có lẽ anh ấy đã đề cập (trong bài đăng mà bạn đã liên kết) để có một lõi đơn giản và nhất quán và chuyển các tính năng chuyên dụng hơn đến các thư viện
Zavior

Câu trả lời:


11

Tôi tin rằng Martin giải thích lý do rất tốt trong bài viết của mình:

Tôi đã luôn cố gắng làm cho Scala trở thành một ngôn ngữ rất mạnh mẽ nhưng cũng rất đơn giản, bằng cách cố gắng tìm ra sự thống nhất của các khái niệm khác biệt trước đây.

Vấn đề mà nhiều ngôn ngữ gặp phải khi chúng ngày càng trở nên phổ biến là các tính năng được cộng đồng mong muốn và được thêm vào đầu ngôn ngữ. Một ví dụ tồi tệ nhất về điều này (ít nhất là trong cuốn sách của tôi) là C ++, nơi bạn có khá nhiều thứ, nhưng hoàn toàn không phải là một cách thống nhất đẹp đẽ (xem ví dụ câu hỏi này phát sinh từ đó).

Khó khăn, khi một ngôn ngữ phát triển do nhu cầu / nhu cầu từ cộng đồng là thêm các tính năng mới theo cách phù hợp với cốt lõi của ngôn ngữ. Và về mặt này, sự hỗ trợ bằng chữ XML của Scala là một vấn đề nhức nhối, bởi vì đây là một điều độc đáo. Nó không thực sự là một phần của lõi thống nhất đẹp, nhưng đã được thêm vào như một giải pháp một lần, trong khi nội suy chuỗi là một khái niệm cốt lõi đủ mạnh để thay thế tính năng một lần.


IMHO, trong một thế giới lý tưởng, một ngôn ngữ chỉ nên chứa các tính năng cốt lõi cho phép cộng đồng các nhà phát triển của nó mở rộng nó. Phần mở rộng không nên là một phần của ngôn ngữ cốt lõi mà nên được cung cấp dưới dạng thư viện. Vì vậy, cuối cùng sửa đổi ngôn ngữ có thể chỉ định các thư viện tiêu chuẩn mới nhưng không có tính năng ngôn ngữ mới. Tất nhiên, việc xác định một ngôn ngữ cốt lõi đủ mạnh không phải là một nhiệm vụ tầm thường, nhưng tôi nghĩ rằng một số ngôn ngữ (ví dụ Lisp) đã đến khá gần với nó.
Giorgio

Nói về một loạt các lập trình viên whiny. XMl chữ trong scala là vô cùng hữu ích. Các chàng trai hâm mộ JSON có thể nghĩ rằng họ đã lỗi thời nhưng quên XML được sử dụng trong các công nghệ khác như SOAP.
annoying_squid
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.