Umm, trên thực tế, mặc dù Clojure được phát triển với các nhà phát triển Java được xem xét, nó không được viết cho lập trình Java.
Clojure được thiết kế để tương thích tốt trong môi trường Java.
Mặc dù vậy, đây không phải là nó được thiết kế cho (ít nhất không phải trong phần ngôn ngữ của "môi trường Java"). Và "môi trường Java" ngụ ý rằng ngôn ngữ và JVM được kết nối với nhau theo một cách nào đó khiến chúng trở thành một. Họ không phải. Conjure là một ngôn ngữ JVM bản địa (không giống như Jython hoặc JRuby), và nó sử dụng một máy ảo rất được xây dựng để sống bên trong.
Như Greg đã nói, Clojure được xây dựng bằng Java và trừ khi bạn muốn thực sự truy cập vào hệ thống bộ nhớ giao dịch phần mềm của Clojure, tôi muốn kiểm tra một Lisp khác.
Không, xin lỗi. Clojure không phải là "xây dựng được với Java". Nó được xây dựng cho JVM. Bạn có thể sử dụng các thư viện Java nếu bạn thích, nhưng nó không được yêu cầu (mặc dù nó rất hữu ích). Và theo như lời khuyên để sử dụng một Lisp khác nếu bạn không muốn học Java. Điều đó thật lố bịch. Clojure không có nghĩa là Java; nó có nghĩa là một Lisp cấp 1. Và một, bằng cách này, có nghĩa là để tăng cường Lisp trong những cách nhất định, để làm cho nó hiện đại hơn và chức năng. Đó là khả năng làm việc tốt với Java nên được coi là một tiền thưởng, không phải là một trách nhiệm pháp lý.
Như Greg ở trên chỉ ra, các ngôn ngữ như Clojure và Groovy nhắm mục tiêu JVM vì một lý do chính, để các nhà phát triển Java có thể sử dụng tốt nhất cả hai thế giới.
Cũng sai. Vì những lý do nêu trên. Chúng không được viết cho các nhà phát triển Java. Xin lỗi vì đã cùn ở đây, nhưng tôi chưa thấy một bài đăng được giáo dục trên Clojure trong những câu trả lời này, và tôi vừa mới biết về Clojure hôm nay! Nó chỉ là bực bội để xem loại lời khuyên có hại như vậy một cách dễ dàng nhất định.
Tôi chỉ sẽ kết thúc với một trích dẫn bởi Rick Hickey (chàng người đã viết Clojure):
"Bạn có thể ghét Java và như JVM."
Anh ấy tiếp tục nói rằng đó là nơi anh ấy đứng.
Tôi biết cả hai, và có ý kiến, cả tốt và xấu, trong những liên quan. Bạn có gợi ý rằng cách duy nhất tôi có thể học Clojure là đi vào trò chơi với một sự hiểu biết mạnh mẽ của Java hoặc học Java đầu tiên? – user54650
Ok, tôi không biết bạn có quen thuộc với các tùy chọn Lisp khác không. Những gì tôi gợi ý là đến từ một nền tảng Lisp hiện có, Clojure sẽ không cung cấp cho bạn nhiều mới nếu bạn không quan tâm đến các tính năng tương thích Java. Có lẽ bạn có thể giải thích thêm về những gì bạn đang tìm kiếm. –
Tôi đang tìm một Lisp mạnh mẽ, chuẩn hóa, không có nền tảng. Lisp thường chỉ hút cho trình biên dịch Windows, trừ khi bạn thổi tiền vào những thứ hàng đầu. Đề án thiếu một tiêu chuẩn đủ mạnh, với chủ nghĩa tối giản là một điểm yếu cho nó. – user54650