2008-10-08 32 views
27

Sau khi khám phá Clojure Tôi đã dành vài ngày cuối cùng đắm mình trong đó.Làm cách nào để chuyển từ Java sang Clojure?

Loại dự án nào tự cho mình mượn Java trên Clojure, ngược lại và kết hợp?

Ví dụ về các chương trình mà bạn chưa bao giờ thử trước Clojure là gì?

+1

Tôi chưa bao giờ nghe nói về nó! Nhưng Lisp của nó! Tiếng hoan hô! Lisp đang trở lại! –

+0

Tôi cũng muốn biết câu trả lời cho điều này. Tôi muốn biết thêm về Clojure. –

+0

@Andre Bossard: nó chưa bao giờ rời đi. Nhưng bây giờ liên quan đến Clojure đặc biệt nó đã giúp Lisp trở thành "chủ đạo". Một số phần khởi động đang sử dụng Clojure và người ta tin rằng có ít nhất hàng chục ngàn lập trình viên Clojure: ngôn ngữ đó đơn giản là đá mông. Hãy cẩn thận với mỉa mai thời gian tiếp theo: bạn không bao giờ sau bao nhiêu năm mỉa mai không cần thiết của bạn sẽ kết thúc tìm kiếm ngớ ngẩn. –

Trả lời

14

Clojure tự vay tốt với concurrent programming. Nó cung cấp các công cụ tuyệt vời để xử lý luồng như Bộ nhớ giao dịch phần mềm và các tham chiếu có thể thay đổi.

Là một bản demo cho nhóm nhà phát triển khối phương Tây, Rich Hickey đã mô phỏng một đàn kiến, trong đó mỗi kiến ​​là chủ đề riêng của nó và tất cả các biến đều không thay đổi. Ngay cả với một số lượng lớn các chủ đề, mọi thứ hoạt động rất tốt. Điều này không chỉ vì Rich là một lập trình viên tuyệt vời, nó cũng bởi vì anh ta không phải lo lắng về việc khóa khi viết mã của mình. Bạn có thể xem số presentation on the ant colony here của mình.

+0

Tâm trí tuyệt vời nghĩ như nhau :) Rick và tôi đã được cả hai tại trình bày đồng thời Rich Hickey đã làm ở Northampton đầu năm nay. –

+0

Có ai biết nơi để tìm nguồn gốc cho bản demo ant kiến ​​này không? –

+0

Ant Colony Nguồn: http://clojure.googlegroups.com/web/ants.clj –

6

Nếu bạn đang cố gắng lập trình đồng thời, thì tôi nghĩ rằng clojure tốt hơn nhiều so với những gì bạn nhận được từ Java ra khỏi hộp. Hãy xem bài thuyết trình này để xem lý do tại sao:

http://blip.tv/file/812787

Tôi ghi nhận 20 của tôi ngày đầu tiên với Clojure trên blog của tôi

http://loufranco.com/blog/files/category-20-days-of-clojure.html

tôi bắt đầu với các bài giảng SICP và sau đó xây dựng một song song sàng số nguyên tố. Tôi cũng chơi với các macro.

+0

@LouFranco: Ồ, vâng, tôi đã đọc tất cả các bài đăng của bạn tối qua, đã không tạo kết nối trước đó, xin lỗi. Nó rất thông tin, cảm ơn. :) Tôi đã xem tất cả các video @ blip và đọc rất nhiều blog cũng như của riêng bạn. Tôi thực sự tự hỏi về khả năng sống của con tàu nhảy hoàn toàn. –

+0

Vấn đề lớn nhất đối với tôi là diễn giải thông báo lỗi từ trình biên dịch. Nó dễ dàng hơn theo thời gian. Tôi không có một dự án ngay bây giờ mà tôi muốn chạy trên JVM, nhưng nếu tôi đã làm - nó sẽ được trong Clojure. –

4

Loại dự án nào tự vay để sử dụng Java trên Clojure, phó hoặc kết hợp?

Một dự án nơi một công cụ GUI xây dựng (như Matisse trong Netbeans) là cần thiết sẽ là một trường hợp Java có thể vẫn được yêu cầu. Bất cứ điều gì được thực hiện trong Java có thể được thực hiện trong Clojure khá dễ dàng, với proxy và lớp gen nếu cần hoặc chỉ cần truy cập Java là cần thiết (., Doto, mới, v.v ...). Điều này cho phép các dự án Clojure dễ dàng sử dụng thư viện Java hoặc mã Java kế thừa.

Chương trình nào bạn chưa bao giờ thử trước Clojure?

Trước khi tôi tìm thấy Clojure, tôi đã suy ngẫm về một dự án mà cần JDBC, sẽ chạy trong một container servlet , và tôi dự đoán làm rất nhiều phát triển lặp đi lặp lại vì nó không phải là rõ ràng những gì phương pháp sẽ làm việc cho dữ liệu tôi cần để phân tích. Tôi đặt nó trên đầu ghi sau bởi vì tôi không có thời gian hoặc sự kiên nhẫn cho việc biên dịch-gỡ lỗi- triển khai xác thực đi xe đạp mà Java yêu cầu. Tôi hiện đã viết đơn đăng ký tại Clojure, và tôi rất hài lòng về sự dễ dàng của thực hiện các thay đổi khi đang bay và đang có thể kiểm tra kết quả ngay lập tức .Chưa kể đến niềm vui về lập trình không khóa và đang được giải phóng khỏi việc phải phát triển (và cấu trúc phân cấp) lớp phân cấp.

- "MikeM" qua [email protected] mailinglist

loại
+0

Bạn có sử dụng bất kỳ khung công tác nào để tạo một Clojure servlet không? – Pablo

+0

@ J.PabloFernández: Tôi khuyên bạn nên truy cập nhóm Clojure @ Google Groups và đặt câu hỏi của bạn. Có rất nhiều người dùng có kinh nghiệm cùng với tác giả của Clojure Rich Hickey. –

2

dự án gì là đối tượng của Java trên Clojure, ngược lại, và kết hợp?

Nếu bạn muốn phát triển một khung công tác được Java và Clojure tiêu thụ, tôi đã tìm thấy cách viết tóm tắt chính (giao diện lớp cơ sở quảng cáo) trong Java để thích hợp hơn khi viết chúng trong Clojure. Clojure's gen-class là hơi tẻ nhạt và thay vì sử dụng proxy). Nếu bạn là người dùng Hibernate hoặc bất kỳ khung công tác nào khác sử dụng chú thích Java mà không cung cấp thay thế có lập trình, bạn sẽ gặp một số rắc rối, vì nó không tầm thường để mô phỏng POJO được chú thích với cấu trúc dữ liệu của Clojure.

Ngoài ra, tôi đã không gặp phải trường hợp sử dụng nào mà Clojure kém thích hợp hơn Java; bạn phải đối phó với sự mất mát của gõ tĩnh, tất nhiên, mà cảm thấy hơi bối rối lúc đầu, nhưng có xu hướng biến mất.

Các vấn đề liên quan