Clojure年度调查报告:用于开发企业软件的比例历史最高
Clojure近日发布了2020年度调查报告。官方表示,通过今年的调查能看到越来越多的开发者在工作中使用Clojure、对Clojure关键价值主张的持续关注以及不断发展的用户社区。
Clojure的使用场景
受访者在被问及使用Clojure的场景时,答案包括工作、业余项目、修复错误以及学习研究。不过从今年的结果来看,开发者在工作中使用Clojure所占百分比最高:
此外,从下图可以看到,在使用Clojure的公司中,规模较大的公司(1000+员工)所占的比例增加了大约3%,而小公司(1-10员工)则有所减少。
受访者在被问及组织中有多少人在使用Clojure时。不出所料,许多Clojure团队的规模都非常小(小于10人)。不过作为一个具有高附加值的工具,Clojure确实非常适合小型且高生产力团队。而且具有40+Clojure开发者的组织也不在少数。
在被问及Clojure的使用领域时,Web开发和开源项目依然保持着一直以来的热度,不够我们也看到今年“企业软件”有了显著增长,达到了有史以来最高的水平,这说明更多的开发者乃至公司愿意尝试使用Clojure开发企业软件。
社区
调查结果显示,Clojure开发者最活跃的社区分别是:ClojuriansSlack、Reddit的clojure子版块和StackOverflow。
受访者在被问及如何参与建设Clojure生态系统时,通过维护开源项目的方式进行贡献所占比例最大。
开发工具和语言版本相关
又到了喜闻乐见的开发工具和语言版本环节,首先是Clojure开发者主力使用的系统,不出所料,macOS是领先者(55%),其次是Linux(35%)和Windows(9%):
至于主力开发工具,今年的数据出现了细微的变化。Emacs虽然还是大多数开发者的主力工具,不过其比例出现了略微下降(43%),IntelliJ/Cursive则略微上升至32%。值得注意的是VSCode,它的增长最大,直接飙升至10%,甚至超越了Vim。
开发工具不止编写代码的工具,还有“构建工具”也值得关注。由于在之前的调查中都是单选项,无法反映开发者如何管理Clojure项目,因为他们可以在此过程中的不同阶段使用多种工具,特别是在Clojure/ClojureScript混合项目中。为此,今年的调查针对依赖管理的问题进行了更紧密的调整,并提供了多选项,结果如下:
可以看到,Leiningen的使用量迅速增加,而clj/deps.edn也在稳定增加。另外,在ClojureScriptTogether的大力支持下,shadow-cljs也为开发ClojureScript项目提供了极大支持。
Clojure是运行在Java平台上的现代、动态及函数式LISP方言,受访者在被问及所使用的目标Java版本时,Java8依旧是被使用最多的版本,其次是Java11,两者均为LTS版本。毕竟Clojure本身已经使用Java8作为基准JVM已有两年,并将继续保持(当然会同时支持Java的较新版本)。官方建议运行Clojure时使用Java8或11。
至于开发者使用的Clojure版本,Clojure1.10.0和1.10.1是最受欢迎的两个,后者是今年发布的维护版本,在Clojure1.10.0的基础上改进了错误处理,并缓解了Java8u201及更新的版本中某些Java性能下降的问题。
最后,本次调查还增加了一个新问题,即受访者如何在生产环境中启动其应用程序。结果如下:
大多数用户正在使用诸如Leiningen或clj之类的启动器来启动其生产应用程序,而不是通过构建jar或uberjars并直接使用Java启动它们。此外,还看到一部分开发者在尝试使用Graal原生映像(在较小的脚本应用程序中很常见)。
完整调查报告查看