2010-04-09 17 views
39

我最近開始學習Clojure,我的主要編程語言是Ruby,而且我沒有任何Java經驗。學習Clojure - 我應該瞭解Java和更多

  • 哪個Java標準類是必須與Clojure的工作時,知道嗎?

    很顯然,Clojure沒有包裝所有東西,很多功能 由Java庫提供。

    就像javadocs上的一大堆 - 我應該探索哪些?

  • 我在哪裏尋找和如何安裝第三方庫(clojure和java的)?

    在Ruby中,我會訪問Rubyforge或Rubytoolbox,git等,然後只需要gem安裝我覺得有趣的包。

  • 對於Clojure,你會推薦哪種編輯器/ IDE(學習曲線最低)?

    我試圖使用NetBeans與Enclojure和paradoxally這是我最大的障礙至今:

    每個生成的項目有一定的XML文件,文件夾,庫依賴等爲目的的我不知道。

    我做一些labrepl練習,並希望在新項目中分別嘗試一些捆綁的庫,但這個簡單的任務,我不能做到:/

  • 如何分配Clojure程序?

    這與上述問題非常相關。

  • 是否有任何clojure社區驅動的博客與新聞,代碼提示等?

+0

如果將其分解爲單獨的問題可能會更好。好問題,但。 – 2010-04-11 11:08:20

回答

3
  • 你需要尋找到Planet Clojure
  • 的Java博客 - 你至少需要知道的java.lang & java.io
  • 的集成開發環境說明它更好地期待Getting Started page
  • 使用第三方庫,您可以使用Leiningen或Maven構建工具 - 它們都提供自動解析依賴關係。入門頁面包含所有必要的信息
  • Clojure程序的分佈通常實現爲提供源代碼(或編譯)代碼的jar。你可以用「雷音罐子」捆綁只有你的代碼或提供完整的解決方案與「雷音uberjar」所有依賴命令
+1

您實際上必須爲您的項目製作一個project.clj,然後才能魔法般地將您的問題帶走。 – Rayne 2010-04-09 19:57:02

13

探索javadocs只在需要的時候可以不知道如何使用Clojure's core API做某件事,或者Clojure contrib libraries

對於第三方庫,有Clojars。我不確定社區已被廣泛採用,但它是一個開始的好地方。許多Clojure項目都在github上託管,所以你可以嘗試在那裏搜索clojure。

如果你已經知道的Emacs,有一個在Emacs編輯Clojure的良好支持。如果您不知道Emacs,請不要嘗試同時學習Emacs和Clojure。查看getting started page on the Clojure wiki以獲取有關使用多個不同IDE的信息。不幸的是,Clojure主頁上的維基鏈接是錯誤的。

最後,檢查出Planet Clojure獲得大量有關使用Clojure的爲各種不同的東西,包括入門有幫助的帖子好的博客文章。

+2

Clojars醜陋,因爲沒有瀏覽或類別。 – edbond 2010-04-10 08:10:37

4

要知道何時使用Clojure,哪些Java標準類是必須的 ?

Clojure是從Java一個根本性的改變。我建議你只專注於其中的一個(clojure),而不是兩者。無論如何,還有很多東西需要學習。使用一個基本的編輯器,並儘可能多地使用REPL。 一個很好的介紹對於Clojure是在herehere

哪裏找?如何 安裝第三方庫?

的Clojure的contrib是開始http://github.com/richhickey/clojure-contrib 另一種是leninmgen的好去處 - http://zef.me/2470/building-clojure-projects-with-leiningen

的編輯器/ IDE爲Clojure中,你會 推薦(最低的學習曲線 )?

只要使用記事本++或者vim。它對你來說應該足夠了。我個人在ubuntu下使用凱特,因爲它給你的lisp代碼格式。硬核用戶可能使用emacs(我真的很討厭)

是否有驅動 博客新聞,代碼提示等任何Clojure的社區?

Clojure google group是友好的,非常熟悉

8

哪些Java標準類是必須的使用Clojure工作時就知道?

無。您可以通過googleing並在Clojure IRC頻道詢問問題。隨着時間的推移,你會了解你需要什麼。你可以研究java.lang和java.io類,但是在你需要它們之前你不需要它們。

我在哪裏尋找和如何安裝第三方庫?

Leiningen是一個非常簡單的maven-wrapper-kinda-thingy。您可以將它用於依賴關係管理,並作爲您的代碼的構建工具,http://github.com/technomancy/leiningen,並且有http://clojars.org/ Clojure庫的許多庫放置在可由Leiningen和Maven訪問的Maven回購站中。 http://www.assembla.com/wiki/show/clojure/Getting_Started

對於Clojure,你會推薦哪種編輯器/編程器(學習曲線最低)?

這可能是Enclojure或逆時針。大多數Clojure用戶使用Emacs或較小程度上使用Vim。 Emacs是Lisp最好的編輯器,但有一點學習曲線可以讓人友好。如果你不願意學習一門語言和一名編輯,你可能想要進入Enclojure/Eclipse(逆時針)方向。

是否有任何clojure社區驅動的博客與新聞,代碼提示等?

http://planet.clojure.in/和Google小組。

如何分發clojure程序?

最簡單的方法是使用Leiningen和jar和uberjar命令。您可以編寫代碼,然後將該代碼放入.jar文件併爲其編寫啓動腳本。如果你不想,你甚至不需要把它放在一個罐子裏。如果你實際編譯你的代碼,Jars實際上是非常有用的,而且大部分Clojure代碼都沒有被編譯。某些功能需要compliation,但他們不使用多。

總而言之,Clojure IRC頻道是非常有幫助和新手友好的。沒有先前的經驗,難以進入JVM世界。不要害怕停下來問問題。我們在這裏提供幫助。

8

在使用Clojure時,哪些Java標準類是必須知道的?

這不是Java語言,你必須知道Clojure,儘管它有幫助。最重要的知識是如何編譯,如何設置類路徑等等。我已經用java編程了一段時間,而且我仍然發現這有時會讓我絆倒。

它也可能要經過java的一個或兩個的初級教程是有用的,但不要花太多的時間在這個在所有。

哪裏找?如何安裝第三方庫(Clojure的和java的)?

您可以使用leiningen自動管理每個項目的依賴項。 (我已經編輯我的答案的這個部分。在進一步的評估,Leiningen是走在幾乎所有情況下的方式。)

的編輯器/ IDE爲Clojure中,你會推薦(最低的學習曲線)?

我已經學會了愛emacs的。主要的Java IDE都可用自己的Clojure的味道(按遞減成熟的順序排列):

  • Netbeans的 - enclojure
  • 的IntelliJ - 香格里拉Clojure的
  • 日食 - 逆時針

如果你有任何學習emacs的傾向,那麼這可能就是時候了。 This tutorial is ridiculously comprehensive.

如何分發clojure程序?

In jars.

是否有新聞,代碼提示等任何Clojure的社區驅動的博客?

google groupplanet clojure

編輯:添加Leiningen的毯子建議。)

4

將有上RubyLearning從下週開始免費一個月之久的Clojure當然,可能你是很有意思:

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

+0

不幸的是,鏈接已經損壞:( – microspino 2014-11-03 09:27:27

+0

@microspino太糟糕了。另一方面,我正在教這些課程,我不再與Rubylearning在一起,所以信息已經過時了。 – 2014-11-03 09:51:56

1

Best First Clojure IDE:Nightcode

專注於Clojure un直到你擊敗的IDE和工具的學習曲線:獲得Nightcode 它最初是由獲得初級班會不吹一半的時間在emacs的,但它只是不斷變得更加有用。 基本上它把功能讓你在簡單的包中運行起來。

它具有一般的Clojure REPL窗口的一個角落裏,而你旋轉起來,編輯區,將有機會獲得到目前爲止你寫的功能下的第二REPL。快速鍵擊運行您剛剛在REPL中寫下的行。對於經過clojure優化的編輯,您可以使用一個按鈕來打開/關閉paredit(主動管理帶擊鍵的圓括號以打包/解包/等等)。 它可以部署一套隨時可以使用的模板,以準備就緒的狀態啓動項目。有一個用於創建jar的單擊按鈕(單個文件Java可執行文件)。它具有GIT集成功能,無需在機器上安裝GIT,即可從github上拉出並推送到github。
我確定JDK(java開發工具包)是正確製作jar所必需的;但是我已經能夠使用最近的Java運行時間將Nightcode下載到任何一臺計算機上並解決問題(這是一個Java jar,不需要安裝)。

您將使用Leinengen並瞭解更多編輯;但是爲了在沒有吸食靈魂的啓動困惑的情況下開始真正的編程,Nightcode是一款非常棒的工具。

0

我同意幾乎所有關於我知道的事情的其他建議。這裏有兩個進一步指出,沒有人做出了尚未:

  1. 初學者應瞭解如何使用適當的文件名和目錄名的命名空間,並遵循這些約定宗教標準Clojure的約定。 (也許Nightcode可以避免這種情況 - 我不知道 - 但是一旦你開始使用Leiningen,你就無法避免它)。如果你不這樣做,如果你超出命名空間的問題,你會很快就會發瘋微不足道的實驗。 Colin Jones' tutorial on namespaces是我剛開始時發現的最佳起點。一些約定實際上來自Java,但是你不需要爲他們學習任何Java。

  2. 您可能完全不需要第三方庫。取決於你想要做什麼。 standard Clojure libraries覆蓋了很多地面。

0

Clojurecademy如果你想學習基礎知識並做一些練習,那麼這是一個很好的開始。