好吧,我对另一个列表很感兴趣。我给自己买了一本测试版的Clojure编程书籍...
我最注意到的一件事就是假设我知道...就像所有主要的java类一样。
除了,一般来说,我并不真正关心Java。我只想要有足够的知识让Clojure成为我的一个选择。
对于如何学习我所需要的东西,有什么建议吗?
发布于 2009-01-31 15:50:19
我对您的主要建议是,您已经通过购买Programming Clojure来实现了。多年来,我一直回避和厌恶Java,而(编程) Clojure对它进行了足够的修复,这门语言现在让我兴奋不已。谁会想到一个以繁重著称的系统会让你交互式的(map #(.getName %) (.getMethods (class "")))呢?请参阅“使用Java,3.5将Ant项目和任务添加到Lancet”,以了解我在Ruby中熟悉的风格。
如果你使用的是Freenode #clojure,也可以加入##java。获取Java的API documentation并将其放在手边。在网上搜索你想做的事情的Java answer,并或多或少直接翻译成to 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=>发布于 2009-04-12 06:20:07
嗯,实际上,尽管Clojure是在考虑Java开发人员的情况下开发的,但它并不是为Java程序员编写的。
Java被设计为在
环境中很好地互操作。
尽管它是这样做的,但这并不是它设计的目的(至少在"Java环境“的语言部分不是这样)。"Java环境“意味着语言和JVM以某种方式相互联系,使它们成为一体。他们不是。Conjure是一种原生JVM语言(与Jython或JRuby不同),它使用构建良好的虚拟机来运行。
就像Greg所说的那样,
是为使用Java而构建的,除非你想真正进入到Clojure的软件事务存储系统中,否则我建议你去看看不同的Lisp。
不,对不起。Clojure不是“用Java构建的”。它是为JVM构建的。如果愿意,您可以使用Java库,但这并不是必需的(尽管它很有用)。如果您不想学习Java,建议您使用不同的Lisp。那太荒谬了。Clojure不应该是Java;它应该是一流的Lisp。顺便说一句,这意味着在某些方面增强Lisp,使其更加现代和实用。它与Java良好协作的能力应该被视为一种奖励,而不是一种负担。
正如Greg上面指出的,像Clojure和Groovy这样的语言瞄准
有一个主要原因,这样Java开发人员就可以两全其美。
也是错的。出于上面所述的原因。它们不是为Java开发人员编写的。很抱歉在这里如此直截了当,但在这些回复中,我还没有看到一个关于Clojure的受过教育的帖子,而且我今天才刚刚了解到Clojure!看到这种有害的建议如此容易地给出是令人沮丧的。
我将引用Rick Hickey (编写Clojure的人)的话来结束我的演讲:
“你可以讨厌Java,喜欢JVM。”
他继续说,这就是他的立场。
发布于 2009-01-31 11:51:03
无意冒犯格雷格但我不同意。学习Clojure也是一个掌握Java世界的绝佳机会。我这一生中从来没有用Java编程过一天,我正在学习Clojure,我喜欢它的每一分钟。当然,我不知道所有的类,但我看不出这本书假设你知道所有的类。无论哪种方式,Java都不是学习Clojure的必要条件。
https://stackoverflow.com/questions/497890
复制相似问题