目前 java 码农,想再学习一门语言,精力有限,在平时还要研究 java 的情况下只能再选择一门,复杂度不是问题因为也是学习嘛,个人比较倾向 rust ,因为现在炒的比较火,而且又是个新东西,系统及语言实用范围也比较大 纠结的点(以下的话都出自个人映像,在没有足够了解的情况下的胡言乱语,大家轻喷): 1:想自己做个桌面应用程序玩玩,毕竟 java 大家都懂,上班就写 web 后端,老实说是吃饭需要,必须一直研究,最好能跨平台,c++和 c#目前知道是不错的,因为还有.NET 这玩意,rust 因为目前确实不太懂哈不知道能不能(轻松)做一些比较美观的 gui 应用 2:性能最好要比 java 强是不,go 目前也是比较火,对于工作来说确实是个好东西,但是感觉(感觉啊!)这玩意跟 java 一样,就是大家都拿来搞一些工作上的东西,玩乐性不知道行不行,毕竟是工作之余搞点好玩的,再说 java21 都出来了而且 go 和 java 的性能差距也有一些讨论的声音
![]() | 1 darkengine 2023-10-07 17:11:28 +08:00 当然是学 TS + NodeJS 啦 |
![]() | 2 luckyrayyy 2023-10-07 17:17:38 +08:00 桌面应用程序 Java 也可以写,我用 javafx 和 jb 家出的 compose 都写过。go 印象里没啥好用的 gui 库吧,rust 不了解。 |
![]() | 3 chunqicoder OP @darkengine 啊这 |
![]() | 4 xtreme1 2023-10-07 17:18:38 +08:00 看过你描述也没搞清楚到底是写着玩还是想吃饭用... 后者的话, cpp rust 这种都依赖于领域相关的知识, 和具体语言(虽然也很重要)其实没那么多关系... |
![]() | 5 chunqicoder OP @luckyrayyy 确实 java 也能写,我也用过一些,但是想学个新的嘛~~~ |
![]() | 6 chunqicoder OP @xtreme1 就是想玩,但是也想更加深入一点,应为吃饭的语言已经有了,我想再学一个更底层的语言,然后跟跟 java 相辅相成嘛 |
![]() | 7 lbllol365 2023-10-07 17:20:44 +08:00 @luckyrayyy 请问下 jb 的 compose 是不是得学一些他家 Android 的那套东西,我是 Java Web 技术栈的,当时看了看 compose ,有点懵 |
8 jianchang512 2023-10-07 17:29:54 +08:00 想搞桌面端,肯定选 c#啊,c++ rust 太费劲了 |
![]() | 9 xtreme1 2023-10-07 17:30:54 +08:00 @lemonteacode #6 写着玩就首先别考虑 cpp 了, 一个指定的现代的包管理器对心理健康来说太需要了. |
![]() | 10 senjyougahara 2023-10-07 17:33:34 +08:00 写着玩自然是 c#啊,各种语法糖太方便了,写桌面端也方便,还有跨平台的 maui |
![]() | 11 luckyrayyy 2023-10-07 17:56:41 +08:00 @lbllol365 我不了解安卓,不知道你说的 Android 的那套东西是指啥? compose 本身跟安卓没啥关系吧,没有依赖,声明式 UI 也不是安卓独创的各个框架都这么设计。 |
![]() | 12 lbllol365 2023-10-07 18:03:04 +08:00 @luckyrayyy 那应该就是我没找对文档吧,多谢回复 |
![]() | 13 hsuyeung 2023-10-07 18:07:03 +08:00 同 java ,Go 之前用过一段时间,写点小东西感觉很舒服,但是异常处理很烦。rust 前段时间看官方文档学了一半多了,暂时不知道自己想学来做什么,所以继续学下去的动力也逐渐没了。现在又有点想学 iOS 开发( swift )自己写点 app 啥的玩玩 |
14 LoNeZ 2023-10-07 18:22:23 +08:00 rust&golang |
![]() | 15 xlsepiphone 2023-10-07 18:34:35 +08:00 ts |
![]() | 16 wqq096737ink 2023-10-07 20:21:28 +08:00 看到有人推荐 ts/nodejs ,表示不理解,后端开发学这玩意儿干啥?写网页? 选 go 贴合 k8s |
17 zzzkkk 2023-10-07 20:24:50 +08:00 via Android @wqq096737ink 最好 html css 也学 国外找机会有帮助 能卷死别人 贪婪资本家喜欢节约资金 |
![]() | 18 liveoppo 2023-10-07 23:06:06 +08:00 跳出语言吧,学点其他的,比如 AI |
![]() | 19 xuanbg 2023-10-08 08:07:26 +08:00 啥都不要学,没用的东西学它作甚? |
20 xgdgsc843 2023-10-08 08:11:02 +08:00 via Android rust/julia |
![]() | 21 darkengine 2023-10-08 08:23:06 +08:00 @wqq096737ink 要不你先查一下 ts/nodejs 能干啥? |
![]() | 22 potatowish 2023-10-08 08:24:28 +08:00 via iPhone 建议学前端,国外工作都是偏全栈的 |
![]() | 23 lsk569937453 2023-10-08 08:34:35 +08:00 1:想自己做个桌面应用程序玩玩. 首选那还是得 js 。可以写 web 前端,可以开发桌面应用。 2.性能最好要比 java 强是不。 java=c#=golang,c++太难,所以只有 rust 一个选项了 |
![]() | 24 musi 2023-10-08 08:37:18 +08:00 @wqq096737ink #16 楼主说的第一点,做个最好可以跨平台的桌面应用程序,你就说 Electron 能不能满足吧。性能要是实在过不去就写个 C++的包让 node.js 调 |
![]() | 25 litchinn 2023-10-08 08:43:00 +08:00 rust 有一个 dioxus |
26 SchneeHertz 2023-10-08 08:48:36 +08:00 想做桌面程序你得学前端那套,那就指定 js 了 |
![]() | 27 knightdf 2023-10-08 08:52:03 +08:00 你要写 gui 其实 go,rust 都不太适合,还是学 js 吧,或者 C#,或者都学 |
![]() | 28 sankooc 2023-10-08 08:54:32 +08:00 推荐 go/rust 千万别搞什么 nodejs |
![]() | 29 flowerains 2023-10-08 09:06:42 +08:00 做桌面端,要么狠一点一口气和我一样跑到 iOS&macOS 那边玩。 不然绕不开 js 和 html css ,还是别抵抗了 |
![]() | 30 Nazz 2023-10-08 09:08:58 +08:00 学 electron |
![]() | 31 nxcdJaNnmyF9O90X 2023-10-08 09:13:42 +08:00 学 wails go 写的跨平台 |
32 vikaptain 2023-10-08 09:25:47 +08:00 C#,会 java 基本可以无缝切过去,就怕你用了 C#之后再写 java 难受。 |
33 imokkkk 2023-10-08 09:40:56 +08:00 ts go |
34 tobepro 2023-10-08 09:53:45 +08:00 你这个需求,tauri 很适合啊。rust+nodejs ,写桌面程序,还跨平台 |
![]() | 35 Norths 2023-10-08 10:10:06 +08:00 go 如果说硬要写桌面的话可以看下 https://github.com/wailsapp/wails |
36 geekjoehome 2023-10-08 10:11:16 +08:00 楼主有 java 基础可以试试 kotlin ,我偶然学了一下后就爱上了这门语言,语法精炼且富有表达力,符合我的极致追求。没学这语言前别人说 java 有啥缺陷,kotlin 如何好,我是感觉不到的(即使看了一些对比文章),心想 java 又不是不能用…… 但学了之后,有对比了,就不想回去写 java 了。还有那套协程也很香。 我觉得这门语言应该有发展前景,目前可能还方兴未艾吧。 rust 是为了替代 c/c++场景,kotlin 是为了替代 java 场景。 |
![]() | 37 roseduan 2023-10-08 10:12:49 +08:00 当然 Go/Rust 学完了再来个项目实践下,最多一个月就基本掌握了 https://w02agegxg3.feishu.cn/docx/Ktp3dBGl9oHdbOxbjUWcGdSnn3g |
![]() | 38 dif 2023-10-08 10:33:41 +08:00 最好学一门比较不一样的,假设 java 能做的,go 也能做,go 能做的 java 也能做(假设两者生态一样),那学他干嘛? 不如学个 ts 可以让你前端后端都能干。 |
![]() | 39 BearCookie 2023-10-08 10:37:48 +08:00 flutter |
![]() | 40 chunqicoder OP 哈哈哈,大佬们好热情,这下更不知道选啥了哈哈 |
![]() | 41 PTLin 2023-10-08 10:43:14 +08:00 不应该着眼于语言,应该想一下感兴趣什么领域。决定不了研究方向自然就选不出来语言 |
![]() | 42 chunqicoder OP @tobepro 666 ,看了一下,确实很不错,而且又可以学 rust 和 nodejs ,一举夺得了属于是 |
![]() | 43 PTLin 2023-10-08 10:49:05 +08:00 还有,不要为了 gui 学 rust ,tauri 能做的 electron 都能做,而且更成熟。而且 rust 的 native gui 库基本上全是半吊子。 |
![]() | 44 chunqicoder OP @PTLin 主要是工作这么多年了,想回归学电脑的初衷,做一些酷酷的东西,但是就是工作太久思维僵化,有的时候都不知道什么比较好玩了,重新找回一下自己了属于是 |
![]() | 45 anakinsky 2023-10-08 10:51:56 +08:00 建议 js, electron 可以写一些桌面客户端,rust 、go 没听说过有啥知名 ui 库,cpp 太难太复杂,c#还行。不建议跨度太大的技术栈,写写 js 和你现在工作还有些关联经常可以接触到,其他技术时间长没接触就忘了 |
![]() | 46 chunqicoder OP @anakinsky js 是好,但是可能是我这块太不了解了,总感觉太弱了,我想的是在做下面的事的时候顺便使自己更加深入一点,所以希望性能事最好比 java 强一点然后更加底层一点,可以和我目前的技术能力相辅相成这样 |
![]() | 47 PTLin 2023-10-08 10:56:52 +08:00 @lemonteacode 那我感觉你有很多方向可以选择呀,比如研究一下三大坑,操作系统,编译器,图形学。研究一下数据库实现,或者研究 gui 方面的。 就比如 gui 这个方面你就可以选择移动开发的 Android 开发,IOS 开发,还是 flutter ,RN 这种跨平台库。 学习 web 既可以写网页,有可以用 electron 写桌面程序,也可以用 RN 写移动端,还可以学学 nodejs 写后端。 剩下就是可以选择微软的 C# WPF MAUI 什么的,或者是学习 CPP 的 Qt 。有很多选择,选择语言是你选择了具体方向之后的。 |
![]() | 48 manasheep 2023-10-08 11:05:25 +08:00 C#比较合适,一是 Java 跳 C#没什么难度,非常平顺,二是 C#用 WPF 做桌面端很完善,还可以用 Blazor 做前端,这样能补充自己的技术栈。 |
![]() | 49 chunqicoder OP @PTLin 666 ,大佬就是大佬,说到点上了,说得对,我是应该选择一个研究方向,那其实我是想往 gui 方向走,但是又放不下后端的担子想追求性能,后端做久了总是追求性能和优化,处于一个比较纠结的状态,这也是我倾向 rust 的原因。 |
50 shylockhg 2023-10-08 11:19:40 +08:00 花里胡哨,直接学前端,组个全栈技能树。 |
![]() | 51 300 2023-10-08 11:22:13 +08:00 via Android 当然是 kotlin 啦,无缝衔接(:doge 最近在看 rust ,有点绕不过来,全靠 GPT4 写代码 |
![]() | 52 PTLin 2023-10-08 11:22:50 +08:00 @lemonteacode 纯 gui 方向学 rust 就是浪费时间,死了这条心吧。 |
53 yazinnnn0 2023-10-08 11:49:37 +08:00 首先排除语法丑的 玩的话尽量选动态类型语言, 如果选静态语言, 选类型推导能力强的 我个人推荐 scheme / racket clojure / fsharp rust / ts 排名分先后 |
54 AyaseEri 2023-10-08 11:57:45 +08:00 当然是 ts+css+html 啦,你迟早得前后端全干了。 |
55 lizhian 2023-10-08 11:58:48 +08:00 ![]() 推荐 kotlin 第一,你学了 kotlin,是可以在工作中使用到的,跟 java 无缝衔接,混合编程.很多著名库/框架都官方支持 kt,例如 springboot,有些库甚至用 kotlin 重写. 第二,kotlin 就是一个缝合怪,吸收了很多其他语言的特性,作为过渡语言也是一个很好的选择,当你后面学你上面提到的那些语言,你会觉得很熟悉,并且很快上手. 第三,kotlin 可以写桌面软件,还能写手机软件,甚至可以写前端页面,并且这些都是官方支持的,非第三方框架/库.kotlin 官方野心很大,以后还会脱离 jvm 世界. 第四,学了 kotlin,真的不想回去写 java,kotlin 真香 |
![]() | 56 huiyadanli 2023-10-08 13:48:15 +08:00 我本职工作用 Java ,做过挺久的网站所以对前端 js 还算了解(原生 or Vue )。业余有大量 C# 的开源项目,最近还刚刚扒了一些 C++、Rust 的实现到 C#。 对于多门语言这块我很多实际落地经验。做什么用什么学什么。 对于语言的选择取决于你实际想要做什么,要做到什么程度? 如果你想要独立做跨平台项目,并且想要快速出活获得成就感,我只会推荐你学习 js 。 如果你是想要做 Windows 桌面端,无脑选择 C#。 |
57 YassoWithSpeaker 2023-10-08 13:54:00 +08:00 js ts 我现在就在玩 ts ,也是后端,js 的作用远远不是 web 这一个层面,jsjs Javascript -> java script -> script ->作为脚本语言,他能在几乎所有已知的环境运行,无论是鸿蒙还是安卓还是 winmaclinux ,甚至 word 。ppt 。pdf 里都能跑,平时写个 navicat 脚本,更何况还有 css 。性能,这玩意也不是服务器,一台服务器服务数万人,这一个电脑服务一个用户,谈什么性能,脸都不要了 |
![]() | 58 c2const 2023-10-08 14:36:23 +08:00 1.OP 要好玩的,C 系语言,那必然是 win 安全了 :) 2.C 语言,C++方面有 C with class 基础就行,然后写写汇编,熟悉下应用层和驱动中的 windows API ,直到正向开发学会了 :) 3.再学学逆向,,有精力捡起学的编译原理,写个简单的现代编译器也行,手写几个壳,看汇编如看小说,拖壳,调试,反调试,反反调试,这时候基本就进入好玩阶段,因为自己用的软件大多都能自己动手破解了(有能力还是建议支持正版), :) 4.然后是微软官方的 windows insider 和老潘的 windows 内核原理与实现,基本没有代码,结合开源的 WRK 源码(变动不大)和自己逆汇编,啃下来基本就水平爆炸了,同时期可以写写杀软、ARK ,或者对抗杀软、对抗 ARK ,与人斗也是其乐无穷,也算符合好玩的 :) 5.国内课程基本是圈钱骗小白,不如 1234 全程去参与 github 上的一些项目,看看前辈风采,不过需要自己抛光补全代码 :) 6.最后,缺钱做点合法副业可以,但注意别下海,因一念之差进局子了,毕竟这时候,国内外都能找到薪水不错又好玩的工作了 :) |
![]() | 59 chunqicoder OP @c2const 大佬牛皮呀 |
![]() | 60 c2const 2023-10-08 15:25:51 +08:00 |
![]() | 61 sunwei0325 2023-10-08 15:28:23 +08:00 rust 最大的问题是学完了不知道干啥, 而且特性很多学完了不用的话很快就忘了, 官网文档看了 4 遍以上了 |
62 iffi 2023-10-08 15:35:29 +08:00 |
63 EricShell 2023-10-08 15:36:43 +08:00 学一口流利的英语可能对未来更实用 |
![]() | 64 gav1nvv 2023-10-08 15:39:51 +08:00 @darkengine 哈哈哈哈哈,不让前端有活路 |
65 avalon8 2023-10-08 16:30:44 +08:00 go python |
![]() | 66 huihuiHK 2023-10-08 16:34:46 +08:00 English |
![]() | 67 chunqicoder OP @EricShell 666 懂得都懂,英语肯定是要学的 |
![]() | 68 KING754 2023-10-08 18:05:20 +08:00 同 JAVA 想学英语呀. 想玩智能设备,想写移动 APP. 这些东西,又该怎么搞哎. |
69 sofukwird 2023-10-08 18:20:21 +08:00 via Android 当然是 kt ,只要你用 kt 家的编辑器体验应该就是一流的 kt 对标 go ,你想要的 go 有 kt 也有 kt 还兼容 Java 生态,你可以复用已有 Java 知识(熟悉另一种语言生态是一个很大的时间成本 |
![]() | 70 nxforce 2023-10-08 19:54:29 +08:00 flutter 跨平台 gui 新贵。 |
71 comingnine 2023-10-09 01:52:28 +08:00 via Android 现在电脑的性能很好,java 如果能胜任,java 系的就挺好的吧 |
![]() | 72 chunqicoder OP 突然感觉还是要先把英语学好先 |
73 CloveAndCurrant 2023-10-09 10:12:22 +08:00 推荐 zig 和 golang |
74 durban126 2023-10-09 21:57:45 +08:00 先学的 php+css+js+html+jquery ,再学的 python ,然后学 object-c ,之后学的 nodejs+react+vue ,再之后学的 golang 现在在学安卓开发,rust ,java 就顺便看了下,也有接触过 springboot 这玩意的开发还不错 以上都是公司发展过程中不断有需求的情况下学习的 就问你学了之后想干啥,你想干啥决定了你要学啥,而不是学啥才去干啥,我这么觉得,当然我这是小公司,创业公司,如果你是大公司就不知道了,可能学 一门也行 |
![]() | 75 CynicalRose 2023-11-02 15:06:33 +08:00 @sunwei0325 不要太赞同,学完了不知道干啥,一个月高级特性就忘得差不多了。 |