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

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

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

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

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

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

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

提名请给出具体的理由

25980 次点击
所在节点    程序员
233 条回复
w0017
2022-01-25 09:34:27 +08:00
python 没有多线程真是个 xxx 的事情。
james122333
2022-01-25 09:55:45 +08:00
@UserNameisNull
继承可以用 type embedding 加上 interface 定义共通函数
切面你可以自己实现 注释如果你了解如何读取"//注释"或者"/* 注释 */"你一样可以实现 php 上就是这样的 当然不是如同 java 上额外区分
miv
2022-01-25 09:58:36 +08:00
毋庸置疑,我选 PHP ,tp6
lujiaosama
2022-01-25 09:58:57 +08:00
@3dwelcome LZ 都限定了 ts 了, ts 没你说的那些缺点. 现在连前端都不直接写 js 了.
james122333
2022-01-25 10:02:09 +08:00
@UserNameisNull
基本上差不多就是
(随你定义)

/**
*@Annotation1
*@Annotation2
*/
yishuihanxiao
2022-01-25 10:07:46 +08:00
既然说到业务,难道不是无脑上 java 吗?
fredli
2022-01-25 10:15:58 +08:00
kotlin, swift 啊,有平台有生态
daimazha
2022-01-25 10:17:17 +08:00
c#
FightPig
2022-01-25 10:32:10 +08:00
@Hanggi 个例说明不了什么,还有 go 不行,换成 rust 的,语言这东西,主要看公司人才用哪个方便用哪个,说 go 写业务不行吧,看 b 站就 go 写的,
liaohongxing
2022-01-25 10:38:20 +08:00
大部分批评 Go 的,都是没用过 GO 的。GO 标准库随便起一个端口 。随便压测就是 QPS 上万 。不需要交叉编译 。windows 直接编译 linux 或 arm 二进制, 你要是有 QPS 需求。换 GO 绝对没错
Hanggi
2022-01-25 10:44:41 +08:00
@lybcyd emmm ,这个杠其实说服力不大。

首先这个定义里也说了:成功的、令人印象深刻,且不太会失败或变弱。
这与中文定义的:完备的、健康的、而无缺陷的。

大致匹配,你非要说不同,也没办法。
但是我上面也说了,“Go 语言标准库与其他语言标准库相比,已经算是比较健全的”。
libook
2022-01-25 10:47:54 +08:00
1. “解决问题的敏捷性与后期的可维护性和扩展性”:这个主要是架构设计、代码制度的问题,跟语言本身的关系不大;正所谓水平烂的程序员用什么高大上的语言写出来的代码都一样烂。
2. “在性能层面要求不会特别的高,考虑的不只是语言本身的特性,还包括语言本身的生态”:5 年内流行起来的语言基本还需要开发者自己造不少轮子,持续火的时间越长生态越好,火超 10 年的技术栈甚至有完备的中文文献和社区。比如 Java 、Python 、JavaScript 。
3. “当然也需要考虑招人或者新人上手成本”:越贴近人类思维,抽象程度就越高,暴露底层细节就越少;语言灵活性越低,需求的可选实现方案就越少,花在方案选择上的时间越少,对开发者要求就越低。当然不同语言在不同特性上的简单和复杂程度是有差异的,造就了不同语言的适用场景的不同;其实大多语言本身学起来都很简单,难的是框架、库、思想。

团队协作,以及规模化、流水线化生产,我个人推荐 Go 和 TypeScript ,因为灵活性低且性能足够,能避免不少问题,不过 Go 的生态还是免不了自造轮子。
个人兴趣向开发就什么顺手、喜欢什么就用什么,有的人就是喜欢使用一些高大上的语言来雕琢,以让自己获得工匠式的满足。大多情况下语言不是瓶颈。

P.S. 刚学了 Rust ,个人感受是很多特性是十分先进和巧妙的,对于本身进行系统开发工作(也就是绕不开 C\C++等较低抽象的语言)的团队来说,Rust 在提升产能和产品质量方面是有显著成效的。
P.P.S 任何达到一定规模的项目都难以使用一种技术栈做到面面俱到,在多种语言的方案中进行选择也是可以考虑的。
fan88
2022-01-25 10:54:43 +08:00
过分 PHP 凭什么不配有姓名
qbhy
2022-01-25 10:57:04 +08:00
显然是 go ,依赖注入、服务容器等骚操作,go 也可以的
qbhy
2022-01-25 10:57:27 +08:00
@qbhy 对就是这个框架了 https://github.com/goal-web
Hanggi
2022-01-25 11:00:33 +08:00
@dragonsunmoon
同意,

很多人接触 Go 都是先有过其他语言的开发经验,这种情况下很容易就会进行横向对比,问为什么这么方便的功能 Go 语言没有,然后就开始抱怨吐槽,这当然无可厚非。

我的观点也很清晰,之前那位说的缺点确实是 Go 语言的一些设计导致的,且短时间不太会提供解决,与标准库无关。
既然是这么设计的,那更应该查一下为什么这么设计,这么设计的初衷是什么,带来了这些不便利的同时是否为我们的开发工作带来了其他收益。
libook
2022-01-25 11:04:37 +08:00
上面的楼非常符合预期地对 Go 产生了争议。

我个人的理解是这样的:Go 是一款专门 Hack 企业生产过程中的各种问题的一款“产品”,特点就是灵活性低,由此带来的优点就是一种需求只有一种解决方案,千人一面,避免团队个别人整“花活儿”,由于很多需求都有“标准方案”,程序质量也不会因为个人水平差异差太多,以个人的束缚来换取团队的高效生产。这一段的描述可能稍有夸张,不过是为了说明我所理解的 Go 的设计方向。

所以很多人指出的 Go 的缺点,多是自己被束缚而产生的不快,但站在企业产而的角度上来说,这些都是值得的牺牲。
pythonee
2022-01-25 11:16:10 +08:00
@wdhwg001
@maplerecall
@afirefish

c#的生态有那么好了吗?我觉得 java 主要是生态强,或者说直接依赖开源项目可以快速出货
Wincer
2022-01-25 11:17:02 +08:00
https://www.v2ex.com/t/829884?p=2 这楼里的人完美诠释了这个帖子
haochen2
2022-01-25 11:23:06 +08:00
@BeautifulSoap 说真的,Go 标准库就是最好的教材,没有之一。多少大牛的经验都在这里面,十分值得学习的。

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

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

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

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

© 2021 V2EX