十年前,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,由高可用架构翻译。技术原创及架构实践文章,欢迎通过公众号菜单「联系我们」进行投稿。

高可用架构

改变互联网的构建方式


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

Clojure 语言在 2020 年的现状相关推荐

  1. 软件测试行业未来发展趋势 2020软件测试行业现状及市场前景规模分析

    2020软件测试行业发展现状及市场前景规模分析 软件测试(英语:SoftwareTesting),描述一种用来促进鉴定软件的正确性.完整性.安全性和质量的过程.换句话说,软件测试是一种实际输出与预期输 ...

  2. 用java语言实现2020年1月1号到2022年7月3号之间的间隔天数

    用java语言实现2020年1月1号到2022年7月3号之间的间隔天数 1.思路 1.算出2020年1月1号到2021年12月31号之间的间隔天数sumYear 2.算出2022年1月1号到2022年 ...

  3. 解读Go语言的2020:变革前夜

    本文转载自 InfoQ,作者 郝林 在作者去年年底撰写<解读 Go 语言的 2019>的时候,绝没有想到 2020 年将会如此的不平凡.全球范围内的疫情在大大地限制了人们和企业的对外活动之 ...

  4. 2020 全球 JS 现状调查报告

    大家好,我是若川.偷偷告诉你,今天推文的第二条是在我的公众号回复「网盘」免费领取百度网盘会员,欢迎大家分享转发. 给大家分享一篇好文,往期类似好文: 2020 前端技术发展回顾 2020年大前端技术趋 ...

  5. 知道python语言应用2020答案_热点:大学moocPython语言基础与应用答案

    2020年智慧树网课答案为您详细解读azMisb热点:大学moocPython语言基础与应用答案的详情,题主的教授应该是想要同学们找出一个值得研究和讨论的theory,简单来说就是你论文探讨的中心.然 ...

  6. 2020年软件工程现状:Python或将成为第一大编程语言,中国开源涨势最猛

    云栖号资讯:[点击查看更多行业资讯] 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 现在,是时候谈一谈 2020 年及以后的软件工程状况了.本文以 GitHub Octoverse ...

  7. 2020年编程现状:Python将成为第一大编程语言,中国开源涨势最猛

    现在,是时候谈一谈 2020 年及以后的软件工程状况了. 本文以 GitHub Octoverse 数据为基础,加上我作为一个拥有十年经验的软件工程师的经验和观察.软件工程在过去 20 年来实现了爆炸 ...

  8. 合肥工业大学c语言用书,2020合肥工业大学软件工程考研初试科目、参考书目、复试详情汇总...

    原标题:2020合肥工业大学软件工程考研初试科目.参考书目.复试详情汇总 一.学院简介 计算机与信息学院的前身是创建于1958年的无线电工程系,1996年由原计算机与信息系.计算中心和微机所组成学院, ...

  9. 2020计算机等级考试软件版本,‎App Store 上的“计算机等级考试C语言版 2020最新”...

    2020最新试题 全国计算机等级考试二级C语言考试通关神器!选择题+上机操作题+最新押题+考点汇总,海量题库含解析,通关无忧! 每一道试题都有答案解析,为考试的提供了充分的复习准备,可随时随地学习练习 ...

最新文章

  1. 这样规范写代码,同事直呼“666”
  2. Java 基础之 static 静态
  3. 计算机网络的寻址问题ARP协议(Mac地址 ip地址)
  4. 网站建设中关于eclipse启动参数的优化
  5. 探索Julia(part11)--自定义函数
  6. 模式代码 java中aes_深入浅出:Java中的代理模式
  7. springboot中使用@Value读取配置文件
  8. kali2.0 U盘安装的工具
  9. 基于Matlab----MSK调制与解调
  10. 河南oracle客户端,解决Oracle监听服务报错
  11. SQL查找是否“存在“,别再count了!
  12. LXC源码编译测试(五)
  13. Notepad++安装NppFTP插件
  14. 视频教程-R语言实战之行业案例分享视频课程-其他
  15. 【统计学习】细节笔记 [ 3 ] :贝叶斯角和两类错误角度理解混淆矩阵(为什么不能每个人都做核酸检测)
  16. Flask接口开发教程
  17. python16_day14【jQuery】
  18. Java将Word/Excel转换成PDF—aspose工具
  19. DWORD winapi java_DWORD WINAPI?stdcall?
  20. android微信连wifi设置,微信小程序实现连接wifi功能的方法

热门文章

  1. 史上最烂 spring aop 原理分析
  2. 这是一个关于五台山关于点化顿悟的真实事件,源起偶然,其为必然,一趟旅程获得一份机缘。
  3. MybatisPlus字段名为mysql保留关键字处理
  4. USB over Network通过本地网络或 Internet 共享的远程 USB 设备
  5. 百瓦快充伤电池?1天两充用了574天后 我发现真相
  6. 搭配Online:瑞幸昔日“盟友”神州优车,与北汽集团达成战略合作
  7. 不允许对系统目录进行即席更新_不被允许再更新安卓系统,华为手机用户怎么办?华为回应!...
  8. android网络测试上传速度慢,【教程】状态栏添加网速 《双排上传速度和下载速度》(转)...
  9. css3上下滑动,CSS3 上下浮动的页面滚动提示箭头
  10. B站手艺人又在刷新年轻人的见识