目前 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
xingjue 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
neochen13 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
winterbells 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 2
推荐 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
joyhub2140 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 不要太赞同,学完了不知道干啥,一个月高级特性就忘得差不多了。
|