V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Kamitora
V2EX  ›  程序员

不喜欢动态语言但是工作需要使用 Python ,寻求一个替代的静态语言...

  •  
  •   Kamitora · 2020-03-27 17:34:07 +08:00 · 7727 次点击
    这是一个创建于 1733 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Background

    公司某跨国药企

    应届生,学 C/C++/Java/C# 入门的,极其不适应 Python, JavaScript 等语言。

    工作之后一直写 Python,用于

    • 自动化流程
    • 并发命令行程序
    • Parse 各种文件及其 I/O
    • 操作 Excel
    • 操作数据库

    寻求一个替代的静态语言

    • 能够基本完成上述的操作
    • 原生的 API 丰富,公司不让用 Maven / Npm / Pip / Anaconda 等包管理软件
    • (因为两年前全球的公司服务器中毒停摆了一周造成巨额损失。)
    • 最好不要太偏,否则内网里可能找不到安装包...
    65 条回复    2020-03-30 09:16:46 +08:00
    virusdefender
        1
    virusdefender  
       2020-03-27 17:39:25 +08:00
    golang
    hszhakka2ex
        2
    hszhakka2ex  
       2020-03-27 17:39:37 +08:00
    Go
    bitdust
        3
    bitdust  
       2020-03-27 17:41:18 +08:00   ❤️ 2
    明显 C#
    操作 excel 不用微软系的你还想用啥~
    90928yao
        4
    90928yao  
       2020-03-27 17:41:34 +08:00
    ts
    williamfzc
        5
    williamfzc  
       2020-03-27 17:49:16 +08:00   ❤️ 1
    python + typing hints 很香啊
    est
        6
    est  
       2020-03-27 17:53:39 +08:00   ❤️ 1
    > 应届生,学 C/C++/Java/C# 入门的,极其不适应 Python, JavaScript 等语言。

    这个问题你自己都回答了。。用你自己习惯的呗。。

    > 原生的 API 丰富,公司不让用 Maven / Npm / Pip / Anaconda 等包管理软件,最好不要太偏,否则内网里可能找不到安装包...

    这几个理由和动态静态似乎没啥关系。
    JB18CM
        7
    JB18CM  
       2020-03-27 17:54:46 +08:00   ❤️ 1
    rust
    wuwukai007
        8
    wuwukai007  
       2020-03-27 17:57:01 +08:00   ❤️ 1
    java,c# 你都会还过来问,初步判断
    你这工作需求是那种脚本形式的开发,短平快,
    python 真的感觉蛮合适的,
    youngce
        9
    youngce  
       2020-03-27 18:02:28 +08:00   ❤️ 1
    golang 大致能满足你的要求,不过 python 干你说的这些活,确实是也比较合适的
    susecjh
        10
    susecjh  
       2020-03-27 18:29:24 +08:00   ❤️ 1
    啥顺手用啥呗,我基本工作上使用 golang,各种工具都是 python,包括自己的批量测试工具
    tonghuashuai
        11
    tonghuashuai  
       2020-03-27 21:10:16 +08:00   ❤️ 1
    同意 5 楼,Python 3 + Type Hints 可以试一下
    ivechan
        12
    ivechan  
       2020-03-27 21:16:19 +08:00   ❤️ 1
    如果你只是不喜欢动态语言,而不是不喜欢 python,可以试一下 mypy 。
    Mypy is an optional static type checker for Python that aims to combine the benefits of dynamic (or "duck") typing and static typing.

    ```
    def fib(n: int) -> Iterator[int]:
    a, b = 0, 1
    while a < n:
    yield a
    a, b = b, a+b

    ```
    hand515
        13
    hand515  
       2020-03-27 21:26:22 +08:00   ❤️ 1
    你这种工作还是 python 更适合啊
    iApp
        14
    iApp  
       2020-03-27 21:39:17 +08:00   ❤️ 3
    C#不是挺好吗,现在也能跨平台了
    lc7029
        15
    lc7029  
       2020-03-27 22:08:13 +08:00
    汇编
    raincode
        16
    raincode  
       2020-03-27 22:11:28 +08:00
    js
    rockyou12
        17
    rockyou12  
       2020-03-27 22:11:47 +08:00
    groovy 可以吧,有脚本特性,兼容 java 所有语法与生态。还有 @grab 这种脚本中用 maven 的神特性
    Ultraman
        18
    Ultraman  
       2020-03-27 22:22:53 +08:00 via Android   ❤️ 1
    我还以为会有人提木兰😏
    zhuangzhuang1988
        19
    zhuangzhuang1988  
       2020-03-27 22:32:21 +08:00
    F#呗
    tt67wq
        20
    tt67wq  
       2020-03-27 22:51:56 +08:00 via iPhone
    kotlin ?
    bnm965321
        21
    bnm965321  
       2020-03-27 22:57:43 +08:00
    写 typescript 之前喜欢在 python 里面写 type hints
    写 typescript 之后,不喜欢在 python 里面写 type hints
    augustheart
        22
    augustheart  
       2020-03-27 23:26:08 +08:00
    别多想,以你这描述,安德斯就是为你量身定制的 c#
    locoz
        23
    locoz  
       2020-03-27 23:31:55 +08:00
    golang 可以,你需求相关的库都比较完善,并且有很多都是原生的。而且并发什么的随随便便就能搞,加个 go 就完事了。管理工具、测试工具、文档工具什么的也自带。
    liprais
        24
    liprais  
       2020-03-27 23:34:41 +08:00
    golang 库比较完善真不是来搞笑的么......
    Orenoid
        25
    Orenoid  
       2020-03-27 23:35:20 +08:00 via Android
    现在 python 用好 typing 的话,开发体验也不会很差了。这东西还是看人,哪怕是 Java 也有那种拿个 map 满世界传的,那代码看得想打人。
    hackzx
        26
    hackzx  
       2020-03-27 23:38:29 +08:00   ❤️ 1
    PHP 是世界上最好的语言

    有各种框架可以使用,你想要的功能模块百度都搜得到

    而且 PHP 独特的语法混合了 C 、Java 、Perl 以及 PHP 自创新的语法

    不喜欢浏览器运行,还可以通过命令行“php -f 文件名”来运行
    hackzx
        27
    hackzx  
       2020-03-27 23:42:15 +08:00
    php excel 类 https://blog.csdn.net/myzhou2017/article/details/83987211
    php 写桌面软件 https://www.jianshu.com/p/91f9e69dfc18
    php 操作数据库(这就不用说了吧)
    php 并发 (网上有大量示例)
    lululau
        28
    lululau  
       2020-03-27 23:42:48 +08:00
    swift,kotlin
    xcstream
        29
    xcstream  
       2020-03-27 23:53:05 +08:00
    c# 原生的 api 丰富
    superrichman
        30
    superrichman  
       2020-03-27 23:55:31 +08:00 via iPhone
    没有人看到楼主写的不能用包管理软件吗...
    还有只能在内网里装软件...?
    比较好奇之前是怎么做 excel 解析和数据库连接的
    KaynW
        31
    KaynW  
       2020-03-28 00:29:14 +08:00
    @liprais 又不是不能用(狗头)
    justfortest
        32
    justfortest  
       2020-03-28 00:35:04 +08:00
    又不是不能用,你以为用静态类型就有安全感了? naive
    你这种明显是 python 很适合
    ZRS
        33
    ZRS  
       2020-03-28 00:48:17 +08:00
    C#
    ila
        34
    ila  
       2020-03-28 00:51:08 +08:00 via Android
    @superrichman pip download 后按照 download 的顺序手动安装 download 包
    araaaa
        35
    araaaa  
       2020-03-28 01:43:13 +08:00 via iPhone
    scala rust
    laike9m
        36
    laike9m  
       2020-03-28 02:07:35 +08:00 via Android
    type hint 了解一下?
    zjsxwc
        37
    zjsxwc  
       2020-03-28 07:53:34 +08:00 via Android
    不让用包管理器,是什么鬼,完全手动 u 盘拷贝吗
    sikong31
        38
    sikong31  
       2020-03-28 09:54:27 +08:00
    我不知道你不喜欢动态语言哪方面 /
    如果是代码提示体验差,用 vscode 的 language server,提示就比较智能,或者像静态语言一样自己标明类型(type hint),用起来也没什么区别
    动态语言很灵活,自己给自己设好限制就好
    classyk
        39
    classyk  
       2020-03-28 10:36:55 +08:00
    C#
    dexterzzz
        40
    dexterzzz  
       2020-03-28 10:40:15 +08:00 via Android
    跨国还是医疗行业,当然 c#,熟悉医疗领域技术,技术移民
    zachlhb
        41
    zachlhb  
       2020-03-28 10:43:09 +08:00 via Android
    @ivechan python3 已经原生支持类型注解了
    zachlhb
        42
    zachlhb  
       2020-03-28 10:44:18 +08:00 via Android
    建议看下现在的 python3,已经支持类型注解了
    charlie21
        43
    charlie21  
       2020-03-28 11:04:03 +08:00
    如果 C# 是一个选项,可以用 C# 阿
    xyjincan
        44
    xyjincan  
       2020-03-28 11:34:52 +08:00
    啥都可以,不要用 C#就行
    cabing
        45
    cabing  
       2020-03-28 11:41:22 +08:00
    不想用 py,go 可以啊。3 天入门到使用。各种 github 轮子,当然你需要测试下这些包的稳定性。
    b00tyhunt3r
        46
    b00tyhunt3r  
       2020-03-28 11:46:14 +08:00
    RUST
    dwzfuck
        47
    dwzfuck  
       2020-03-28 12:07:49 +08:00
    go
    claysec
        48
    claysec  
       2020-03-28 12:15:59 +08:00
    觉得 python 还好。当然我也会 C#和 java 。就感觉没啥不适应吧,个人原因吧
    dingyaguang117
        49
    dingyaguang117  
       2020-03-28 12:34:19 +08:00
    想什么的还是 Python 最合适, 你自己得提高下 Python 技能
    ClericPy
        50
    ClericPy  
       2020-03-28 12:38:18 +08:00
    目前的工作套路, 动态语言和静态语言都至少要会一门, JS 最热, Python 最火, 看你的自动化类型的工作, 最适合的还就是 Python...

    不过既然不喜欢, 那按照你的 C 语法底子, 一天就能上手 golang, 不过不让用包管理工具也不能连外网... 要不要考虑换个工种... 用编译型语言做自动化简直就是找罪受啊
    Cloutain
        51
    Cloutain  
       2020-03-28 14:47:26 +08:00
    易语言,你说的这些操作的易语言模块太多太多了,而且极其易用 ε=ε=ε=┏(゜ロ゜;)┛逃
    fline
        52
    fline  
       2020-03-28 14:53:01 +08:00
    又不是意识形态斗争。。。对语言还有喜欢不喜欢的么
    RockShake
        53
    RockShake  
       2020-03-28 15:29:33 +08:00
    这几个需求 C#都能轻松搞定啊
    p1gd0g
        54
    p1gd0g  
       2020-03-28 15:41:55 +08:00
    golang 啊,容易上手。
    cdh1075
        55
    cdh1075  
       2020-03-28 15:43:07 +08:00
    vb.net 不香吗
    123444a
        56
    123444a  
       2020-03-28 18:32:54 +08:00 via Android
    hiphop
    xingheng
        57
    xingheng  
       2020-03-28 18:44:11 +08:00
    C# & .netcore 它不香吗?

    楼上那些说 python typing 的,多了个静态类型检查 python 就变成了静态语言了吗?
    afpro
        58
    afpro  
       2020-03-28 19:15:43 +08:00
    如果楼主是做机器学习的 可以了解一下 Julia
    janxin
        59
    janxin  
       2020-03-28 19:31:40 +08:00
    C#不就行了吗
    ila
        60
    ila  
       2020-03-28 20:19:47 +08:00 via Android
    @ClericPy 联网编译,内网跑 exe
    hronro
        61
    hronro  
       2020-03-28 22:09:31 +08:00
    如果习惯 Python 的语法,可以试试 Nim,缺点就是现在还不太成熟
    jin7
        62
    jin7  
       2020-03-28 22:57:19 +08:00
    不能用包管理 内网也不能上网吧 U 盘拷贝也不行吧 好难哦
    Kamitora
        63
    Kamitora  
    OP
       2020-03-29 03:08:21 +08:00
    没想到那么多回复,我下周就去申请下载 Visual Studio 😶
    linvaux
        64
    linvaux  
       2020-03-29 17:37:59 +08:00
    go 吧
    daimiaopeng
        65
    daimiaopeng  
       2020-03-30 09:16:46 +08:00 via Android
    go 完美符合要求,写的时候恶心你
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3478 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 04:39 · PVG 12:39 · LAX 20:39 · JFK 23:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.