V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
aljun
V2EX  ›  程序员

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

  •  1
     
  •   aljun · 2022-01-24 00:01:44 +08:00 · 24914 次点击
    这是一个创建于 815 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    • Java
    • Go
    • Python (特指有 asyncio 的 Python 3 )
    • Ruby (特指 Ruby3 )
    • Elixir
    • Scala
    • Javascript(特指 typescript )

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

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

    提名请给出具体的理由

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

    有 代码生成 不然只能换标准库了
    reflect.value.call 对效能实在太伤了 又不能改函数 body
    james122333
        205
    james122333  
       2022-01-25 23:24:59 +08:00
    好像如果有 eval 也可以实现任意类型
    ragnaroks
        206
    ragnaroks  
       2022-01-25 23:29:33 +08:00
    因为你的列表里面没有 csharp ,所以只能是 java 了
    no13bus
        207
    no13bus  
       2022-01-25 23:31:46 +08:00
    kotlin
    libook
        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++的┑( ̄Д  ̄)┍
    pytth
        209
    pytth  
       2022-01-26 01:41:18 +08:00 via iPhone
    php 已经被看不起了吗?
    vHypnos
        210
    vHypnos  
       2022-01-26 02:22:13 +08:00
    ts+python 全栈一窝端。。
    wdhwg001
        211
    wdhwg001  
       2022-01-26 02:31:15 +08:00 via iPhone
    @bthulu 我们确实是在讨论业务代码吧?实现连接池我觉得太架构了。

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

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

    不过 C 端的话,实际上你不应该让 C 端去直接操控服务器端的数据库的,这样真的很不安全。
    bthulu
        214
    bthulu  
       2022-01-26 08:28:20 +08:00
    @wdhwg001 是 C/S 项目的 C/S 端啊, 工业设备相关的, 没有服务端客户端的说法, 都是一体两面的
    bthulu
        215
    bthulu  
       2022-01-26 08:29:54 +08:00
    @wdhwg001 而且我们也有很多 B/S 端架构啊, 前端用的是 PWA, 后端 C#. 打包到一起后部署到 windows 上.
    waltcow
        216
    waltcow  
       2022-01-26 09:14:01 +08:00
    @BeautifulSoap Entity 和 DTO 转换可以试下用 github copilot ,我试过基本定义好 func convertWorkToDto(work model.Work) WorkDto , 基本可以能无缝生成
    TimLang
        217
    TimLang  
       2022-01-26 09:17:31 +08:00
    @nine 很好奇,国内还有 30+ruby 的团队,方便说下做的是什么项目吗。。
    popil1987
        218
    popil1987  
       2022-01-26 09:46:10 +08:00
    @bthulu 这个好办啊,docker 不就干这事的嘛!每个工厂一个环境一个 docker 容器,这个不是语言的范畴
    Huelse
        219
    Huelse  
       2022-01-26 09:51:44 +08:00
    tiedan
        220
    tiedan  
       2022-01-26 10:00:23 +08:00
    ppt
    bthulu
        221
    bthulu  
       2022-01-26 10:28:55 +08:00
    @popil1987 你这是在搞笑啊, 遇事不决就 docker? 我编译打包出一个 rar 文件, 复制到客户机器上解压缩, 整个部署过程就完成了. 搁你这还要去开 cpu 虚拟化, 去下个几百 M 的安装文件, 装好后再在 windows 里起一个 docker 虚拟机, 再分 2G 内存出去, 再去微软商店下 linux 发行版? 再说了, 工厂内也没外网啊, 我 U 盘存一个 rar 文件, 复制过去多方便. 没外网你这还得连手机开 USB 网络共享. 无依赖部署, 不比你整个 docker 强一万倍
    sharpy
        222
    sharpy  
       2022-01-26 10:41:13 +08:00
    我用 nodejs+rust
    wonderfulcxm
        223
    wonderfulcxm  
       2022-01-26 10:51:55 +08:00 via iPhone
    真是可怕,语言之争已经转移到 Go 去了,那我 PHP 只好闷声发大财了😄
    foil2
        224
    foil2  
       2022-01-26 10:57:20 +08:00
    2022 业务开发,个人常用 Python, TypeScript
    另外针对"非计算要求极高的场景": Python 3 的 asyncio 表现还可以(个人感觉)

    另外我觉得编程语言的选择,得根据具体的任务吧。
    比如区块链这块,以太坊你得学 Solidity ,还有的公链开发用的是 Rust.
    虽然 Rust 语法很难受,也得捏着鼻子学啊😂。
    undeflife
        225
    undeflife  
       2022-01-26 11:01:32 +08:00   ❤️ 1
    golang 的卫道士真可怕
    ql562482472
        226
    ql562482472  
       2022-01-26 11:28:59 +08:00
    go 的问题有啥可争的 就是语言设计不完善导致的没有很多正常语言的功能,当然应该在一个正常语言的标准库里,以前不算正常语言,现在想争当正常语言,库当然应该完善,估计 go 1.22 就能变成正常语言了
    BeautifulSoap
        227
    BeautifulSoap  
       2022-01-26 11:32:38 +08:00
    @waltcow 我申请 copilot 已经过去快半年了,至今都没有给我资格。。。。期间还追加了几个账号申请也没回音。。。用的账号里还有日常非常活跃的。。。
    ql562482472
        228
    ql562482472  
       2022-01-26 11:53:44 +08:00
    @bthulu windows 上用 docker 就是安装 docker 然后 run image 就完事了,你觉得 rar 分发方便 也 OK 不影响 docker 分发的优势啊,只是你的场景可能 rar 方便
    nine
        229
    nine  
       2022-01-26 12:20:16 +08:00
    @TimLang

    现在没有了。曾经的团队。企业重后端业务。
    实际十来个人够用了,只不过有 2 个内部因素,导致的最高扩充到了 30+。
    liuxu
        230
    liuxu  
       2022-01-26 13:53:13 +08:00
    @3dwelcome 你这耿直的小老弟,8 位 MCU 32 字节内存的芯片做 web 服务器,这话你都信
    code4you
        231
    code4you  
       2022-01-26 20:18:18 +08:00
    PHP
    popil1987
        232
    popil1987  
       2022-01-27 10:12:55 +08:00
    @bthulu 我不是在搞笑,我是贱,你光 at 我没叫爸爸就回复你是我的错,对不起,我以后一定改正。互 block ,节约时间。
    CommandZi
        233
    CommandZi  
       2022-02-09 11:05:44 +08:00
    @Leviathann
    「 2011 年 7 月,JetBrains 推出 Kotlin 项目,这是一个面向 JVM 的新语言,它已被开发一年之久。」
    「 2010 年 7 月,苹果开发者工具部门总监克里斯·拉特纳开始着手 Swift 编程语言的设计工作,以一年时间,完成基本架构后,他领导了一个设计团队参与其中。Swift 大约历经 4 年的开发期,2014 年 6 月发表。」
    以上文字都来自维基百科
    1  2  3  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3666 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 04:58 · PVG 12:58 · LAX 21:58 · JFK 00:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.