我最近开始学习Clojure,我的主要编程语言是Ruby,我没有任何Java经验 .
-
使用Clojure时必须知道哪些Java标准类?
很显然,Clojure没有为所有内容提供包装,Java的库提供了许多功能 .
在javadocs上有很多它们 - 我应该探索哪些?
-
我在哪里寻找,如何安装第三方库(clojure和java)?
在Ruby中我会访问Rubyforge或Rubytoolbox,git等,然后只需宝石安装我觉得有趣的包 .
-
你会推荐哪种Clojure编辑/思想(学习曲线最低)?
我试图将Netbeans与Enclojure一起使用,而且矛盾的是它是迄今为止我最大的障碍:
每个生成的项目都有一些xml文件,文件夹,库依赖等 . 我的目的不明白 .
我正在做一些labrepl练习,并希望在一个新项目中分别试用一些捆绑的库,但是这个我无法完成的简单任务:/
-
如何发布clojure程序?
这与上面的问题非常相关 .
-
是否有任何clojure社区驱动的博客有新闻,代码提示等?
9 回答
只有当你无法弄清楚如何使用Clojure's core API或Clojure contrib libraries做某事时,才能探索javadocs .
对于第三方库,有Clojars . 我是一个很好的起点 . 许多Clojure项目都在github上托管,所以你可以尝试在那里搜索clojure .
如果您已经了解Emacs,那么可以很好地支持在Emacs中编辑Clojure . 如果你没有尝试同时学习Emacs和Clojure . 查看getting started page on the Clojure wiki获取有关使用多种不同IDE的信息 . 不幸的是,Clojure主页上的wiki链接是错误的 .
最后,查看Planet Clojure,了解有关使用Clojure处理各种不同内容的很多好博文,包括有关入门的有用帖子 .
没有 . 你可以通过谷歌搜索和在Clojure IRC Channels 上提问 . 随着时间的推移,您将了解自己的需求 . 您可以调查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
那可能是Enclojure,或逆时针 . 大多数Clojure用户使用Emacs或者在较小程度上使用Vim . Emacs是Lisp的最佳编辑,但有一点学习曲线可以与之友好 . 如果您不愿意学习语言和编辑器,您可能想要进入Enclojure / Eclipse(逆时针)方向 .
http://planet.clojure.in/和Google小组 .
最简单的方法是使用Leiningen和jar和uberjar命令 . 您可以编写代码,然后将该代码放在.jar文件中并为其编写启动脚本 . 你不想这样做 . Jars实际上只有在您实际编译代码时才有用,并且大多数Clojure代码都不是 that .
总而言之,Clojure IRC Channels 非常有用并且新手友好 . 没有先前的经验,很难进入JVM世界 . 不要害怕停下来问问题 . 我们在这里提供帮助 .
对于Clojure而言,您不必了解Java语言,尽管它有所帮助 . 最重要的知识是如何编译,如何设置类路径等等 . 我已经在java中编写了一些程序,但我仍然发现这有时让我感到沮丧 .
在java上学习一两个初学者教程可能也很有用,但是根本不需要花太多时间 .
您可以使用leiningen自动管理每个项目的依赖项 . (我已经编辑了这部分答案 . 经过进一步评估,Leiningen几乎可以用于所有情况 . )
我学会了喜欢emacs . 主要的Java IDE都有自己的clojure风格(按成熟度降序排列):
Netbeans - enclojure
IntelliJ - la clojure
Eclipse - 逆时针
但是,如果您有学习emacs的倾向,那可能就是时候了 . This tutorial is ridiculously comprehensive.
In jars.
google group和planet clojure .
( EDIT :增加了Leiningen的全面推荐 . )
从下周开始,RubyLearning将有一个为期一个月的免费Clojure课程,对您来说很有意思:
http://rubylearning.com/blog/2010/03/09/clojure-101-a-new-course/
Clojure是Java的彻底改变 . 我建议你只关注其中一个(clojure),而不是两个 . 无论如何还有很多值得学习的东西 . 使用基本编辑器,尽可能多地使用REPL . 一个很好的clojure介绍是在here和here
Clojure contrib是一个很好的起点http://github.com/richhickey/clojure-contrib另一个是列宁根 - http://zef.me/2470/building-clojure-projects-with-leiningen
只需使用记事本或vim . 对你来说应该绰绰有余 . 我个人在ubuntu下使用kate,因为它为你提供了lisp代码格式 . 硬核用户可能使用emacs(我真的很讨厌)
Clojure google group友好且知识渊博
对于你需要关注的博客Planet Clojure
for Java - 至少需要知道java.lang和java.io
对于IDE的描述最好是看Getting Started page
使用第三方库可以使用Leiningen或Maven构建工具 - 它们都可以自动解决依赖关系 . “入门”页面包含所有必要信息
Clojure程序的分发通常实现为为jar提供源代码(或编译代码) . 您只能使用'lein jar'捆绑您的代码,或使用'lein uberjar'命令提供包含所有依赖项的完整解决方案
Best First Clojure IDE: Nightcode
要专注于Clojure,直到你在IDE和工具上击败学习曲线:得到Nightcode最初是为了让初学者课程没有在emacs上花费一半的时间,但它只是越来越有用 . 基本上它将这些功能用于在简单的包中启动和运行 .
它在窗口的一角有一个通用的Clojure REPL,在编辑区域有一个你旋转的第二个REPL,它可以访问你在REPL中写下的函数 . 对于clojure优化编辑,您有一个用于打开/关闭paredit的按钮(主动管理的括号,带有按键以包装/解包/等) . 它可以部署一组现成的模板,以便在准备好代码的状态下启动项目 . 有一个用于创建jar的单击按钮(单个文件Java可执行文件) . 它具有GIT集成功能,无需在机器上安装GIT即可从中抽取并推送到github .
我已经能够将Nightcode下载到任何具有最新Java运行时的计算机并且不需要工作(这是一个Java jar,无需安装) .
你将使用Leinengen并学习更多编辑;但是为了开始实际编程而没有吸引灵魂的启动混乱,Nightcode是一个很棒的工具 .
我同意几乎所有关于我所了解的事情的其他建议 . 以下是还没有人做过的两点:
初学者应该学习有关如何使用具有适当文件名和目录名的命名空间的标准Clojure约定,并虔诚地遵循这些约定 . (也许Nightcode可以避免这种情况 - 我不会避免这种情况 . )如果你不这样做,一旦你超越了琐碎的实验,命名空间问题就会很快让你发疯 . Colin Jones' tutorial on namespaces是我刚开始时找到的最佳起点 . 有些约定实际上来自Java,顺便说一下,但是你不需要为了它们而学习任何Java .
您可能一开始根本不需要第三方库 . 依赖于取决于你想做什么 . standard Clojure libraries涵盖了很多方面 .
如果你想学习基础知识并做一些练习,Clojurecademy是一个好的开始 .