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

Clojure语言在2020年的现状

十年前,ChasEmerick进行了首次Clojure语言使用状况调查。在2010年,大多数用户仅使用Clojure数周或数月,很少有人将

十年前,Chas Emerick 进行了首次 Clojure 语言使用状况调查。在 2010 年,大多数用户仅使用 Clojure 数周或数月,很少有人将其用作正式的工作项目的编程语言。今年,我们看到用户对工作用途的持续不断增长、对 Clojure 核心价值主张的持续关注以及不断发展的用户社区。

工作用途的 Clojure

自 2010 年以来,我们一直提问的问题之一是,受访者是否正在使用 Clojure 进行工作项目、业余爱好项目,修补或研究。今年,我们看到了 Clojure 在工作中使用率最高的百分比:

此外,我们看到公司规模在向大型公司的一个发生了一个小的转变:1000+ 以上规模的公司增长了 3%(而 1-10 规模的公司减少了)。

我们还首次询问受访者的组织中有多少人在使用 Clojure。不出所料,许多Clojure 团队规模很小。作为高杠杆工具,Clojure 非常适合小型高生产率团队。但是也很高兴看到有很多来自 40 位甚至 100 位以上 Clojure 开发人员公司的受访者。

自 2010 年以来,我们一直在问一个问题(使用的文案和选择有所不同)是 Clojure 使用领域。多年来,最高的类别并没有太大变化,但是我们确实看到了今年“企业应用程序”的显著增长,达到了有史以来的最高水平。

反馈意见表明 Clojure 是一个为公司和团队带来高杠杆作用的工具:

  • “ Clojure 仍然是我们生产系统的力量倍增器和至关重要的推动器。”

  • Clojure 让我们的小型团队能够事半功倍。”

  • “到目前为止,Clojure 是我在工作中必须使用的最好的语言,使用它来解决问题是一种荣幸。它几乎是完美的。”

  • “ Clojure 正在为我们的数据驱动型保险 ERP 提供支持。我想不出还有更好的方法。非常感谢!”

  • “很难找到太多关于 Clojure 的抱怨:这是一个很棒的语言,拥有一个强大的社区。我计划在这个语言及社区中待很长时间。我们基本上将公司的技术策略押在了它上面。”

  • “我喜欢使用 Clojure 和 ClojureScript,并将所有使用各种不同语言(PHP,Python,C#,Javascript)的开发项目移至仅使用 Clojure 和 ClojureScript”

  • “我们的创业公司仅基于 Clojure 和 Clojurescript 构建,对此我们感到非常满意。”

Clojure 的使用在数百家公司中持续增长,越来越多的开发人员将其用于核心业务。

价值

自 2015 年以来,我们一直提出过一个问题,询问 Clojure 用户最看重它哪些方面。自 2015 年以来,这些答案的加权排名几乎保持不变。对于 Clojure 用户而言,最重要的事情依次是:函数式编程、REPL、不可变数据,易于开发和主机互操作。的确,这些都是 Clojure 体验所固有的,并且与 Clojure 存在的原因高度吻合。

大量用户赞扬 Clojure 的发展历程和不断成长的传统,而这一趋势历久不衰:

  • “ Clojure 是一个非常赞的 Lisp,为品味和优雅而设计。很高兴在其所提供的抽象中进行思考和实现。”

  • “出色的工作,项目团队!这是我多年来从事软件开发工作中使用的最稳定的技术。”

  • “我喜欢你们在语言和社区方面所做的工作。在不断变化的世界中,不断地更新只是为了创造不停歇的 Clojure,它就像一个安全的港湾,让我保持理智。”

  • 我真的很喜欢 Clojure 的简洁和函数式本质。我还喜欢这样一个事实,即团队没有像其他任何语言一样热衷堆砌功能。

  • “感谢坚持原则:精益,保守,必不可少,没有多余的装饰,将 Lisp 带回主流的生产级软件。”

社区

今年,我们再次调查了 Clojure 人士最喜欢访问的论坛。一些新的和/或正在增加的条目包括线下 Clojure 会议(今年我们看到了很多新的会议!),新的Ask Clojure 网站,电报群和 Discord。

我们还收集用户如何参与 Clojure 生态系统方面信息。今年的反馈与去年非常相似,但是我们也看到了一些小的提升,包括帮助新的 Clojure 用户、在其组织中倡导 Clojure 以及维护开源代码库方面做出了很大的贡献!

在反馈意见中,许多人喜欢友善且反应迅速的 Clojure 社区:

  • “ Clojure 社区绝对很赞。在这里提问经常可以快速获得深思熟虑的答案,这一点非常宝贵的。感谢你建立这样一个令人难以置信的社区。”

  • “ Clojure(脚本)是一种很棒的,经过深思熟虑的语言,对我的工作有很大帮助。而且,它也使我接触到了一个由思想丰富的开发人员组成的社区,这些社区为我提供了精彩的新见解,同时保持了友好而热情的态度。社区”

  • “出色的语言和独特而富有洞察力的社区。它帮助我重新发现了对编程的热爱。”

深度探讨

Clojure 开发人员在调查中,对版本和工具相关的问题特别感兴趣。

我们今年提出的一个新问题是有关开发人员主要操作系统的信息,以便对我们工具相关工作更好指导。不出所料,MacOS 是领先者(55%),其次是Linux(35%)和 Windows(9%):

对于主要开发工具,今年仅进行了较小的更新。Emacs 略微下降至 43%,IntelliJ / Cursive 略微上升至 32%,而带有 Calva 的 VS Code 增长最大,至 10%

Clojure 用户拥有丰富的开发环境,每种环境都适合不同的社区和口味,我们很高兴看到它们都日趋完善。

多年来,本调查一直有包含“构建工具”的问题,但是这种单一的整体工具的想法已越来越无法反映人们如何管理 Clojure 项目,他们可以在过程的不同部分使用多种工具,特别是在 Clojure / ClojureScript 混合项目中。为此,我们将这个问题更紧密地针对依赖管理进行了调整,并在今年进行了多选:

回顾前几年,我们继续看到对 Leiningen 的重度使用(但略有减少),而对 clj / deps.edn 的使用则稳定增加。至于 ClojureScript 方面,在 Cloclorists Together 的大力支持下,shadow-cljs 在过去的几年中取得了长足的进步。

在 Java 和 JVM 的更广阔世界中,Java 已迁移到一种新的发行策略,该发行策略于每年春季和秋季发布,并且每 3 年发布一次“长期支持”(LTS)版本:8、11 和(预估) 17。由于 Java 9 对模块系统进行了重大更改,这在 JVM 社区中导致大量用户仍然依赖 Java8。Clojure 也反映了这一点(尽管与其他语言社区相比,向 Java 11 的迁移的可能更多) :

当下一个版本发布时,Java 9、10、12 和将要发布的 13 之类的版本实际上已经不在了,我们建议主要使用 LTS 发行版,否则最好使用最新版。

Java 11 一个未被重视的方面是 Java 在 Docker 等容器中更好地工作做了改进。如果要使用 Java 8 在容器化环境中进行部署,则应该仔细查看 Java 11 中 的更改并考虑进行升级。

Clojure 本身已经使用 Java 8 作为基准 JVM 已有两年了,并将继续这样做(同时也支持 Java 的较新版本)。对于 Clojure 运行环境,我们建议使用 Java 8 或 11。

自去年以来,我们看到 Clojure 1.10.0 和 1.10.1 被大量采用。后者是今年的维护版本,在 Clojure 1.10.0 的基础上改进了错误处理,并优化了 Java 8u201 之后其服务版本中的某些 Java 性能下降的问题。Clojure 1.8 和更早版本的使用在继续减少:

除了先前的依赖性管理问题之外,我们还添加了一个新问题,即受访者如何在生产中启动其应用程序。根据反馈,明年的文案和答案选择可能需要进行一些微调,这次结果中一些有趣的反馈:

大多数用户正在使用诸如 Leiningen 或 clj 之类的启动器来启动其生产应用程序,而不是通过构建 jar 或 uberjars 并直接使用 Java 启动它们。我们确实看到了一个小组也在尝试 Graal 本机映像(尤其是在较小的脚本应用程序中很常见)。

完整结果

如果你想了解全部结果,可以在此处找到过去和过去几年的完整数据集:

  • 2020年 https://www.surveymonkey.com/results/SM-CDBF7CYT7/

  • 2019-2010 年 (请参阅原文)

原文链接:

https://clojure.org/news/2020/02/20/state-of-clojure-2020

参考阅读:

  • 在生产环境运行Elasticsearch深度指南

  • Rust Web框架怎么选?研究本文就够了!

  • 1500字节为何成为互联网MTU标准?

  • 解决并发编程之痛的良药--结构化并发编程

  • Hulu如何扩展InfluxDB使其支持每秒百万TPS

本文作者 Alex Miller,由高可用架构翻译。技术原创及架构实践文章,欢迎通过公众号菜单「联系我们」进行投稿。

高可用架构

改变互联网的构建方式


长按二维码 关注「高可用架构」公众号


推荐阅读
author-avatar
苗淑香哈哈_405_408
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有