2010-04-09 21 views
39

Tôi đã bắt đầu học Clojure gần đây, ngôn ngữ lập trình chính của tôi là Ruby và tôi không có kinh nghiệm Java nào.Học Clojure - Tôi nên biết gì về Java và nhiều hơn nữa

  • Những lớp học tiêu chuẩn Java là phải biết khi làm việc với Clojure?

    Rõ ràng Clojure không đi kèm với trình bao bọc cho mọi thứ và rất nhiều chức năng được cung cấp bởi thư viện của Java.

    Có giống như một tỷ lệ trong số đó trên javadocs - tôi nên khám phá điều gì?

  • Tôi tìm kiếm ở đâu và làm cách nào để cài đặt thư viện của bên thứ ba (thư viện và tệp java)?

    Trong Ruby, tôi muốn truy cập Rubyforge hoặc Rubytoolbox, git, vv và sau đó chỉ cần cài đặt gem bạn thấy thú vị.

  • Trình chỉnh sửa/ide nào cho Clojure bạn sẽ đề xuất (với đường cong học tập thấp nhất)?

    Tôi cố gắng để sử dụng Netbeans với Enclojure và paradoxally đó là trở ngại lớn nhất của tôi cho đến nay:

    Mỗi dự án được tạo ra có một số file xml, thư mục, thư viện phụ thuộc, vv mục đích của tôi không có đầu mối.

    Tôi đang làm một số bài tập labrepl và muốn thử một số các thư viện đóng gói riêng biệt trong một dự án mới, nhưng đơn giản nhiệm vụ này tôi không thể thực hiện:/

  • Làm thế nào để phân phối các chương trình clojure?

    Điều này liên quan nhiều đến câu hỏi trên.

  • Có bất kỳ blog hướng cộng đồng clojure nào có tin tức, mẹo viết mã v.v. không?

+0

Có thể tốt hơn nếu điều này được chia thành các câu hỏi riêng biệt. Câu hỏi hay. –

Trả lời

3
  • cho blog bạn cần phải xem xét để Planet Clojure
  • cho Java - bạn cần ít nhất biết java.lang & java.io
  • cho mô tả IDE nó tốt hơn để tìm đến Getting Started page
  • để sử dụng thư viện của bên thứ ba, bạn có thể sử dụng công cụ xây dựng Leiningen hoặc Maven - cả hai đều cung cấp giải pháp tự động phụ thuộc. Trang Bắt đầu chứa tất cả thông tin cần thiết
  • việc phân biệt các chương trình Clojure thường được triển khai khi cung cấp bình chứa mã nguồn (hoặc biên dịch).Bạn có thể bó chỉ mã của bạn với 'Lein jar' hoặc cung cấp giải pháp hoàn chỉnh với tất cả phụ thuộc với 'Lein uberjar' lệnh
+1

Bạn thực sự phải thực hiện một project.clj cho dự án của mình trước khi bạn có thể kỳ diệu giải quyết vấn đề của mình. – Rayne

13

Khám phá javadocs chỉ khi cần thiết khi bạn không thể tìm ra cách để làm điều gì đó sử dụng Clojure's core API hoặc số Clojure contrib libraries.

Đối với thư viện của bên thứ ba, có Clojars. Tôi không chắc nó được cộng đồng chấp nhận rộng rãi như thế nào, nhưng đó là một nơi tốt để bắt đầu. Nhiều dự án Clojure được lưu trữ trên github, vì vậy bạn có thể thử tìm kiếm clojure ở đó.

Nếu bạn đã biết Emacs, có hỗ trợ tốt cho việc chỉnh sửa Clojure trong Emacs. Nếu bạn không biết Emacs, đừng cố gắng học Emacs và Clojure cùng một lúc. Kiểm tra các getting started page on the Clojure wiki cho thông tin về việc đi với một số IDE khác nhau. Thật không may, liên kết wiki trên trang chủ Clojure là sai.

Cuối cùng, hãy xem Planet Clojure để biết nhiều bài đăng trên blog tốt về cách sử dụng Clojure cho nhiều thứ khác nhau, bao gồm các bài đăng hữu ích để bắt đầu.

+2

Clojars là xấu vì không có trình duyệt hoặc loại. – edbond

4

Lớp chuẩn Java nào là phải để biết khi làm việc với Clojure ??

Clojure là một thay đổi căn bản từ Java. Tôi đề nghị bạn chỉ tập trung vào một trong số họ (clojure) và không phải cả hai. Có rất nhiều thứ để học. Sử dụng trình soạn thảo cơ bản và sử dụng REPL nhiều nhất có thể. Một giới thiệu tốt cho clojure là trong herehere

để tôi tìm ở đâu và làm cách nào cài đặt thư viện của bên thứ ba?

Clojure contrib là một nơi tốt để bắt đầu http://github.com/richhickey/clojure-contrib Một số khác được leninmgen - http://zef.me/2470/building-clojure-projects-with-leiningen

Những biên tập viên/ide cho Clojure bạn sẽ khuyên (với việc học tập đường cong thấp nhất)?

Chỉ cần sử dụng notepad ++ hoặc vim. Nó sẽ là quá đủ cho bạn. Cá nhân tôi sử dụng kate dưới ubuntu vì nó cung cấp cho bạn định dạng mã lisp. Những người sử dụng lõi cứng có thể sử dụng các emacs (mà tôi thực sự ghét)

Có cộng đồng clojure nào hướng dẫn blog với tin tức, mẹo viết mã, v.v ... không?

Các Clojure google group là thân thiện và rất am hiểu

8

Những lớp học tiêu chuẩn Java là phải biết khi làm việc với Clojure ??

Không có. Bạn có thể nhận được bằng cách googleing và đặt câu hỏi trên kênh Clojure IRC tại đây. Bạn sẽ học những gì bạn cần theo thời gian. Bạn có thể điều tra các lớp java.lang và java.io, nhưng bạn sẽ không cần chúng cho đến khi bạn cần chúng.

Tôi tìm kiếm ở đâu và làm cách nào để cài đặt thư viện của bên thứ ba?

Leiningen là một loại maven-wrapper-kinda-thingy cực kỳ đơn giản. Bạn có thể sử dụng nó cho quản lý phụ thuộc và như một công cụ xây dựng cho mã của bạn, http://github.com/technomancy/leiningen và có http://clojars.org/ trong đó nhiều thư viện Clojure được đặt trong kho lưu trữ maven có thể truy cập bởi Leiningen và Maven. http://www.assembla.com/wiki/show/clojure/Getting_Started

Trình chỉnh sửa/ide nào cho Clojure bạn sẽ đề xuất (với đường cong học tập thấp nhất)?

Điều đó có thể là Enclojure hoặc ngược chiều kim đồng hồ. Hầu hết người dùng Clojure sử dụng Emacs hoặc ở mức độ thấp hơn, Vim. Emacs là biên tập viên tốt nhất cho Lisp, nhưng có một chút đường cong học tập để thân thiện. Nếu bạn không sẵn lòng học một ngôn ngữ và một trình soạn thảo, bạn có thể muốn đi theo hướng Enclojure/Eclipse (ngược chiều kim đồng hồ).

Có bất kỳ blog hướng cộng đồng clojure nào có tin tức, mẹo viết mã, v.v. không?

http://planet.clojure.in/ và nhóm Google.

Cách phân phối chương trình clojure?

Cách dễ nhất là với Leiningen và lệnh jar và uberjar. Bạn có thể viết mã của bạn, và sau đó bạn có thể đặt mã đó trong một tệp .jar và viết một kịch bản khởi động cho nó. Bạn thậm chí không cần phải đặt nó trong một cái lọ nếu bạn không muốn. Lọ thực sự chỉ hữu ích nếu bạn thực sự biên dịch mã của bạn và hầu hết mã Clojure không được biên dịch. Một số tính năng nhất định yêu cầu phải tuân thủ, nhưng chúng không được sử dụng rằng nhiều.

Tất cả trong tất cả, kênh Clojure IRC rất hữu ích và thân thiện với người mới. Có thể khó vào thế giới JVM mà không có kinh nghiệm trước đó. Đừng ngại dừng lại và đặt câu hỏi. Chúng tôi ở đây để giúp đỡ.

8

Các lớp chuẩn Java nào phải biết khi làm việc với Clojure?

Nó không phải là quá nhiều ngôn ngữ java mà bạn phải biết về cho Clojure, mặc dù nó giúp. Kiến thức quan trọng nhất là làm thế nào để biên dịch, làm thế nào để thiết lập classpath, và vv. Tôi đã lập trình trong java một chút, và tôi vẫn thấy điều này vấp ngã tôi vào những lúc.

Nó cũng có thể có ích phải đi qua một hoặc hai hướng dẫn người mới bắt đầu trên java, nhưng không dành nhiều thời gian về vấn đề này cả.

để tôi tìm ở đâu và làm thế nào để cài đặt thư viện của bên thứ ba (clojure và java cái)?

Bạn có thể sử dụng leiningen để quản lý phụ thuộc cho mỗi dự án một cách tự động. Khi tôi đánh giá thêm, Leiningen là con đường để đi vào hầu hết các trường hợp.)

Trình soạn thảo/ide cho Clojure bạn muốn giới thiệu (với đường cong học tập thấp nhất)?

Tôi đã học cách yêu các emac. Các IDE java lớn tất cả đều có hương vị riêng của họ clojure sẵn (theo thứ tự của sự trưởng thành giảm):

  • Netbeans - enclojure
  • IntelliJ - la clojure
  • Eclipse - ngược

Tuy nhiên, nếu bạn có bất kỳ khuynh hướng nào để học các emac, đây có thể chỉ là thời gian. This tutorial is ridiculously comprehensive.

Cách phân phối chương trình clojure?

In jars.

Có bất kỳ blog dựa vào cộng đồng clojure với tin tức, mẹo mã vv?

google groupplanet clojure.

(EDIT: thêm khuyến nghị chăn của Leiningen.)

4

Sẽ có một Clojure khóa học miễn phí kéo dài một tháng trên RubyLearning bắt đầu vào tuần tới có thể là thú vị dành cho bạn:

http://rubylearning.com/blog/2010/03/09/clojure-101-a-new-course/

+0

tiếc là liên kết bị hỏng: ( – microspino

+0

@microspino Điều đó quá tệ. Mặt khác, tôi đã dạy các khóa học này và tôi không còn với Rubylearning nữa, vì vậy thông tin sẽ lỗi thời. –

1

IDE Clojure đầu tiên tốt nhất: Nightcode

Để tập trung vào Clojure un cho đến khi bạn đánh bại đường cong học tập trên IDE và dụng cụ: có được Nightcode Ban đầu nó được thực hiện để có được các lớp học mới bắt đầu mà không thổi một nửa thời gian trên các emacs, nhưng nó chỉ tiếp tục trở nên hữu ích hơn. Về cơ bản, nó đặt các tính năng để giúp bạn và chạy trong một gói đơn giản.

Nó có một REPL Clojure chung ở một góc của cửa sổ và REPL thứ hai bạn quay lên, trong khu vực trình chỉnh sửa, sẽ có quyền truy cập vào các chức năng bạn đã viết cho đến thời điểm này. Phím tắt nhanh chạy dòng bạn vừa viết trong REPL. Đối với chỉnh sửa clojure tối ưu hóa, bạn có một nút để bật/tắt paredit (chủ động quản lý dấu ngoặc đơn với tổ hợp phím để bọc/unwrap/etc). Nó có thể triển khai một tập hợp các mẫu sẵn sàng để khởi động dự án của bạn ở trạng thái sẵn sàng để mã. Có một nút bấm một lần để tạo một jar (tập tin thực thi Java đơn). Nó có tích hợp GIT để kéo và đẩy vào github mà không cần cài đặt GIT trên máy.
Tôi chắc chắn rằng JDK (bộ phát triển java) là cần thiết để làm cho bình đúng cách; nhưng tôi đã có thể chỉ cần tải về Nightcode cho bất kỳ máy tính nào với thời gian chạy Java gần đây và làm việc đi (Đó là một jar Java, không cần cài đặt).

Bạn sẽ sử dụng Leinengen và tìm hiểu thêm người chỉnh sửa; nhưng để bắt đầu thực sự lập trình mà không có sự nhầm lẫn bắt đầu từ tâm hồn, Nightcode là một công cụ tuyệt vời.

0

Tôi đồng ý với hầu hết tất cả các lời khuyên khác về những điều tôi biết. Dưới đây là hai điểm thêm rằng không có ai đã được nêu ra:

  1. người mới bắt đầu nên học ước Clojure tiêu chuẩn về cách sử dụng không gian tên với tên tập tin thích hợp và tên thư mục, và làm theo các công ước tôn giáo. (Có lẽ Nightcode cho phép bạn tránh điều này - tôi không biết - nhưng một khi bạn bắt đầu sử dụng Leiningen, bạn không thể tránh nó.) Nếu bạn không, các vấn đề về không gian tên sẽ nhanh chóng khiến bạn phát điên khi bạn vượt ra ngoài thử nghiệm tầm thường. Colin Jones' tutorial on namespaces là điểm khởi đầu tốt nhất mà tôi tìm thấy khi tôi bắt đầu. Một số quy ước thực sự đến từ Java, btw, nhưng bạn không cần phải tìm hiểu bất kỳ Java vì lợi ích của chúng.

  2. Ban đầu, bạn có thể không cần thư viện của bên thứ ba. Phụ thuộc vào những gì bạn muốn làm. Các standard Clojure libraries bao gồm rất nhiều mặt đất.

0

Clojurecademy là một khởi đầu tốt nếu bạn muốn tìm hiểu kiến ​​thức cơ bản và thực hiện một số bài tập.

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