2008-10-08 50 views
27

在發現Clojure之後,我花了幾天的時間沉浸其中。如何從Java轉換到Clojure?

什麼樣的項目類型適用於Java而不是Clojure,反之亦然?

什麼是您在Clojure之前從未嘗試過的程序示例?

+1

我從來沒有聽說過!但它的Lisp!歡呼! Lisp回來了! – 2008-10-08 09:43:00

+0

我很想知道這個答案。我想更多地瞭解Clojure。 – 2008-10-08 13:29:10

+0

@Andre Bossard:它從未離開過。但是現在關於Clojure,它確實幫助Lisp成爲「主流」。有幾家初創公司使用Clojure,據信至少有成千上萬的Clojure程序員:這種語言只是踢屁股。下次小心諷刺:你永遠不會在多少年後不必要的諷刺最終會看起來很傻。 – 2012-10-03 01:22:08

回答

14

Clojure非常適合concurrent programming。它提供了用於處理線程的奇妙工具,如軟件事務內存和可變引用。

作爲Western Mass Developer's Group的一個演示,Rich Hickey做了一個蟻羣仿真,其中每個ant都是自己的線程,所有變量都是不變的。即使有非常多的線程,工作效果也不錯。這不僅僅是因爲Rich是一位了不起的程序員,還因爲他在編寫代碼時不必擔心鎖定問題。你可以看看他的presentation on the ant colony here

4

什麼項目類型借給自己使用Java過的Clojure,副 反之亦然,或者組合?

一個項目在GUI建設工具 (如馬蒂斯Netbeans中)是將在可能 仍然需要的Java的情況下需要 。任何在 中完成的事情都可以在Clojure中完成,相當於 ,如果需要 或者只需要訪問Java 需要(。,doto,new等),則使用代理和gen-class。這個 允許Clojure項目輕鬆使用 Java庫或遺留Java代碼。

哪些程序在Clojure之前從未嘗試?

之前,我發現Clojure的,我是 考慮,需要 JDBC的一個項目,將在servlet容器 跑,我期待做了很多 迭代開發的,因爲 尚不清楚哪些方法會 爲我需要分析的數據工作。 我把它放在了後臺,因爲我沒有時間或耐心編譯調試部署驗證 循環Java需要。我現在 寫在Clojure, 申請,我很高興在易於 進行更改和正在 能夠立即檢查結果 。更不用說無鎖編程的快樂 ,並且不需要開發(和 重構)類層次結構。通過[email protected]郵件列表

2

什麼項目類型借給自己的Java在Clojure的,反之亦然 「MikeM」,並結合 -

如果你想開發一個框架,它是由Java和Clojure中被消耗掉,我發現用Java編寫的主要抽象(接口廣告基類)將超過Clojure中寫他們最好(我覺得Clojure的gen-class稍微繁瑣,而使用proxy)。

如果您是Hibernate或任何其他大量使用Java註釋而沒有提供編程選擇的框架的用戶,則會遇到一些麻煩,因爲使用Clojure的數據結構模擬帶註釋的POJO並不容易。除此之外,我沒有遇到過Clojure比Java更不合適的用例,你必須應對靜態打字的失敗,當然這種打字起初有點令人不安,但往往會消失。