在没有Java知识的情况下学习Clojure [已关闭]

2022-09-02 23:11:57

好吧,所以我对另一个列表很感兴趣。我给自己买了一本测试版Clojure编程书......

我最注意到的一件事是,它假设我知道......像所有主要的java类一样。

除了,一般来说,我并不真正关心Java。我只是想让Clojure有足够的知识成为我的选择。

关于如何学习我需要的一切的任何建议?


答案 1

嗯,实际上,尽管Clojure是在考虑Java开发人员的情况下开发的,但它不是Java程序员编写的。

Clojure被设计为在Java环境中很好地互操作。

虽然它确实如此,但这不是它的设计目的(至少在“Java环境”的语言部分不是这样)。“Java环境”意味着语言和JVM以某种方式相互连接,使它们成为一体。事实并非如此。Conjure是一种原生的JVM语言(与Jython或JRuby不同),它使用一个非常完善的虚拟机来生活。

就像Greg说的,Clojure是为Java而构建的,除非你想真正进入Clojure的软件事务内存系统,否则我会说看看一个不同的Lisp。

不,对不起。Clojure不是“为使用Java而构建的”。它是为JVM构建的。如果您愿意,可以使用Java库,但这不是必需的(尽管它很有用)。至于建议,如果你不想学习Java,就使用不同的Lisp。太荒谬了。Clojure并不意味着是Java;它意味着是一流的Lisp。顺便说一句,一个意味着以某种方式增强Lisp,使其更加现代和实用。它与Java很好地协同工作的能力应该被认为是一种奖励,而不是一种负担。

正如上面的Greg所指出的,像Clojure和Groovy这样的语言瞄准JVM有一个主要原因,这样Java开发人员就可以两全其美。

也错了。出于上述原因。它们不是为Java开发人员编写的。很抱歉在这里如此直言不讳,但我没有在这些回复中看到关于Clojure的受过教育的帖子,我今天刚刚了解了Clojure!看到这种有害的建议如此容易地给出,真是令人沮丧。

最后,我将引用Rick Hickey(写Clojure的人)的一句话来结束我的演讲:

“你可以讨厌Java,喜欢JVM。

他接着说,这就是他的立场。


答案 2

我对你的主要建议是,你已经通过购买Programming Clojure完成了。多年来,我一直回避和厌恶Java,(编程)Clojure已经恢复了它,以至于这门语言现在让我兴奋不已。谁会想到一个著名的繁重系统会让你互动?浏览“使用 Java,3.5 将 Ant 项目和任务添加到 Lancet”,以我从 Ruby 中熟悉的风格进行探索。(map #(.getName %) (.getMethods (class "")))

如果你在Freenode #clojure,也加入 ##java。获取 Java 的 API 文档并保持其方便。在网络上搜索你想做的事情的Java答案,并或多或少地直接将其翻译成Clojure

编辑: 在 clj:

user=> (use 'clojure.contrib.javadoc)
nil
user=> (keys (ns-publics 'clojure.contrib.javadoc))
(*remote-javadocs* javadoc find-javadoc-url add-remote-javadoc
*core-java-api* add-local-javadoc *local-javadocs*)
user=> (javadoc "this is a java.lang.String")
true  (browses to http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html)
user=> (javadoc java.net.ServerSocket)
true  (...)
user=>

推荐