Intellij + Cursive: 最佳 Clojure/Java 开发环境组合

996 查看

几乎从 Clojure 诞生时候起,它的标准开发环境就是 Emacs,对 Lisp 的亲近感、slime 对 Lisp 系列语言的支持、paredit 等 Lisp 的模式,都带来了这个结果。当然,用 Emacs 开发的逼格也很高。 坏处当然也有一票。最大的几个:

  • emacs 的学习门槛非常陡峭。毕竟是命令行时代穿越过来的 IDE,崇尚各种复杂键盘组合,对鼠标的支持约等于 0。用惯了效率固然高,但记住这些基本命令之前啥也做不了。
  • 维护这个环境需要大量的时间。将 emacs 变成一个好用的 clojure IDE 需要很多包的协同:clojure-mode, nrepl, paredit, auto-complete 等等。因此有集成者如 live-pack 等出现。可是它们的集成往往也有自己的逻辑,维护自己的工作环境的代价仍然不低。
  • 对 Java 的支持与现代的 Java IDE 差距很大。

虽然与其他大多数 Clojurian 一样,几年来我都在 emacs 下工作,但这些问题仍然令我头痛,更何况要辅导新程序员的时候麻烦更大。所以搜索下新的 IDE,已经成为每几个月进行一次的常态工作。可是长时间来并没有发现更好的替代品。

直到上个月重新发现 Intellij + Cursive 的组合!IDEA IntellJ 自然是大名鼎鼎的 Java IDE,多年来一直享有真正程序员最佳 IDE 的美誉,但直到 Cursive 这个 Clojure 的 Plugin出现和接近成熟,它的威力才能被我们享有。

  • 它是唯一一个使用静态语言分析的 IDE。即使你没有 Repl 运行,仍然会有 Symbol 检查、auto-complete、改名重构、自动 require 等各种酷炫能力。
  • 借助 IntelliJ 本身强大的 Java 能力,Clojure/Java 混合编程无比顺滑。自动 Import, reify 的自动 override 能节约不少时间。
  • 完全与 Java 一致水平并集成 Java 的调试能力。尽管 Clojure 编程平时不用调试,但有这个功能随时可用仍然很舒服。而且还可以用 repl 启动调试。
  • 虽然 Cursive 还在早期阶段(EAP),但实际使用的时候 Bug 甚少。repl, leiningen 的支持都很棒。

使用了一个多月,对这套 IDE 感觉仍然好极了,Clojure 的最佳开发环境,没有之一。(用 IntelliJ 免费的 community 版就够了,Ultimate 版增加的功能我们都用不上)