LISP vẫn được thực hành / sử dụng trong thế giới ngày nay hay đó là ngôn ngữ kế thừa
Vâng, nó là, nhưng bạn phải biết nơi để tìm. Những người sử dụng LISP không có xu hướng hét quá to về nó nhưng có một số ví dụ về một vài công ty khởi nghiệp cao cấp đã sử dụng nó để đạt hiệu quả cao trong 20 năm qua. Nó cũng rất phổ biến với các công ty nhỏ ở châu Âu.
Phương ngữ được sử dụng rộng rãi nhất là gì?
Đây là một câu hỏi hợp lệ, nhưng nó không phải là một câu hỏi dễ trả lời. Nó cũng có thể không phải là một câu trả lời đặc biệt hữu ích: nhiều triển khai có trọng tâm cụ thể vì vậy được lựa chọn tốt nhất nếu chúng phù hợp với vấn đề cụ thể của bạn thay vì dựa trên mức độ được sử dụng rộng rãi. Thay vào đó, tôi sẽ cho bạn biết một chút về các lựa chọn của bạn và bạn có thể tự quyết định.
LISP là một họ ngôn ngữ và mỗi ngôn ngữ đó có một họ phương ngữ và cách triển khai. Phương ngữ rộng rãi rơi vào hai phe "LISP" và "Scheme".
LISP: Cho đến gần đây, LISP chung là vua. Đó là một nỗ lực để thống nhất tất cả các LISP khác nhau và, mà không có ích gì, là "C ++" của LISP. Đó là để nói, đó là một ngôn ngữ LỚN . Nó có mọi thứ. Trong vài năm qua, Clojure đã xuất hiện. Clojure là một LISP chạy trên Máy ảo Java và cố gắng bắt nguồn từ triết lý lập trình chức năng. Theo truyền thống, các LISP khác là đa mô hình. Clojure rất thú vị bởi vì nó nhận được cả LISP và JVM tốt nhất và rất tệ nhất. Vẫn còn rất nhiều tính dài dòng của các ngôn ngữ dựa trên Java và chúng khá tự do và dễ dàng với cú pháp để có nhiều nút và nút cho những thứ khác nhau, nhưng chúng thực sự có một sốnhững ý tưởng thú vị xung quanh các kiểu dữ liệu, đặc biệt là một số cách thực tế mà họ đã nghĩ ra để áp dụng các ý tưởng từ lập trình chức năng.
Các lược đồ: Các lược đồ là một tập hợp con nghiêm ngặt của LISP. Scheme được phát minh bởi Steele và Sussman và trong giai đoạn đầu đời đáng chú ý vì đã được sử dụng trong Khóa học 101 Máy tính MIT. Lược đồ được định nghĩa trong "Báo cáo sửa đổi ^ n về Lược đồ ngôn ngữ thuật toán (RnRS)". Vâng: họ có một trò đùa toán học trong đó. Lược đồ là một ngôn ngữ được tiêu chuẩn hóa theo cách mà các LISP khác không có. Điều này giúp ích rất nhiều cho tính di động giữa các lần triển khai, nhưng nó không phải là viên đạn bạc. Các nỗ lực tiêu chuẩn hóa có xu hướng bảo thủ và đổi mới trong việc triển khai, đặc biệt là xung quanh những thứ như mô-đun, có xu hướng khác nhau. Ngoài ra còn có một loạt các SRFI (Yêu cầu thực hiện Đề án) tương tự như quy trình RFC của IETF. Mọi người sử dụng nó để chuẩn hóa những thứ nhỏ khi cần thiết.
Các lược đồ khác với LISP rằng chúng có một tập hợp các yêu cầu cứng mà chúng phải đáp ứng, một trong số đó là "tối ưu hóa cuộc gọi đuôi" giúp cho việc đệ quy hiệu quả. Do đó, các kiểu lập trình đệ quy phổ biến hơn nhiều trong Đề án so với LISP. Đề án là, cũng không phải là không tốt, như "C" của LISP. Điều đó có nghĩa là, đó là một ngôn ngữ nhỏ và bạn phải có khả năng giữ tất cả ngôn ngữ đó trong đầu.
Hiện tại có hai họ Scheme: Những người dựa trên phiên bản thứ 5 (R5RS) và những người dựa trên phiên bản thứ 6 (R6RS). Độ phức tạp của R6RS lớn hơn bất kỳ phiên bản tiền nhiệm nào và rất nhiều triển khai R5RS đã chọn bỏ qua nó, hy vọng rằng R7RS sẽ giống với R5RS hơn R6RS. Quá trình tiêu chuẩn hóa R7RS hiện đang diễn ra và đã cố gắng bao gồm cả mong muốn của người thực hiện R5RS cũng như của dân gian R6RS bằng cách tiêu chuẩn hóa một ngôn ngữ cơ bản nhỏ trong nhóm làm việc đầu tiên của họ và sau đó đưa vào nhóm làm việc thứ hai để chuẩn hóa các tính năng lớn hơn. Điều này sẽ cho phép ngôn ngữ có các triển khai hiệu quả và hữu ích trên cả phần cứng nhúng nhỏ cũng như các máy có khả năng hơn.
Bây giờ tôi sẽ nói cụ thể hơn:
PicoLisp là một LISP thực sự, thực sự tuyệt vời. Thật nhỏ bé! Đó là tác giả đã viết nó cho chính mình và, theo tôi hiểu, anh ấy đã kiếm sống từ nó từ những năm 1980. Nếu bạn từng có cơ hội tham dự một buổi nói chuyện của anh ấy thì bạn nên làm điều đó: anh ấy thực sự thú vị và thực sự biết công cụ của anh ấy và bạn sẽ không nhận được dù chỉ là một tiếng ngửi nhỏ nhất của bất cứ điều gì chính thống hay nhàm chán.
Tôi không quen với việc triển khai Lisp thông thường nên tôi sẽ không bình luận gì thêm về chúng.
Guile là Đề án GNU chính thức.
Vợt là một sơ đồ R6RS nhưng gần đây nó dường như đã mở rộng mạng lưới và đang cố gắng "phục vụ như một nền tảng để tạo, thiết kế và triển khai ngôn ngữ.".
Gà nhằm mục đích trở thành một Đề án thực tế. Nó dựa trên R5RS và biên dịch xuống C. Điều này hóa ra là một lợi thế thực sự, thực sự, quan trọng vì nó khiến việc sử dụng các thư viện C hiện có trở nên tầm thường. Do đó, Chicken có lẽ là chương trình hữu ích nhất để thay thế Perl, Python, Ruby, v.v., như ngôn ngữ kịch bản hàng ngày của bạn. Có một số người đã sử dụng nó cho tất cả các nhu cầu của họ trong vài năm. Nó có REPL tương tác cũng như trình biên dịch. Cộng đồng (cả trong danh sách gửi thư và IRC) đều hiểu biết, thân thiện và hữu ích.
Tìm kiếm một triển khai với nhiều mô-đun: điều này cho thấy rằng nó có thể sử dụng rộng rãi và có nghĩa là nó có khả năng sẽ có thứ gì đó giúp thực hiện nhiệm vụ trong tay.
Tìm kiếm một triển khai với trình biên dịch hoặc, ít nhất, một cái gì đó không hoàn toàn dựa trên IDE hoặc REPL. Rất nhiều triển khai được thiết kế cho việc dạy học rất khó sử dụng cho kịch bản mục đích chung.
Tôi muốn giới thiệu Gà vì đó là những gì tôi sử dụng. Tôi đã sử dụng nó trong các dự án cá nhân của mình và tôi đã sử dụng nó (và hiện đang sử dụng nó) một cách chuyên nghiệp.
Tôi không muốn đầu tư những nỗ lực không đáng có vào thứ gì đó nếu nó hoàn toàn lỗi thời - tôi vẫn học nó nếu nó "chết" một cách chuyên nghiệp, nhưng chỉ với quan điểm học thuật ...
Lược đồ không chết một cách chuyên nghiệp, nhưng bạn có thể phải đi một số thời gian để sử dụng nó trong bối cảnh đó. Một cái gì đó giống như Gà không chỉ là một mục đích học thuật và nó có thể dễ dàng bao gồm hầu hết tất cả các cơ sở của bất kỳ ngôn ngữ cấp cao nào bạn đang sử dụng.