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

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

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

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

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

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

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

提名请给出具体的理由

25992 次点击
所在节点    程序员
233 条回复
promisenev
2022-01-25 20:20:03 +08:00
@Huelse 现在函数式编程...都已经 fp 这样缩写了吗...
bthulu
2022-01-25 22:44:58 +08:00
@libook 为什么系统开发就绕不过 C 和 C++, 是因为其他语言不能随意读写真实物理内存地址吗?
bthulu
2022-01-25 22:46:29 +08:00
@Hanggi 这不应该是被这么多人接受, 是它没有泛型做不到干净利落的实现导致它干脆摆烂不做了, 那你们用这些库的人还能怎样, 不接受又能如何, 有本事你不用啊
james122333
2022-01-25 23:04:50 +08:00
@bthulu

有 代码生成 不然只能换标准库了
reflect.value.call 对效能实在太伤了 又不能改函数 body
james122333
2022-01-25 23:24:59 +08:00
好像如果有 eval 也可以实现任意类型
ragnaroks
2022-01-25 23:29:33 +08:00
因为你的列表里面没有 csharp ,所以只能是 java 了
no13bus
2022-01-25 23:31:46 +08:00
kotlin
libook
2022-01-25 23:51:36 +08:00
@bthulu #202
基本上是看某一个项目用的什么语言,然后围绕它的生态基本上都会用这个语言。
系统开发界的很多核心项目是基于 C/C++的,用其他语言没法直接交互。比如 Linux 相关的驱动、模块开发,以及 Kernel 的魔改定制,基本是 C 语言独霸,C++都挤不进去,Rust 软磨硬泡多少年才终于被允许用于 Linux 上的驱动开发了;各种数据库、中间件多是用 C/C++开发,比如 MySQL 、PostgreSQL 、Oracle 、MongoDB 、Redis ;虚拟化平台如 VirtualBox 、Vmware ;图形引擎如 Unity3D 、Unreal Engine ;以及 Google 的一票如 TensorFlow 、Chromium 、Android ;你可以随便搜几个看看。
非 C/C++的系统开发项目也是有的,只不过是少数而已(虽然也很有名):比如 Docker 生态用的 Go ,Apache 的很多数据库、中间件用的 Java 、Scala 。
这也就是为什么去招聘平台上搜 Rust 相关岗位基本都要求有 C/C++工作经验,Rust 多用于系统开发项目,而系统开发项目因为历史原因生态是亲 C/C++的┑( ̄Д  ̄)┍
pytth
2022-01-26 01:41:18 +08:00
php 已经被看不起了吗?
vHypnos
2022-01-26 02:22:13 +08:00
ts+python 全栈一窝端。。
wdhwg001
2022-01-26 02:31:15 +08:00
@bthulu 我们确实是在讨论业务代码吧?实现连接池我觉得太架构了。

你说的这种情形确实得纠结这个,但考虑到健壮性的话情形会复杂很多。

我很好奇具体是什么业务场景需要用到跨请求缓存,并且这种缓存对于延时一类的要求如此之高,以至于不能依赖现有的 redis 一类的独立且可靠的缓存实现。
bthulu
2022-01-26 08:11:20 +08:00
@wdhwg001 我这里是工厂内的工业化项目, 是要部署客户提供的 windows 家庭版电脑上去的, 而 windows 上是没有可靠的 redis 可用的. 而且客户数量很多, 每个客户都要实施过去部署, 同时打通各个硬件之间的连接, 可能是网络连接, 可能是串口, 可能是 modbus. 为了简化实施工作量, 也不可能在 windows 上装一个 Linux 虚拟机的.
wdhwg001
2022-01-26 08:26:38 +08:00
@bthulu 原来是 C/S 项目的 C 端。说实话这边讨论的业务都局限于 B/S ,而我也很久没有搞过 C 端了。

不过 C 端的话,实际上你不应该让 C 端去直接操控服务器端的数据库的,这样真的很不安全。
bthulu
2022-01-26 08:28:20 +08:00
@wdhwg001 是 C/S 项目的 C/S 端啊, 工业设备相关的, 没有服务端客户端的说法, 都是一体两面的
bthulu
2022-01-26 08:29:54 +08:00
@wdhwg001 而且我们也有很多 B/S 端架构啊, 前端用的是 PWA, 后端 C#. 打包到一起后部署到 windows 上.
waltcow
2022-01-26 09:14:01 +08:00
@BeautifulSoap Entity 和 DTO 转换可以试下用 github copilot ,我试过基本定义好 func convertWorkToDto(work model.Work) WorkDto , 基本可以能无缝生成
TimLang
2022-01-26 09:17:31 +08:00
@nine 很好奇,国内还有 30+ruby 的团队,方便说下做的是什么项目吗。。
popil1987
2022-01-26 09:46:10 +08:00
@bthulu 这个好办啊,docker 不就干这事的嘛!每个工厂一个环境一个 docker 容器,这个不是语言的范畴
Huelse
2022-01-26 09:51:44 +08:00
tiedan
2022-01-26 10:00:23 +08:00
ppt

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

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

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

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

© 2021 V2EX