2022 年最适合写业务代码的编程语言是哪个?

2022-01-24 00:01:44 +08:00
 aljun

2022 年,各个语言已经有了长足的发展,但其实业界更多的需求还是写业务。

这里写业务主要考虑的是解决问题的敏捷性与后期的可维护性扩展性,在性能层面要求不会特别的高,考虑的不只是语言本身的特性,还包括语言本身的生态。当然也需要考虑招人或者新人上手成本。其中业务泛指非计算要求极高的场景

其中我觉得作为候选的为:

当然也不限上述语言,C++Rust就算了吧,用那个写业务首先在敏捷性就不太好

因为限定为 2022 年,考虑的范畴都为该语言最新版本,且没有历史包袱

提名请给出具体的理由

24986 次点击
所在节点    程序员
233 条回复
xiaofan305
2022-01-24 00:06:52 +08:00
你愿意用,并且用得熟,用得好的那个就是了。但对多数人来说应该不会是 C ,汇编,lisp 之类的。
aljun
2022-01-24 00:12:22 +08:00
@xiaofan305 这里泛指搞项目,多人协作场景
msg7086
2022-01-24 00:13:16 +08:00
要考虑新人上手成本就不要考虑 Ruby 家族了。

光看招人和上手成本,Java Python 一把梭,随便拉一个会写程序的人,让他们去写 Java 或者 Python 都不会有太大的问题。我一个不会 Java 的人去了个 Java 厂,直接就拿着 Java 开干了。
aljun
2022-01-24 00:19:16 +08:00
@msg7086 其实问问题的本意就是想问 2022 年了,Java 仍旧如此一枝独秀么😂
dcsuibian
2022-01-24 00:19:18 +08:00
Java 。但是,你这真的有必要问吗?
写业务代码,可维护性和可拓展性,语言本身的生态,好招人,这几点就够明白了吧。
敏捷性:spring boot 一把梭快,还能快速整合其它模块。
非计算要求极高的场景:看你还提到了 asyncio 的 python 和 ts ,我估计你是想用异步来提升 io 性能。那 netty 了解下?
Bijiabo
2022-01-24 00:20:54 +08:00
小公司、新业务的话推荐 TypeScript 。

- 前后端、移动端都可用,配合 TypeDoc 文档生成,多人协作不会有太大的坑。
- 需求不复杂的后端业务直接上函数计算,各个平台都支持 TypeScript
- 生态好、轮子多
- 好招人、上手成本低
subpo
2022-01-24 00:21:32 +08:00
asyncio 一点都不好用
aljun
2022-01-24 00:22:03 +08:00
@dcsuibian 其实问问题的本意就是想问 2022 年了,Java 仍旧如此一枝独秀么😂
kran
2022-01-24 00:22:22 +08:00
graalvm+js 不瞎说
black11black
2022-01-24 00:23:16 +08:00
Rust 我觉得还可以,起码解决了 C++社区无中心的问题,不能说敏捷性太差。

Python 和 Java 当然无问题了,go 我感觉问题很多,node 最近看到的公司很少了,不过 ts 应该还可以
sagaxu
2022-01-24 00:23:49 +08:00
传统行业除了 Java ,还可以考虑一下 C#
msg7086
2022-01-24 00:25:12 +08:00
@aljun 年代一般不会大幅改变一个语言的学习曲线。Java Python 这两个相对死板的语言(指老手和新手基本能写出类似的代码)基本是没得跑了。然后要敏捷性就用 Python ,要扩展性就用 Java 。

我是 Ruby 用户,但是我要和陌生人一起做项目那我宁愿不用 Ruby ,除非我有自信那个人的 Ruby 水平很好。比如 Ruby-China 论坛上面几个老手或者站长来和我做项目,那完全没问题。但是你说 v 站随便拉一个程序员路人过来,那我是不敢要的。但是如果是随便拉一个来写 Java ,那多数是没问题的。

湾区初创公司如果要用 Ruby 的话,因为可以花大价钱招人(比如 200k 年薪),能招到几个大佬一起干活,几个人两星期干出别人半年的活。如果是普通的公司,拿着 75k 的薪资去招人,那招来还是写 Java 比较好。
Leviathann
2022-01-24 00:34:58 +08:00
@kran 这个是怎么搞的
graalvm 纯跑 js 能比 node 有啥优势
BeautifulSoap
2022-01-24 00:35:12 +08:00
go 用了挺长一段时间了,也写过不少业务代码,虽然很喜欢 Go 但也来抱怨下写业务时经常觉得烦心的地方:

1. 作为一门新生的现代语言,标准库功能之缺乏让人难以忍受。比如 Go 标准库里连个查找指定值是否在数组或切片里的功能都没有,所以理所当然的数组查找相关的所有功能(数量统计、获取 index 之类的)也都没有,都让你自己手写。当然,这东西写个 for 循环就搞定了,但每次不同项目里想要用的时候都得复制粘贴一遍的时候就不由得在心里咋舌一下。除此之外还有很多功能也同理。希望这方面能随着接下来泛型的发布有所好转

2. 写业务方面另一个感触就是,Go 的 DDD 实践没有太过统一的标准,所以参与不同项目经常看到各种风格迥异的 DDD 实践。光是我参与的几个项目就见过了从经典的分层架构到 Clean Architecture 的应用,再加上不同的人对不同架构有不同理解。。。。。

3. 现在写业务代码最烦的就是写 Entity 和 DTO 等各种对象之间的转换。大部分对象转换就是值一个个赋过去,手写起来烦得要死,找过自动代码生成的轮子也都是好几年前的不太好用,IDEA 里也没现成的插件。用基于反射的自动转换的轮子的话又有一定性能问题。相关的工具链方面还有挺多想吐槽的,记得 java 这方面工具链挺完善的?希望 go 啥时候这方面也能完善点
kran
2022-01-24 00:39:23 +08:00
@Leviathann java 的生态,js 的生态+动态,PHP 的热更。性能略略下降。
具体的搞法看下官网就行了,最多加个 di 。
wangritian
2022-01-24 00:42:02 +08:00
中小型项目,你没有提及的一门语言
大型项目,java
Dart
2022-01-24 00:57:08 +08:00
php
maplerecall
2022-01-24 01:02:26 +08:00
C# (.Net)太香了。官方文档丰富,上手简单,组件齐全,语法友好,性能也好,开源跨平台。但就是国内生态真的非常不好,不容易招人,所以国内还是 Java 吧。
huangsen365
2022-01-24 01:03:11 +08:00
如果是创业型中小型项目为了活口生存,就用最熟悉最擅长最敏捷的语言优先确保业务能落地,如果是大公司业务系统发展成熟并且是通过微服务的架构构建,团队成员完整,那使用哪门语言都无所谓(安全优先、性能优先)
mineralsalt
2022-01-24 01:12:01 +08:00
你 AND 这些条件不就是在点名 JAVA 么, 其他语言可能在某些领域可以吊打 JAVA, 但是综合来说, 没有比 JAVA 更适合你这些需求的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/830159

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX