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

目前是 Java 码农,想再学一门语言 c++,c#,rust,go,各位大佬推荐哪一个

  •  
  •   lemonteacode · 203 天前 · 5605 次点击
    这是一个创建于 203 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前 java 码农,想再学习一门语言,精力有限,在平时还要研究 java 的情况下只能再选择一门,复杂度不是问题因为也是学习嘛,个人比较倾向 rust ,因为现在炒的比较火,而且又是个新东西,系统及语言实用范围也比较大 纠结的点(以下的话都出自个人映像,在没有足够了解的情况下的胡言乱语,大家轻喷): 1:想自己做个桌面应用程序玩玩,毕竟 java 大家都懂,上班就写 web 后端,老实说是吃饭需要,必须一直研究,最好能跨平台,c++和 c#目前知道是不错的,因为还有.NET 这玩意,rust 因为目前确实不太懂哈不知道能不能(轻松)做一些比较美观的 gui 应用 2:性能最好要比 java 强是不,go 目前也是比较火,对于工作来说确实是个好东西,但是感觉(感觉啊!)这玩意跟 java 一样,就是大家都拿来搞一些工作上的东西,玩乐性不知道行不行,毕竟是工作之余搞点好玩的,再说 java21 都出来了而且 go 和 java 的性能差距也有一些讨论的声音

    75 条回复    2023-11-02 15:06:33 +08:00
    darkengine
        1
    darkengine  
       203 天前
    当然是学 TS + NodeJS 啦
    luckyrayyy
        2
    luckyrayyy  
       203 天前
    桌面应用程序 Java 也可以写,我用 javafx 和 jb 家出的 compose 都写过。go 印象里没啥好用的 gui 库吧,rust 不了解。
    lemonteacode
        3
    lemonteacode  
    OP
       203 天前
    @darkengine 啊这
    xtreme1
        4
    xtreme1  
       203 天前
    看过你描述也没搞清楚到底是写着玩还是想吃饭用...
    后者的话, cpp rust 这种都依赖于领域相关的知识, 和具体语言(虽然也很重要)其实没那么多关系...
    lemonteacode
        5
    lemonteacode  
    OP
       203 天前
    @luckyrayyy 确实 java 也能写,我也用过一些,但是想学个新的嘛~~~
    lemonteacode
        6
    lemonteacode  
    OP
       203 天前
    @xtreme1 就是想玩,但是也想更加深入一点,应为吃饭的语言已经有了,我想再学一个更底层的语言,然后跟跟 java 相辅相成嘛
    lbllol365
        7
    lbllol365  
       203 天前
    @luckyrayyy 请问下 jb 的 compose 是不是得学一些他家 Android 的那套东西,我是 Java Web 技术栈的,当时看了看 compose ,有点懵
    jianchang512
        8
    jianchang512  
       203 天前
    想搞桌面端,肯定选 c#啊,c++ rust 太费劲了
    xtreme1
        9
    xtreme1  
       203 天前
    @lemonteacode #6
    写着玩就首先别考虑 cpp 了, 一个指定的现代的包管理器对心理健康来说太需要了.
    senjyougahara
        10
    senjyougahara  
       203 天前
    写着玩自然是 c#啊,各种语法糖太方便了,写桌面端也方便,还有跨平台的 maui
    luckyrayyy
        11
    luckyrayyy  
       203 天前
    @lbllol365 我不了解安卓,不知道你说的 Android 的那套东西是指啥? compose 本身跟安卓没啥关系吧,没有依赖,声明式 UI 也不是安卓独创的各个框架都这么设计。
    lbllol365
        12
    lbllol365  
       203 天前
    @luckyrayyy 那应该就是我没找对文档吧,多谢回复
    hsuyeung
        13
    hsuyeung  
       203 天前
    同 java ,Go 之前用过一段时间,写点小东西感觉很舒服,但是异常处理很烦。rust 前段时间看官方文档学了一半多了,暂时不知道自己想学来做什么,所以继续学下去的动力也逐渐没了。现在又有点想学 iOS 开发( swift )自己写点 app 啥的玩玩
    LoNeZ
        14
    LoNeZ  
       203 天前
    rust&golang
    xlsepiphone
        15
    xlsepiphone  
       203 天前
    ts
    wqq096737ink
        16
    wqq096737ink  
       203 天前
    看到有人推荐 ts/nodejs ,表示不理解,后端开发学这玩意儿干啥?写网页?

    选 go 贴合 k8s
    zzzkkk
        17
    zzzkkk  
       203 天前 via Android
    @wqq096737ink
    最好 html css 也学 国外找机会有帮助 能卷死别人 贪婪资本家喜欢节约资金
    liveoppo
        18
    liveoppo  
       203 天前
    跳出语言吧,学点其他的,比如 AI
    xuanbg
        19
    xuanbg  
       202 天前
    啥都不要学,没用的东西学它作甚?
    xgdgsc843
        20
    xgdgsc843  
       202 天前 via Android
    rust/julia
    darkengine
        21
    darkengine  
       202 天前
    @wqq096737ink 要不你先查一下 ts/nodejs 能干啥?
    potatowish
        22
    potatowish  
       202 天前 via iPhone
    建议学前端,国外工作都是偏全栈的
    lsk569937453
        23
    lsk569937453  
       202 天前
    1:想自己做个桌面应用程序玩玩.
    首选那还是得 js 。可以写 web 前端,可以开发桌面应用。
    2.性能最好要比 java 强是不。
    java=c#=golang,c++太难,所以只有 rust 一个选项了
    musi
        24
    musi  
       202 天前
    @wqq096737ink #16 楼主说的第一点,做个最好可以跨平台的桌面应用程序,你就说 Electron 能不能满足吧。性能要是实在过不去就写个 C++的包让 node.js 调
    litchinn
        25
    litchinn  
       202 天前
    rust 有一个 dioxus
    SchneeHertz
        26
    SchneeHertz  
       202 天前
    想做桌面程序你得学前端那套,那就指定 js 了
    knightdf
        27
    knightdf  
       202 天前
    你要写 gui 其实 go,rust 都不太适合,还是学 js 吧,或者 C#,或者都学
    sankooc
        28
    sankooc  
       202 天前
    推荐 go/rust 千万别搞什么 nodejs
    flowerains
        29
    flowerains  
       202 天前
    做桌面端,要么狠一点一口气和我一样跑到 iOS&macOS 那边玩。

    不然绕不开 js 和 html css ,还是别抵抗了
    Nazz
        30
    Nazz  
       202 天前
    学 electron
    xingjue
        31
    xingjue  
       202 天前
    学 wails go 写的跨平台
    vikaptain
        32
    vikaptain  
       202 天前
    C#,会 java 基本可以无缝切过去,就怕你用了 C#之后再写 java 难受。
    imokkkk
        33
    imokkkk  
       202 天前
    ts go
    tobepro
        34
    tobepro  
       202 天前
    你这个需求,tauri 很适合啊。rust+nodejs ,写桌面程序,还跨平台
    Norths
        35
    Norths  
       202 天前
    go 如果说硬要写桌面的话可以看下 https://github.com/wailsapp/wails
    geekjoehome
        36
    geekjoehome  
       202 天前
    楼主有 java 基础可以试试 kotlin ,我偶然学了一下后就爱上了这门语言,语法精炼且富有表达力,符合我的极致追求。没学这语言前别人说 java 有啥缺陷,kotlin 如何好,我是感觉不到的(即使看了一些对比文章),心想 java 又不是不能用…… 但学了之后,有对比了,就不想回去写 java 了。还有那套协程也很香。

    我觉得这门语言应该有发展前景,目前可能还方兴未艾吧。

    rust 是为了替代 c/c++场景,kotlin 是为了替代 java 场景。
    roseduan
        37
    roseduan  
       202 天前
    当然 Go/Rust 学完了再来个项目实践下,最多一个月就基本掌握了
    https://w02agegxg3.feishu.cn/docx/Ktp3dBGl9oHdbOxbjUWcGdSnn3g
    dif
        38
    dif  
       202 天前
    最好学一门比较不一样的,假设 java 能做的,go 也能做,go 能做的 java 也能做(假设两者生态一样),那学他干嘛? 不如学个 ts 可以让你前端后端都能干。
    neochen13
        39
    neochen13  
       202 天前
    flutter
    lemonteacode
        40
    lemonteacode  
    OP
       202 天前
    哈哈哈,大佬们好热情,这下更不知道选啥了哈哈
    PTLin
        41
    PTLin  
       202 天前
    不应该着眼于语言,应该想一下感兴趣什么领域。决定不了研究方向自然就选不出来语言
    lemonteacode
        42
    lemonteacode  
    OP
       202 天前
    @tobepro 666 ,看了一下,确实很不错,而且又可以学 rust 和 nodejs ,一举夺得了属于是
    PTLin
        43
    PTLin  
       202 天前
    还有,不要为了 gui 学 rust ,tauri 能做的 electron 都能做,而且更成熟。而且 rust 的 native gui 库基本上全是半吊子。
    lemonteacode
        44
    lemonteacode  
    OP
       202 天前
    @PTLin 主要是工作这么多年了,想回归学电脑的初衷,做一些酷酷的东西,但是就是工作太久思维僵化,有的时候都不知道什么比较好玩了,重新找回一下自己了属于是
    anakinsky
        45
    anakinsky  
       202 天前
    建议 js, electron 可以写一些桌面客户端,rust 、go 没听说过有啥知名 ui 库,cpp 太难太复杂,c#还行。不建议跨度太大的技术栈,写写 js 和你现在工作还有些关联经常可以接触到,其他技术时间长没接触就忘了
    lemonteacode
        46
    lemonteacode  
    OP
       202 天前
    @anakinsky js 是好,但是可能是我这块太不了解了,总感觉太弱了,我想的是在做下面的事的时候顺便使自己更加深入一点,所以希望性能事最好比 java 强一点然后更加底层一点,可以和我目前的技术能力相辅相成这样
    PTLin
        47
    PTLin  
       202 天前
    @lemonteacode 那我感觉你有很多方向可以选择呀,比如研究一下三大坑,操作系统,编译器,图形学。研究一下数据库实现,或者研究 gui 方面的。
    就比如 gui 这个方面你就可以选择移动开发的 Android 开发,IOS 开发,还是 flutter ,RN 这种跨平台库。
    学习 web 既可以写网页,有可以用 electron 写桌面程序,也可以用 RN 写移动端,还可以学学 nodejs 写后端。
    剩下就是可以选择微软的 C# WPF MAUI 什么的,或者是学习 CPP 的 Qt 。有很多选择,选择语言是你选择了具体方向之后的。
    manasheep
        48
    manasheep  
       202 天前
    C#比较合适,一是 Java 跳 C#没什么难度,非常平顺,二是 C#用 WPF 做桌面端很完善,还可以用 Blazor 做前端,这样能补充自己的技术栈。
    lemonteacode
        49
    lemonteacode  
    OP
       202 天前
    @PTLin 666 ,大佬就是大佬,说到点上了,说得对,我是应该选择一个研究方向,那其实我是想往 gui 方向走,但是又放不下后端的担子想追求性能,后端做久了总是追求性能和优化,处于一个比较纠结的状态,这也是我倾向 rust 的原因。
    shylockhg
        50
    shylockhg  
       202 天前
    花里胡哨,直接学前端,组个全栈技能树。
    winterbells
        51
    winterbells  
       202 天前 via Android
    当然是 kotlin 啦,无缝衔接(:doge

    最近在看 rust ,有点绕不过来,全靠 GPT4 写代码
    PTLin
        52
    PTLin  
       202 天前
    @lemonteacode 纯 gui 方向学 rust 就是浪费时间,死了这条心吧。
    yazinnnn0
        53
    yazinnnn0  
       202 天前
    首先排除语法丑的

    玩的话尽量选动态类型语言, 如果选静态语言, 选类型推导能力强的

    我个人推荐
    scheme / racket
    clojure / fsharp
    rust / ts

    排名分先后
    AyaseEri
        54
    AyaseEri  
       202 天前
    当然是 ts+css+html 啦,你迟早得前后端全干了。
    lizhian
        55
    lizhian  
       202 天前   ❤️ 2
    推荐 kotlin

    第一,你学了 kotlin,是可以在工作中使用到的,跟 java 无缝衔接,混合编程.很多著名库/框架都官方支持 kt,例如 springboot,有些库甚至用 kotlin 重写.

    第二,kotlin 就是一个缝合怪,吸收了很多其他语言的特性,作为过渡语言也是一个很好的选择,当你后面学你上面提到的那些语言,你会觉得很熟悉,并且很快上手.

    第三,kotlin 可以写桌面软件,还能写手机软件,甚至可以写前端页面,并且这些都是官方支持的,非第三方框架/库.kotlin 官方野心很大,以后还会脱离 jvm 世界.

    第四,学了 kotlin,真的不想回去写 java,kotlin 真香
    huiyadanli
        56
    huiyadanli  
       202 天前
    我本职工作用 Java ,做过挺久的网站所以对前端 js 还算了解(原生 or Vue )。业余有大量 C# 的开源项目,最近还刚刚扒了一些 C++、Rust 的实现到 C#。

    对于多门语言这块我很多实际落地经验。做什么用什么学什么。

    对于语言的选择取决于你实际想要做什么,要做到什么程度?

    如果你想要独立做跨平台项目,并且想要快速出活获得成就感,我只会推荐你学习 js 。

    如果你是想要做 Windows 桌面端,无脑选择 C#。
    YassoWithSpeaker
        57
    YassoWithSpeaker  
       202 天前
    js ts 我现在就在玩 ts ,也是后端,js 的作用远远不是 web 这一个层面,jsjs javascript -> java script -> script ->作为脚本语言,他能在几乎所有已知的环境运行,无论是鸿蒙还是安卓还是 winmaclinux ,甚至 word 。ppt 。pdf 里都能跑,平时写个 navicat 脚本,更何况还有 css 。性能,这玩意也不是服务器,一台服务器服务数万人,这一个电脑服务一个用户,谈什么性能,脸都不要了
    c2const
        58
    c2const  
       202 天前
    1.OP 要好玩的,C 系语言,那必然是 win 安全了 :)
    2.C 语言,C++方面有 C with class 基础就行,然后写写汇编,熟悉下应用层和驱动中的 windows API ,直到正向开发学会了 :)
    3.再学学逆向,,有精力捡起学的编译原理,写个简单的现代编译器也行,手写几个壳,看汇编如看小说,拖壳,调试,反调试,反反调试,这时候基本就进入好玩阶段,因为自己用的软件大多都能自己动手破解了(有能力还是建议支持正版), :)
    4.然后是微软官方的 windows insider 和老潘的 windows 内核原理与实现,基本没有代码,结合开源的 WRK 源码(变动不大)和自己逆汇编,啃下来基本就水平爆炸了,同时期可以写写杀软、ARK ,或者对抗杀软、对抗 ARK ,与人斗也是其乐无穷,也算符合好玩的 :)
    5.国内课程基本是圈钱骗小白,不如 1234 全程去参与 github 上的一些项目,看看前辈风采,不过需要自己抛光补全代码 :)
    6.最后,缺钱做点合法副业可以,但注意别下海,因一念之差进局子了,毕竟这时候,国内外都能找到薪水不错又好玩的工作了 :)
    lemonteacode
        59
    lemonteacode  
    OP
       202 天前
    @c2const 大佬牛皮呀
    c2const
        60
    c2const  
       202 天前
    @lemonteacode

    1.不是大佬,现在也是外企躺平 :(
    2.上面的内容只是大概,手机网页上随手打的,格式内容其实都有小错误 :(
    sunwei0325
        61
    sunwei0325  
       202 天前
    rust 最大的问题是学完了不知道干啥, 而且特性很多学完了不用的话很快就忘了, 官网文档看了 4 遍以上了
    iffi
        62
    iffi  
       202 天前
    java 之余,我学了 go 、python
    EricShell
        63
    EricShell  
       202 天前
    学一口流利的英语可能对未来更实用
    gav1nvv
        64
    gav1nvv  
       202 天前
    @darkengine 哈哈哈哈哈,不让前端有活路
    avalon8
        65
    avalon8  
       202 天前
    go python
    huihuiHK
        66
    huihuiHK  
       202 天前
    English
    lemonteacode
        67
    lemonteacode  
    OP
       202 天前
    @EricShell 666 懂得都懂,英语肯定是要学的
    KING754
        68
    KING754  
       202 天前
    同 JAVA 想学英语呀.
    想玩智能设备,想写移动 APP.
    这些东西,又该怎么搞哎.
    sofukwird
        69
    sofukwird  
       202 天前 via Android
    当然是 kt ,只要你用 kt 家的编辑器体验应该就是一流的
    kt 对标 go ,你想要的 go 有 kt 也有
    kt 还兼容 Java 生态,你可以复用已有 Java 知识(熟悉另一种语言生态是一个很大的时间成本
    joyhub2140
        70
    joyhub2140  
       202 天前
    flutter 跨平台 gui 新贵。
    comingnine
        71
    comingnine  
       202 天前 via Android
    现在电脑的性能很好,java 如果能胜任,java 系的就挺好的吧
    lemonteacode
        72
    lemonteacode  
    OP
       201 天前
    突然感觉还是要先把英语学好先
    CloveAndCurrant
        73
    CloveAndCurrant  
       201 天前
    推荐 zig 和 golang
    durban126
        74
    durban126  
       201 天前
    先学的 php+css+js+html+jquery ,再学的 python ,然后学 object-c ,之后学的 nodejs+react+vue ,再之后学的 golang
    现在在学安卓开发,rust ,java 就顺便看了下,也有接触过 springboot 这玩意的开发还不错
    以上都是公司发展过程中不断有需求的情况下学习的

    就问你学了之后想干啥,你想干啥决定了你要学啥,而不是学啥才去干啥,我这么觉得,当然我这是小公司,创业公司,如果你是大公司就不知道了,可能学 一门也行
    CynicalRose
        75
    CynicalRose  
       177 天前
    @sunwei0325 不要太赞同,学完了不知道干啥,一个月高级特性就忘得差不多了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   982 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 19:21 · PVG 03:21 · LAX 12:21 · JFK 15:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.