2022 年,各个语言已经有了长足的发展,但其实业界更多的需求还是写业务。
这里写业务主要考虑的是解决问题的敏捷性与后期的可维护性和扩展性,在性能层面要求不会特别的高,考虑的不只是语言本身的特性,还包括语言本身的生态。当然也需要考虑招人或者新人上手成本。其中业务泛指非计算要求极高的场景。
其中我觉得作为候选的为:
Java
Go
Python
(特指有 asyncio 的 Python 3 )Ruby
(特指 Ruby3 )Elixir
Scala
Javascript
(特指 typescript )当然也不限上述语言,C++
和Rust
就算了吧,用那个写业务首先在敏捷性就不太好
因为限定为 2022 年,考虑的范畴都为该语言最新版本,且没有历史包袱
提名请给出具体的理由
201
promisenev 2022-01-25 20:20:03 +08:00
@Huelse 现在函数式编程...都已经 fp 这样缩写了吗...
|
203
bthulu 2022-01-25 22:46:29 +08:00
@Hanggi 这不应该是被这么多人接受, 是它没有泛型做不到干净利落的实现导致它干脆摆烂不做了, 那你们用这些库的人还能怎样, 不接受又能如何, 有本事你不用啊
|
204
james122333 2022-01-25 23:04:50 +08:00
|
205
james122333 2022-01-25 23:24:59 +08:00
好像如果有 eval 也可以实现任意类型
|
206
ragnaroks 2022-01-25 23:29:33 +08:00
因为你的列表里面没有 csharp ,所以只能是 java 了
|
207
no13bus 2022-01-25 23:31:46 +08:00
kotlin
|
208
libook 2022-01-25 23:51:36 +08:00 3
@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++的┑( ̄Д  ̄)┍ |
209
pytth 2022-01-26 01:41:18 +08:00 via iPhone
php 已经被看不起了吗?
|
210
vHypnos 2022-01-26 02:22:13 +08:00
ts+python 全栈一窝端。。
|
211
wdhwg001 2022-01-26 02:31:15 +08:00 via iPhone
@bthulu 我们确实是在讨论业务代码吧?实现连接池我觉得太架构了。
你说的这种情形确实得纠结这个,但考虑到健壮性的话情形会复杂很多。 我很好奇具体是什么业务场景需要用到跨请求缓存,并且这种缓存对于延时一类的要求如此之高,以至于不能依赖现有的 redis 一类的独立且可靠的缓存实现。 |
212
bthulu 2022-01-26 08:11:20 +08:00
@wdhwg001 我这里是工厂内的工业化项目, 是要部署客户提供的 windows 家庭版电脑上去的, 而 windows 上是没有可靠的 redis 可用的. 而且客户数量很多, 每个客户都要实施过去部署, 同时打通各个硬件之间的连接, 可能是网络连接, 可能是串口, 可能是 modbus. 为了简化实施工作量, 也不可能在 windows 上装一个 Linux 虚拟机的.
|
213
wdhwg001 2022-01-26 08:26:38 +08:00 via iPhone
@bthulu 原来是 C/S 项目的 C 端。说实话这边讨论的业务都局限于 B/S ,而我也很久没有搞过 C 端了。
不过 C 端的话,实际上你不应该让 C 端去直接操控服务器端的数据库的,这样真的很不安全。 |
215
bthulu 2022-01-26 08:29:54 +08:00
@wdhwg001 而且我们也有很多 B/S 端架构啊, 前端用的是 PWA, 后端 C#. 打包到一起后部署到 windows 上.
|
216
waltcow 2022-01-26 09:14:01 +08:00
@BeautifulSoap Entity 和 DTO 转换可以试下用 github copilot ,我试过基本定义好 func convertWorkToDto(work model.Work) WorkDto , 基本可以能无缝生成
|
218
popil1987 2022-01-26 09:46:10 +08:00
@bthulu 这个好办啊,docker 不就干这事的嘛!每个工厂一个环境一个 docker 容器,这个不是语言的范畴
|
219
Huelse 2022-01-26 09:51:44 +08:00
|
220
tiedan 2022-01-26 10:00:23 +08:00
ppt
|
221
bthulu 2022-01-26 10:28:55 +08:00
@popil1987 你这是在搞笑啊, 遇事不决就 docker? 我编译打包出一个 rar 文件, 复制到客户机器上解压缩, 整个部署过程就完成了. 搁你这还要去开 cpu 虚拟化, 去下个几百 M 的安装文件, 装好后再在 windows 里起一个 docker 虚拟机, 再分 2G 内存出去, 再去微软商店下 linux 发行版? 再说了, 工厂内也没外网啊, 我 U 盘存一个 rar 文件, 复制过去多方便. 没外网你这还得连手机开 USB 网络共享. 无依赖部署, 不比你整个 docker 强一万倍
|
222
sharpy 2022-01-26 10:41:13 +08:00
我用 nodejs+rust
|
223
wonderfulcxm 2022-01-26 10:51:55 +08:00 via iPhone
真是可怕,语言之争已经转移到 Go 去了,那我 PHP 只好闷声发大财了😄
|
224
foil2 2022-01-26 10:57:20 +08:00
2022 业务开发,个人常用 Python, TypeScript
另外针对"非计算要求极高的场景": Python 3 的 asyncio 表现还可以(个人感觉) 另外我觉得编程语言的选择,得根据具体的任务吧。 比如区块链这块,以太坊你得学 Solidity ,还有的公链开发用的是 Rust. 虽然 Rust 语法很难受,也得捏着鼻子学啊😂。 |
225
undeflife 2022-01-26 11:01:32 +08:00 1
golang 的卫道士真可怕
|
226
ql562482472 2022-01-26 11:28:59 +08:00
go 的问题有啥可争的 就是语言设计不完善导致的没有很多正常语言的功能,当然应该在一个正常语言的标准库里,以前不算正常语言,现在想争当正常语言,库当然应该完善,估计 go 1.22 就能变成正常语言了
|
227
BeautifulSoap 2022-01-26 11:32:38 +08:00
@waltcow 我申请 copilot 已经过去快半年了,至今都没有给我资格。。。。期间还追加了几个账号申请也没回音。。。用的账号里还有日常非常活跃的。。。
|
228
ql562482472 2022-01-26 11:53:44 +08:00
@bthulu windows 上用 docker 就是安装 docker 然后 run image 就完事了,你觉得 rar 分发方便 也 OK 不影响 docker 分发的优势啊,只是你的场景可能 rar 方便
|
229
nine 2022-01-26 12:20:16 +08:00
|
231
code4you 2022-01-26 20:18:18 +08:00
PHP
|
232
popil1987 2022-01-27 10:12:55 +08:00
@bthulu 我不是在搞笑,我是贱,你光 at 我没叫爸爸就回复你是我的错,对不起,我以后一定改正。互 block ,节约时间。
|
233
CommandZi 2022-02-09 11:05:44 +08:00
@Leviathann
「 2011 年 7 月,JetBrains 推出 Kotlin 项目,这是一个面向 JVM 的新语言,它已被开发一年之久。」 「 2010 年 7 月,苹果开发者工具部门总监克里斯·拉特纳开始着手 Swift 编程语言的设计工作,以一年时间,完成基本架构后,他领导了一个设计团队参与其中。Swift 大约历经 4 年的开发期,2014 年 6 月发表。」 以上文字都来自维基百科 |