V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
idihs
V2EX  ›  Go 编程语言

GoLang 和 Python ,哪个更适合做 Java 程序员的第二语言?

  •  
  •   idihs · 2024-09-03 11:32:09 +08:00 · 14486 次点击
    这是一个创建于 367 天前的主题,其中的信息可能已经有所发展或是发生改变。
    120 条回复    2024-09-13 12:03:12 +08:00
    1  2  
    onll42y
        1
    onll42y  
       2024-09-03 11:34:46 +08:00   ❤️ 1
    python 吧,体验下动态类型语言
    815979670
        2
    815979670  
       2024-09-03 11:35:35 +08:00
    感觉 go 更合适,python 做大型项目不太合适
    iamtsm
        3
    iamtsm  
       2024-09-03 11:35:36 +08:00
    golang 不清楚,python 很快上手,看了几天语法就可以开始写代码了哈哈哈
    coderxy
        4
    coderxy  
       2024-09-03 11:37:18 +08:00
    py 一静一动 纵享丝滑
    querysecret
        5
    querysecret  
       2024-09-03 11:38:18 +08:00
    @815979670 Java 程序员的第二语言
    coderluan
        6
    coderluan  
       2024-09-03 11:42:19 +08:00
    找工作的话,也就是还是做 web ,go 助力更大一点。
    提升自己的话,想研究点别的,python 肯定更万能。
    9136347
        7
    9136347  
       2024-09-03 11:43:38 +08:00   ❤️ 14
    恰好 python golang 都写,但是不会写 java ,但是也接触过不少的 java 程序员。
    从我的角度,我推荐 python 。
    原因有以下几个:
    1 、完全不一样的语言逻辑,java 讲世界都是对象,但是 python ,会告诉你,什么 j8 对象不对象,直接梭哈。
    2 、就想 1 楼说的,体验下动态语言。
    3 、python 是一个工具语言,你不一定要用它做什么业务逻辑,但是用来做一些自己用的小工具,比如我才接到个需求,统计我司几百个项目的代码行数。python ,1 个小时解决。
    4 、从我认识的 java 程序员来说,眼界偏窄(勿喷)。为什么呢,这个世界的语言,除了 java 那一整套,Spring Cloud 什么的,还有很多很多很多。说到远程调用不一定就是 Spring Cloud ,除了面向对象,还有函数式,直接基于流程的,等等。
    保命:java 很好很强大,no.1
    xdeng
        8
    xdeng  
       2024-09-03 11:43:44 +08:00
    py 写测试代码 写小工具
    reeco
        9
    reeco  
       2024-09-03 11:44:29 +08:00
    这两个都是半天就入门了,花个 1 天时间全部学下不就好了
    idblife
        10
    idblife  
       2024-09-03 11:47:11 +08:00
    我全都要
    python 写个脚本小工具啥的,胶水语言贼方便
    golang 写命令行工具,不用考虑环境,哪里都能运行
    flyqie
        11
    flyqie  
       2024-09-03 11:51:05 +08:00 via Android
    python

    不要选 go

    python 的话能体验到动态语言,静态语言玩习惯了试试动态语言挺好的
    Felldeadbird
        12
    Felldeadbird  
       2024-09-03 11:52:55 +08:00
    首选 PY ,你会体验到什么叫快。一周就可以出各种小玩意。

    go 的话也可以,但是你要接受写 go 各种 err 的的写法。不习惯写起来很卡进度。
    ounxnpz
        13
    ounxnpz  
       2024-09-03 11:53:41 +08:00   ❤️ 4
    都别选,作为 Python 、Golang 都写的人,看下 Javaer 写的 Python 、Golang 代码就头大
    bitmin
        14
    bitmin  
       2024-09-03 11:57:02 +08:00
    建议先学 python ,相对 java 用 python 开发既快速又省资源,非常适合自己折腾些项目玩

    光学不用不如不学,先想好要折腾什么玩再看学什么
    fffq
        15
    fffq  
       2024-09-03 11:57:53 +08:00
    @ounxnpz 同意,一堆 do vo dto ,,,
    fffq
        16
    fffq  
       2024-09-03 11:59:04 +08:00
    PY
    Ayanokouji
        17
    Ayanokouji  
       2024-09-03 12:01:29 +08:00
    看方向,云原生选 go ,ai 选 python
    lvlongxiang199
        18
    lvlongxiang199  
       2024-09-03 12:04:23 +08:00
    建议是 go. 学习的过程中, 可以思考下编程的最佳实践. 比如 https://go-proverbs.github.io/.
    顺便可以思考如下问题
    - 为啥 go 里头不能创建 thread, 只能创建 goroutine ?
    - 为啥 go 舍弃了继承, 继承有什么缺陷
    - 为啥 go 里头不流行跟线程池类似的协程池 ?
    - 为啥 go 里没有异常 ? 这样的好处是什么 ?
    lvlongxiang199
        19
    lvlongxiang199  
       2024-09-03 12:09:17 +08:00
    其实也可以看下新的 java.
    新的 java 也有些 python 的语法糖. 比如: https://www.infoq.com/articles/pattern-matching-for-switch/ https://www.baeldung.com/java-record-keyword
    cmdOptionKana
        20
    cmdOptionKana  
       2024-09-03 12:13:54 +08:00
    @lvlongxiang199 有道理,Go 带来的启发比 Python 更大。
    oliveira
        21
    oliveira  
       2024-09-03 12:53:14 +08:00
    JavaScript 或者 Python 吧
    Subfire
        22
    Subfire  
       2024-09-03 13:00:53 +08:00
    都学下比较好. 服务器端日常开发, 各种小工具一般用 Python 写的, 比如导表工具/生成代码工具
    WesleyWong
        23
    WesleyWong  
       2024-09-03 13:09:48 +08:00
    我选择 C++, 可以配合 JNI, 也更底层
    xgdgsc
        24
    xgdgsc  
       2024-09-03 13:12:53 +08:00 via Android
    julia
    hallDrawnel
        25
    hallDrawnel  
       2024-09-03 13:13:47 +08:00
    全都要。python 科学计算方面的东西太好用了。go 写一些需要并发的小东西也比 python 方便,然后数据丢数据库或者某个中间存储,chatGPT 生成对应语言的操作代码就可以互通。
    youngce
        26
    youngce  
       2024-09-03 13:57:05 +08:00
    python 吧,一些最新的 ai 相关的东西可能最先出 python 版本
    godspeedyou
        27
    godspeedyou  
       2024-09-03 14:06:36 +08:00
    都用过,建议 go 。python 写脚本工具什么的是方便,但是当我想部署的时候,我会用转向 go 重写一遍。
    qiyilai
        28
    qiyilai  
       2024-09-03 14:10:24 +08:00
    都需要,后面交叉工作多了,都得上手
    Promtheus
        29
    Promtheus  
       2024-09-03 14:13:57 +08:00
    作为 java 程序员 我 cpp python go c# 都做 ,一般都是跟着诉求走的。如果最近用不到就不要学了 学完就忘记了
    Bingchunmoli
        30
    Bingchunmoli  
       2024-09-03 14:22:29 +08:00 via Android
    @9136347 之前同时写 py 和 java ,发现两者不适应,一个写得好的时候另一个必定出问题。可能当时基础也不够好的原因吧(在校刚学)
    Bingchunmoli
        31
    Bingchunmoli  
       2024-09-03 14:26:16 +08:00 via Android
    @fffq 如何解决不同领域的 ppjo 的区别,一把梭吗
    echo1937
        32
    echo1937  
       2024-09-03 14:29:29 +08:00
    @fffq #15 尬黑,go 和 python 的 web 框架 基本没有留空间给 javaer 写 do vo dto 的空间。

    很多 java 的写法, 到 go 和 python 里面,甚至都没法 1:1 改写过来,要换个方式实现。
    ninjashixuan
        33
    ninjashixuan  
       2024-09-03 14:34:09 +08:00
    偏网络用 go ,其他尝试 Python 吧
    ala2008
        34
    ala2008  
       2024-09-03 14:39:51 +08:00
    别选,会被鄙视( doge
    Goooooos
        35
    Goooooos  
       2024-09-03 14:41:45 +08:00
    go 入门挺快的,比 python 快。
    但我更多是用 python
    yazinnnn0
        36
    yazinnnn0  
       2024-09-03 14:44:09 +08:00
    都不用, 来点有追求的

    比如 ocaml/fsharp, haskell, scheme/racket/clojure

    三选二
    tairan2006
        37
    tairan2006  
       2024-09-03 14:53:36 +08:00 via Android
    python 更有用

    如果想转换思维模式,可以试试楼上那些 fp 语言
    bugmakerxs
        38
    bugmakerxs  
       2024-09-03 14:57:07 +08:00
    python 写脚本,golang 写工程。
    HansLee
        39
    HansLee  
       2024-09-03 15:05:53 +08:00
    如果是说想要系统性学习用来做点什么的第二语言,那选 go 吧

    在我的职业生涯里,无论现在的工作在写什么,python 一直是那种不怎么写但是一直分不开的,写点临时 job ,分析点数据这些,主要产出不是 python 写的,但是能帮很多忙
    coderzhangsan
        40
    coderzhangsan  
       2024-09-03 15:44:24 +08:00
    第二语言必须是字面兄弟是 javascript😏
    InkStone
        41
    InkStone  
       2024-09-03 15:50:20 +08:00   ❤️ 3
    @9136347 其实吧,Python 远比 Java 更“一切皆对象”。

    Java 的面向对象跟 Python 比就是个半吊子
    Jinnrry
        42
    Jinnrry  
       2024-09-03 15:50:49 +08:00 via iPhone   ❤️ 1
    写过 2 年 java
    写过四五年 python
    写了四五年 golang

    1.找工作的角度无脑选 go ,招聘数量 go 远大于 Python
    2.如果是平时写玩具,无脑选 go ,交叉编译谁用谁知道。python 那狗屎兼容性,换个环境装包就要你半条命
    3.玩机器学习,玩科学计算无脑选 Python ,因为 go 里面没有相关的库
    4.入门难度两个差不多,但是 python 语法糖太多太杂,每次看别人代码都会惊呼还能这么写啊
    weiwenhao
        43
    weiwenhao  
       2024-09-03 16:08:45 +08:00
    kotlin 或者 rust 。golang 能做的 java 都能做。
    zeusho871
        44
    zeusho871  
       2024-09-03 16:09:45 +08:00
    先学的 py 后学的 go
    pkoukk
        45
    pkoukk  
       2024-09-03 16:19:22 +08:00
    python 适合搓自己的小工具玩,仅在自己的电脑或者自己的小鸡上跑
    go 适合搓了工具发给别人用
    XIVN1987
        46
    XIVN1987  
       2024-09-03 16:20:07 +08:00
    这个看目的吧
    如果是想以后找工作机会更多,,那就学 Go ,,国内用 Go 的公司越来越多了
    如果是想开拓视野,,那就学 Python ,,Python 库涉及的领域非常广泛,,
    如果是想深入理解计算机工作原理,,那应该学 C ,,
    wxyrrcj
        47
    wxyrrcj  
       2024-09-03 16:22:48 +08:00
    一块学
    Donahue
        48
    Donahue  
       2024-09-03 16:26:23 +08:00   ❤️ 1
    小孩子才做选择,成年人全都要! golang 打包部署方便,适合做一些小工具什么的。python 写脚本数据分析等方便。
    昨天才用 golang 写了个机场聚合订阅、添加自定义 openclash 规则的工具,运行在路由器上(360T7, 256 内存),golang 的跨平台编译深得我心。这个小工具编译出来就 12M, 虽然相对于它的功能来说还是比较大的,但是相对于其他语言来说是非常小了。
    Arivan996
        49
    Arivan996  
       2024-09-03 16:46:33 +08:00
    我现在在体验 python ,写小工具确实方便很多,几行代码就可以实现我想要的功能
    AOIO7t
        50
    AOIO7t  
       2024-09-03 17:05:27 +08:00
    当工具语言用的话,肯定 python 啦,什么偏门需求搜一下都能找到能用的包,干啥都快
    ZZ74
        51
    ZZ74  
       2024-09-03 17:07:31 +08:00
    都不适合
    第二语言 js ,找工作兼职就能全栈了,有优势。
    liuidetmks
        52
    liuidetmks  
       2024-09-03 17:07:53 +08:00
    起码要熟悉一个脚本吧,干点杂活比较方便
    MFWT
        53
    MFWT  
       2024-09-03 17:10:53 +08:00
    我的是,都用

    区别在于,写一些自己用的临时的脚本,无脑 py
    写一些跨平台的,或者要交给别人用的,最好单可执行文件的,直接上 golang

    于是就很舒服了
    capgrey
        54
    capgrey  
       2024-09-03 17:11:33 +08:00
    @lvlongxiang199 面试官,🙏不要念了😭
    monkeyWie
        55
    monkeyWie  
       2024-09-03 17:16:22 +08:00   ❤️ 1
    作为一个 java 、golang 、js 、ts 、dart 、python 都写的人来说,如果脚本语言推荐的话我对 JS 的喜爱远超 python ,毕竟能用 JS 写的东西,终将会用 JS 来写
    storyxc
        56
    storyxc  
       2024-09-03 17:17:51 +08:00
    我建议都学
    datou
        57
    datou  
       2024-09-03 17:18:18 +08:00
    这俩入门都不难,不用二选一
    supuwoerc
        58
    supuwoerc  
       2024-09-03 17:19:40 +08:00
    @monkeyWie 脚本还是 lua 带劲🐶
    guanzhangzhang
        59
    guanzhangzhang  
       2024-09-03 17:22:53 +08:00
    如果首选因素有多平台,无依赖环境,不写 GUI ,不数据处理和识图相关重领域,那就选 go
    tikazyq
        60
    tikazyq  
       2024-09-03 17:41:27 +08:00
    成年人不做选择
    Nazz
        61
    Nazz  
       2024-09-03 17:49:48 +08:00
    选 JavaScript, 一家人
    bzj
        62
    bzj  
       2024-09-03 17:57:11 +08:00
    自学用 go ,python 需求用 ai
    vipfts
        63
    vipfts  
       2024-09-03 18:47:26 +08:00
    rust
    wupher
        64
    wupher  
       2024-09-03 18:50:54 +08:00
    看你要写什么。
    nmecury
        65
    nmecury  
       2024-09-03 19:05:44 +08:00
    成年人不选,都要
    TheWalkingDead
        66
    TheWalkingDead  
       2024-09-03 19:06:07 +08:00
    以前学过 java ,typescript ,python
    现在只想用 python+rust
    chenshun00
        67
    chenshun00  
       2024-09-03 19:23:36 +08:00
    只有觉得 C++不错么 :)
    chenshun00
        68
    chenshun00  
       2024-09-03 19:23:52 +08:00
    只有我觉得 C++不错么 :)
    EminemW
        69
    EminemW  
       2024-09-03 19:47:02 +08:00
    @9136347 python 这种语言代码提示太弱鸡了,不熟悉的时候写起来很难受
    iorilu
        70
    iorilu  
       2024-09-03 20:04:58 +08:00
    其实很容易选择

    程序员一般应该选择一门编译语言, 一门解释语言

    因为很多情况下确实有需要混合这两种语言开发得情况

    比如用编译语言实现一个命令行程序包含所有逻辑, 然后用脚本调用或开发 gui 调用服务程序

    这样一来方便前后端分离开发调试, 二来也保护后端程序不易遭到破解等
    iorilu
        71
    iorilu  
       2024-09-03 20:09:05 +08:00
    补充下

    其实我觉得现在 如果愿意学习得花

    可能 python + rust 是搞定一切得最佳选择

    无论是深入到系统级, 还是其他 gui, 快速开发, web , 机器学习等这两样组合足以搞定任何需求, 而且肯定都是生产可用得
    chevalier
        72
    chevalier  
       2024-09-03 21:02:25 +08:00
    两个都长期用过

    看你学语言的目的吧,如果你是为了找工作和技术更全面,选 Golang ;如果你是为了自己写点东西折腾玩或者做 Startup ,选 Python
    volvo007
        73
    volvo007  
       2024-09-03 21:05:50 +08:00
    @9136347 据我的了解,py 应该也是万物皆对象吧,都是从 "object" 这个基类出来的?当然我不是来引战的,因为我非常同意 4. ,很多人拿了稍微高一点的职级真是尾巴翘上天,仿佛这个世界只有 互联网/美国/其他类推
    posebear1990
        74
    posebear1990  
       2024-09-03 21:11:04 +08:00 via iPhone
    当然是 py ,感受一下什么是万能的胶水语言
    R4rvZ6agNVWr56V0
        75
    R4rvZ6agNVWr56V0  
       2024-09-03 21:22:23 +08:00
    在中国以后找工作用? 选 Go
    在海外在工作用?选 Python
    gtx990
        76
    gtx990  
       2024-09-03 21:34:13 +08:00 via Android
    两个语言都很糟糕
    还是 typescript 吧
    ZiLong
        77
    ZiLong  
       2024-09-03 22:29:53 +08:00
    人生苦短,我选 ai
    Richardhtw
        78
    Richardhtw  
       2024-09-03 22:36:26 +08:00
    JavaScript ?这样就可以写前端了~
    yb2313
        79
    yb2313  
       2024-09-03 22:48:00 +08:00
    java 的话选 c#和 kotlin 上手很快吧
    yb2313
        80
    yb2313  
       2024-09-03 22:50:19 +08:00
    @monkeyWie 当然是用 ts, 然后用很多 any 嘿嘿嘿
    yb2313
        81
    yb2313  
       2024-09-03 22:51:01 +08:00
    @iorilu #71 py 调用 rust 生成的二进制包也可以, rust 也可以调用 py
    lightjiao
        82
    lightjiao  
       2024-09-03 22:58:12 +08:00
    虽然 python 重构火葬场,但是 f@cuck golang
    golang 这个语言的语法就像是没做完的一道屎味巧克力
    Acsw
        83
    Acsw  
       2024-09-03 23:25:25 +08:00
    选 js 吧。如果想搞中间件或者 web 可以学学 go 。python 不了解。。。
    xuanbg
        84
    xuanbg  
       2024-09-03 23:26:35 +08:00
    还学啥第二语言,我都不知道自己用过多少种编程语言了。貌似也从来没有专门学过哪种编程语言,都是直接上手就写。
    YunFun
        85
    YunFun  
       2024-09-04 02:27:35 +08:00 via iPhone
    算利益相关吧,私以为主要看需求,我主要 Java ,Go ,服务端主要还是推荐这俩,生态和应对大型项目的能力最重要,Go 也适合业余折腾点小玩意,简单好学。

    我在认真做一个 Go 实战社群,过两天应该会发推广帖,https://yunosphere.com ,实战项目+配套简历辅导+大厂经验分享+Mini 项目练手,有兴趣 vx:Wow_Doers ,没兴趣勿扰😂,想好好做事,无意割韭,也无意扯皮~
    ixcode
        86
    ixcode  
       2024-09-04 02:48:16 +08:00
    javascript ,更有互补性
    那两个能干的事,利率上 java 也能干
    ixcode
        87
    ixcode  
       2024-09-04 02:48:34 +08:00
    javascript ,更有互补性
    那两个能干的事,理论上 java 也能干
    netabare
        88
    netabare  
       2024-09-04 03:14:07 +08:00
    Go ,因为没有泛型,符合原汁原味的 OOP 思想。
    iorilu
        89
    iorilu  
       2024-09-04 08:26:34 +08:00
    @yb2313 是的, 现在很多 python 工具都有 rust 重构的高性能版, ruff, uv 等

    rust 和 python 关系不一把, 以后可能进一步融合

    所以说两样结合可以通吃所有需求了, 以后也不用说什么 python 性能不行, 先搞出来, 有搞头再用 rust 重构部分
    kandaakihito
        90
    kandaakihito  
       2024-09-04 08:47:52 +08:00
    看自身的情况和需求,简单来说就是你能做什么项目,有资格做什么项目,然后学啥。

    平时在公司做项目全部爪哇( Java ),简单学过蟒蛇( python )和地鼠( golang )。

    后面打开老板( boss )直聘,发现这两种语言很少有社招直接招 web 后端的,更多时候在这些方向,提供 crud 接口只是一种附加需求。<b>很少有一种语言会和 Java 一样把 crud 作为主要甚至唯一的工作需求:</b>

    招 go 的往往要求有云原生经验,很多要么是初创公司做小项目,或者是干存储或者网络的;
    招 python 的往往主要是要求会算法和大模型什么的;
    招 shell 的多偏向运维要求会各种运维工具二开;
    招 C 井和 lua 的往往都要求有游戏行业从业经验。。。

    经常都会看到一句,“无 xxx 经验的勿投”。

    那咋办,我一个破双非,社招去投这些岗位百分百没人要,人家又不可能发善心培养我这个小白。所以现在干脆学前端和 node 后端去了,当个全栈好歹还能混口饭吃。
    dif
        91
    dif  
       2024-09-04 08:58:39 +08:00
    就我的经验,python 吧,但 go 也可以再学一下。
    wssy001
        92
    wssy001  
       2024-09-04 09:04:30 +08:00
    @ounxnpz #13 那你可千万别去字节写 golang 因为你能看到不少 golang 项目里有你讨厌的
    janda
        93
    janda  
       2024-09-04 09:09:26 +08:00
    我主要是 java ,go 和 python 都用,只是使用场景不一样
    go:一般写些能解决性能问题的东西、以及看中它的编译打包、简单方便而且使用者不需要安装环境
    python:主要是自己写些脚本使用、其实主要是爬虫多哈哈,包括现在写些 openai 的项目
    wssy001
        94
    wssy001  
       2024-09-04 09:11:18 +08:00
    Python 和 Golang 都没必要学,Python 的话,动态语言,Java 是纯静态,你 Java 写多了再写 Python 不觉得别扭?
    Golang 无非是能带给你 AOT+极速编译的快感(我目前也是拿 Golang 当做第二语言,但越写越感觉 Golang 不适合负责业务。要不是 GraalVM 生态没起来,我还真没动力继续学习 Golang )
    Java 作为一个 JIT GC 都很优秀的语言,第二个语言我建议考虑无 GC 语言
    Andywoo
        95
    Andywoo  
       2024-09-04 09:11:22 +08:00
    都学吧,其实单纯只学语法的话,两个一两天就搞定。其余关键还是看你想干嘛,重在实践,我写一些自动化脚本,简单的 web 等等就是 python ,用 go 写过 web 和 agent ,还用 wails 写过桌面 app 。也用 flutter 写过 app ,用 react 写 web 等等。到真正实践的时候去看写的好的开源项目,python 就用 python 的最佳实践,go 就用 go 的。
    dV9zZM1wROuBT16X
        96
    dV9zZM1wROuBT16X  
       2024-09-04 09:16:05 +08:00
    python ,jvm 有热身,性能其实跟 golang 差不了多少,python 可以调用 java ,脚本语言减少心智压力
    longzhx
        97
    longzhx  
       2024-09-04 09:19:32 +08:00
    大多数的 Javaer ,世界中只有 spring 和 idea
    huangzhiyia
        98
    huangzhiyia  
       2024-09-04 09:22:58 +08:00 via iPhone
    python 项目大了不好维护 类型提示太差了
    go 生态又不是很成熟
    所以我推荐 js 🤣
    ericguo
        99
    ericguo  
       2024-09-04 09:25:35 +08:00
    看你想走的方向,走底层 Go ,走应用层 Python
    NessajCN
        100
    NessajCN  
       2024-09-04 09:27:12 +08:00
    学 C# 和 Python 吧
    写习惯 oop 的让你写 go 你会浑身难受的
    1  2  
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   914 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 19:46 · PVG 03:46 · LAX 12:46 · JFK 15:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.