【问题标题】:Learning Clojure - What should I know about Java and more [closed]学习 Clojure - 我应该了解 Java 及更多内容 [关闭]
【发布时间】:2010-04-09 17:34:22
【问题描述】:

我最近开始学习 Clojure,我的主要编程语言是 Ruby,我没有任何 Java 经验。

  • 在使用 Clojure 时,必须了解哪些 Java 标准类?

    显然 Clojure 并没有为所有内容和许多功能提供包装器 由 Java 的库提供。

    在 javadocs 上有数不胜数的它们 - 我应该探索哪些?

  • 我在哪里寻找以及如何安装第三方库(clojure 和 java 的)?

    在 Ruby 中,我会访问 Rubyforge 或 Rubytoolbox、git 等,然后只需 gem 安装我发现有趣的包。

  • 您会推荐哪个 Clojure 编辑器/IDE(学习曲线最低)?

    我正在尝试将 Netbeans 与 Enclojure 一起使用,但矛盾的是,这是迄今为止我遇到的最大障碍:

    每个生成的项目都有一些xml文件、文件夹、库依赖等,目的我不知道。

    我正在做一些 labrepl 练习,想在一个新项目中单独试用一些捆绑的库,但是这个简单任务我无法完成:/

  • 如何分发clojure程序?

    这与上面的问题非常相关。

  • 是否有任何 clojure 社区驱动的博客,其中包含新闻、代码提示等?

【问题讨论】:

  • 如果将其拆分为单独的问题可能会更好。好问题。

标签: clojure


【解决方案1】:

仅当您不知道如何使用Clojure's core APIClojure contrib libraries 做某事时,才根据需要探索javadocs

对于第 3 方库,有 Clojars。我不确定它已被社区广泛采用,但它是一个很好的起点。许多 Clo​​jure 项目都托管在 github 上,因此您可以尝试在那里搜索 clojure。

如果您已经了解 Emacs,则可以很好地支持在 Emacs 中编辑 Clojure。如果您不了解 Emacs,请不要尝试同时学习 Emacs 和 Clojure。查看getting started page on the Clojure wiki 了解如何使用多种不同的 IDE。不幸的是,Clojure 主页上的 wiki 链接是错误的。

最后,请查看 Planet Clojure,了解许多关于使用 Clojure 处理各种不同事物的优秀博文,包括有关入门的有用博文。

【讨论】:

  • Clojars 很丑,因为没有浏览或分类。
【解决方案2】:

使用 Clojure 时必须了解哪些 Java 标准类?

没有。您可以在此处的 Clojure IRC 频道上进行谷歌搜索和提问。随着时间的推移,你会学到你需要的东西。您可以研究 java.lang 和 java.io 类,但在需要它们之前您不会需要它们。

我在哪里寻找以及如何安装第三方库?

Leiningen 是一个非常简单的 maven-wrapper-kinda-thingy。您可以将它用于依赖管理并作为代码的构建工具http://github.com/technomancy/leiningen,还有http://clojars.org/,其中很多 Clo​​jure 库被放置在 Leiningen 和 Maven 可以访问的 maven 存储库中。 http://www.assembla.com/wiki/show/clojure/Getting_Started

您会推荐哪个 Clojure 编辑器/IDE(学习曲线最低)?

那可能是 Enclojure 或逆时针。大多数 Clojure 用户使用 Emacs 或在较小程度上使用 Vim。 Emacs 是最适合 Lisp 的编辑器,但有一点学习曲线要​​友好。如果你不愿意学习一门语言和一个编辑器,你可能想往 Enclojure/Eclipse(逆时针)方向前进。

是否有任何 clojure 社区驱动的博客,其中包含新闻、代码提示等?

http://planet.clojure.in/ 和 Google 群组。

如何分发clojure程序?

最简单的方法是使用 Leiningen 以及 jar 和 uberjar 命令。您可以编写代码,然后可以将该代码放入 .jar 文件中并为其编写启动脚本。如果你不想,你甚至不必把它放在罐子里。仅当您实际编译代码时,Jars 才真正有用,并且大多数 Clojure 代码都没有被编译。某些功能需要编译,但它们的使用那么多

总而言之,Clojure IRC 频道对新手非常有帮助。如果没有经验,可能很难进入 JVM 世界。不要害怕停下来问问题。我们随时为您提供帮助。

【讨论】:

    【解决方案3】:

    使用 Clojure 时必须了解哪些 Java 标准类?

    对于 Clojure,您必须了解的 Java 语言并不多,尽管它会有所帮助。最重要的知识是如何编译,如何设置类路径等等。我已经用 java 编程了一点,但有时我仍然觉得这让我很头疼。

    阅读一两个关于 Java 的初学者教程可能也很有用,但根本不要花太多时间在这上面。

    我在哪里寻找以及如何安装第三方库(clojure 和 java 的)?

    您可以使用leiningen 自动管理每个项目的依赖关系。 (我已经编辑了这部分答案。经过进一步评估,Leiningen 几乎在所有情况下都是可行的。)

    您会推荐哪个 Clojure 编辑器/IDE(学习曲线最低)?

    我学会了爱上 emacs。主要的 Java IDE 都有自己的 clojure 风格(按成熟度递减顺序):

    • Netbeans -- enclojure
    • IntelliJ -- la clojure
    • Eclipse -- 逆时针

    不过,如果您有任何学习 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/

      【讨论】:

      • 不幸的是链接被破坏了:(
      • @microspino 太糟糕了。另一方面,我正在教这些课程,我不再使用 Rubylearning,所以无论如何这些信息都会过时。
      【解决方案5】:

      哪些 Java 标准类是必须的 知道何时使用 Clojure??

      Clojure 是对 Java 的彻底改变。我建议你只关注其中一个(clojure)而不是两者。反正有很多东西要学。使用基本编辑器,并尽可能多地使用 REPL。 herehere 中有一个很好的 clojure 简介

      我在哪里寻找以及如何寻找 安装第三方库?

      Clojure contrib 是一个很好的起点http://github.com/richhickey/clojure-contrib 另一个是 leninmgen -http://zef.me/2470/building-clojure-projects-with-leiningen

      你会选择哪个 Clojure 的编辑器/IDE 推荐(最低学 曲线)?

      只需使用 notepad++ 或 vim。对你来说应该绰绰有余。我个人在 ubuntu 下使用 kate,因为它为您提供了 lisp 代码格式。铁杆用户可能使用 emacs(我真的很讨厌)

      是否有任何 clojure 社区驱动 包含新闻、代码提示等的博客?

      Clojure google group 很友好而且知识渊博

      【讨论】:

        【解决方案6】:
        • 对于您需要查看的博客Planet Clojure
        • 对于 Java - 你至少需要了解 java.lang 和 java.io
        • 对于 IDE 的描述最好看Getting Started page
        • 对于使用 3rd 方库,您可以使用 Leiningen 或 Maven 构建工具 - 它们都提供依赖关系的自动解析。入门页面包含所有必要信息
        • Clojure 程序的分发通常实现为向 jar 提供源代码(或编译的)代码。您可以仅将您的代码与“lein jar”捆绑在一起,或者使用“lein uberjar”命令提供包含所有依赖项的完整解决方案

        【讨论】:

        • 您实际上必须为您的项目创建一个 project.clj,然后才能神奇地解决您的问题。
        【解决方案7】:

        最佳第一 Clojure IDE:Nightcode

        要专注于 Clojure,直到您超越 IDE 和工具的学习曲线:获取 Nightcode 它最初是为了让初学者课程开始而不用花一半的时间在 emacs 上,但它只是变得越来越有用。 基本上,它将使您启动并运行的功能放在一个简单的包中。

        它在窗口的一角有一个通用的 Clojure REPL,在编辑器区域下还有一个您启动的 REPL,它可以访问您目前编写的功能。快速击键运行您刚刚在 REPL 中写下的行。对于 clojure 优化的编辑,您有一个用于打开/关闭 paredit 的按钮(主动管理的括号,通过击键来包装/解包/等)。 它可以部署一组即用型模板,以在准备好代码状态下启动您的项目。有一个用于创建 jar(单文件 Java 可执行文件)的一键式按钮。它具有 GIT 集成,无需在机器上安装 GIT,即可从 github 拉取和推送到 github。
        我确信 JDK(Java 开发工具包)对于正确制作 jar 是必需的;但我已经能够将 Nightcode 下载到任何具有最近 Java 运行时的计算机上并工作(它是一个 Java jar,无需安装)。

        您将使用 Leinengen 并了解更多编辑器;但是要开始真正的编程,而不会遇到令人讨厌的启动困惑,Nightcode 是一个很棒的工具。

        【讨论】:

          【解决方案8】:

          我同意几乎所有其他关于我所知道的事情的建议。这里还有两点还没有人提出:

          1. 初学者应该学习关于如何使用具有适当文件名和目录名的命名空间的标准 Clojure 约定,并认真遵守这些约定。 (也许 Nightcode 可以让你避免这种情况——我不知道——但是一旦你开始使用 Leiningen,你就无法避免它。)如果你不这样做,命名空间问题会在你超越时很快让你发疯琐碎的实验。 Colin Jones' tutorial on namespaces 是我刚开始时发现的最佳起点。顺便说一句,有些约定实际上来自 Java,但您不需要为了它们而学习任何 Java。

          2. 一开始您可能根本不需要第三方库。取决于你想做什么。 standard Clojure libraries 涵盖了很多领域。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2022-01-05
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多