不喜欢动态语言但是工作需要使用 Python ,寻求一个替代的静态语言... - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
Kamitora
V2EX    程序员

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

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

    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 真的感觉蛮合适的,
    ynkkdev
        9
    ynkkdev  
       2020-03-27 18:02:28 +08:00   1
    golang 大致能满足你的要求,不过 python 干你说的这些活,确实是也比较合适的
    darylc
        10
    darylc  
       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

    ```
    Finest
        13
    Finest  
       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 就完事了。管理工具、测试工具、文档工具什么的也自带。
    F281M6Dh8DXpD1g2
        24
    F281M6Dh8DXpD1g2  
       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
        5
    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 吧
    labubu
        65
    labubu  
       2020-03-30 09:16:46 +08:00 via Android
    go 完美符合要求,写的时候恶心你
    关于     帮助文档     自助推广系统     博客     API    FAQ     Solana     3879 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 05:15 PVG 13:15 LAX 21:15 JFK 00:15
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86