热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

几乎从Clojure诞生时候起,它的标准开发环境就是Emacs,对Lisp的亲近感、slime对Lisp系列语言的支持、paredit等Lisp的模式,都带来了这个结果。当然,用E

几乎从 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 版增加的功能我们都用不上)


推荐阅读
  • 经过前面的一系列工作后,GO的语言环境已经搭建完成。我们也初步体验了GO提供的大部分命令。但在正式进入开发之前,还有件工作要做,那就是选择一款适合自己的IDE。为什么使用IDE“程 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • JVM 学习总结(三)——对象存活判定算法的两种实现
    本文介绍了垃圾收集器在回收堆内存前确定对象存活的两种算法:引用计数算法和可达性分析算法。引用计数算法通过计数器判定对象是否存活,虽然简单高效,但无法解决循环引用的问题;可达性分析算法通过判断对象是否可达来确定存活对象,是主流的Java虚拟机内存管理算法。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 本文记录了在vue cli 3.x中移除console的一些采坑经验,通过使用uglifyjs-webpack-plugin插件,在vue.config.js中进行相关配置,包括设置minimizer、UglifyJsPlugin和compress等参数,最终成功移除了console。同时,还包括了一些可能出现的报错情况和解决方法。 ... [详细]
  • JavaScript和HTML之间的交互是经由过程事宜完成的。事宜:文档或浏览器窗口中发作的一些特定的交互霎时。能够运用侦听器(或处置惩罚递次来预订事宜),以便事宜发作时实行相应的 ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • 本文介绍了安全性要求高的真正密码随机数生成器的概念和原理。首先解释了统计学意义上的伪随机数和真随机数的区别,以及伪随机数在密码学安全中的应用。然后讨论了真随机数的定义和产生方法,并指出了实际情况下真随机数的不可预测性和复杂性。最后介绍了随机数生成器的概念和方法。 ... [详细]
  • Jboss的EJB部署描述符standardjaws.xml配置步骤详解
    本文详细介绍了Jboss的EJB部署描述符standardjaws.xml的配置步骤,包括映射CMP实体EJB、数据源连接池的获取以及数据库配置等内容。 ... [详细]
  • Hyper Text Coffee Pot Control Protocol
    The ... [详细]
  • 小情人emacs的自动补全
    前天打字的时候发现手指疼…..OTL…思考了一下可能是我近几个月以来一直在使用全部手敲代码不使用自动补全的“恶果”(当然我还是建议全部手敲的,至少可以感 ... [详细]
  • 熟悉IDEA快捷键的正确姿势
    一、背景俗话说:“工欲善其事必先利其器”,现在IDEA作为主流的Java开发工具,已经广泛使用。但是很多人熟悉的快捷键是有限的 ... [详细]
  • MyBatis源码下载安装教程
    一、下载(原文链接:http:www.studyshare.cnsoft…github下载:去下载百度网盘下载:去下载提取码:d1er二、安装1、检查本机Maven版本,必须3.2 ... [详细]
author-avatar
手机用户2502862865
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有