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 · 106 天前 · 10976 次点击
    这是一个创建于 106 天前的主题,其中的信息可能已经有所发展或是发生改变。
    120 条回复    2024-09-13 12:03:12 +08:00
    1  2  
    onll42y
        1
    onll42y  
       106 天前   ❤️ 1
    python 吧,体验下动态类型语言
    815979670
        2
    815979670  
       106 天前
    感觉 go 更合适,python 做大型项目不太合适
    iamtsm
        3
    iamtsm  
       106 天前
    golang 不清楚,python 很快上手,看了几天语法就可以开始写代码了哈哈哈
    coderxy
        4
    coderxy  
       106 天前
    py 一静一动 纵享丝滑
    querysecret
        5
    querysecret  
       106 天前
    @815979670 Java 程序员的第二语言
    coderluan
        6
    coderluan  
       106 天前
    找工作的话,也就是还是做 web ,go 助力更大一点。
    提升自己的话,想研究点别的,python 肯定更万能。
    9136347
        7
    9136347  
       106 天前   ❤️ 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  
       106 天前
    py 写测试代码 写小工具
    reeco
        9
    reeco  
       106 天前
    这两个都是半天就入门了,花个 1 天时间全部学下不就好了
    idblife
        10
    idblife  
       106 天前
    我全都要
    python 写个脚本小工具啥的,胶水语言贼方便
    golang 写命令行工具,不用考虑环境,哪里都能运行
    flyqie
        11
    flyqie  
       106 天前 via Android
    python

    不要选 go

    python 的话能体验到动态语言,静态语言玩习惯了试试动态语言挺好的
    Felldeadbird
        12
    Felldeadbird  
       106 天前
    首选 PY ,你会体验到什么叫快。一周就可以出各种小玩意。

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

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

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

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

    三选二
    tairan2006
        37
    tairan2006  
       106 天前 via Android
    python 更有用

    如果想转换思维模式,可以试试楼上那些 fp 语言
    bugmakerxs
        38
    bugmakerxs  
       106 天前
    python 写脚本,golang 写工程。
    HansLee
        39
    HansLee  
       106 天前
    如果是说想要系统性学习用来做点什么的第二语言,那选 go 吧

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

    Java 的面向对象跟 Python 比就是个半吊子
    Jinnrry
        42
    Jinnrry  
       105 天前 via iPhone   ❤️ 1
    写过 2 年 java
    写过四五年 python
    写了四五年 golang

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

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

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

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

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

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

    这样一来方便前后端分离开发调试, 二来也保护后端程序不易遭到破解等
    iorilu
        71
    iorilu  
       105 天前
    补充下

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

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

    无论是深入到系统级, 还是其他 gui, 快速开发, web , 机器学习等这两样组合足以搞定任何需求, 而且肯定都是生产可用得
    chevalier
        72
    chevalier  
       105 天前
    两个都长期用过

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

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

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

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

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

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

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

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

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