看到有大神用 Swift 做后端,坚定了我用 Java 之路

354 天前
 javak

RT ,

刚刚看了一个关注很久的 iOS 大神写的一篇 blog ,他做了一个单机版的 app ,后面由于需要数据同步之类的需求,需要做了一个后端,经过综合考虑之后,选择了 Swift 来做后端 server 。

看了他的选择过程,我理解到的有个很重要的点,就是对 Swift 这个语言特别的喜欢,其他的优缺点,都不是这个选择的决定性因素,这个喜欢才是。(这是我读完文章的理解,并不是代表作者的原意)

正是他的这个喜欢,让我对自己和解了,我决定在 Java 这条路上继续走下去。因为我本来是摇摆不定的,觉得做 Java 的人太多,CURD 又没啥难度,是个人都能做,年龄大了容易被裁等等,在考虑要不要回头做 C++相关的。

下面讲讲我使用过的语言历程,只在学校学过的就不算了。

上面都是我切实生产环境用过的语言,而不是那种紧紧写了一个 hello world 或者 demo 的学习程度,我觉得 demo 程度的使用,是对一个语言的评价没有发言权的。这么多语言中,只有 Java 让我有一种一接触就爱上的感觉,让我觉得,这就是我以后的主语言了,其他语言都只能在特别合适的场景做辅助。

使用了 Java 之后,我把一些脚本场景,之前会毫不犹豫的选择 python 来做,现在我都直接用 Java 来做了,我的想法就是:学一个技术的时候,应该尽可能把平时所有的场景都用这个技术来做,而不管当前场景是否合适。等过了这个阶段之后,再更加场景选择合适的技术。

这样的切换之后,并没有不适感,反而觉得非常好。其实这样的事情,放到任何人面前,都会毫不犹豫选择 python 来做。(我做过实验问过一些人)

但是由于随着年龄接近了 35 岁,所以有了上面说的摇摆和犹豫。看了这个 blog ,让我和自己和解了,喜欢和持续投入才是最重要的,其他的走一步看一步吧,所谓车到山前必有路。

现在我觉得搞 Java 的优势:进,可以从 0 到 1 到 100 的完整后端架构和普通 CRUD 工作;退,可以做各种开源框架;再退,还可以去搞 JVM (我本来也在研究这块),这种 Java 生态中的底层技术。

总能是有口饭吃的,既然如此,那当然是让自己舒心和开学最重要了。


一些只言片语,share to you

6619 次点击
所在节点    程序员
46 条回复
elshir
354 天前
我好几个 app 都是 swift 做后端.. 确实是因为喜欢,这个很重要。
si1enceneo
354 天前
Java 生态成熟,要啥轮子基本都有,写着非常顺手,唯一的缺点就是占用内存比较多,有时候服务器内存不多就得考虑用 go 写了
caiqichang
354 天前
目前后端我觉得最舒适的是 kotlin+spring ,兼具语言和生态优势。脚本场景倾向用 node
nnegier
354 天前
楼主,我有个疑问,我也想用 java 做后端,但是它解 war 包太慢了呀,有一次解了超过 2 分钟,弄得我心神不宁,搞得我很想用云原生呀
dw2693734d
354 天前
@786375312123 rust 是不是开发效率不够高,而且人也不好招
Leviathann
354 天前
高版本 java 的确还不错
尤其是分代 ZGC 有划时代意义
Kamiyu0087
354 天前
@zjsxwc
我写 kotlin 也有原文作者所说的愉悦感,奈何领导不让用啊 T T
q447643445
354 天前
深信`语言只是工具` 就是了.
arcRainbow
354 天前
@jimages 痛心呀。。
arcRainbow
354 天前
@jimages 痛心啊
不知道后面 coolshell 还会不会维护
whyrookie
354 天前
还是更喜欢 Kotlin.
Vegetable
354 天前
有自己的认识就是很好的状态了,不过我对于这种有一些”执念“的状态并不是很认同,更倾向于选择更合适的,而不是优先考虑喜欢。
nnegier
354 天前
@jimages 现在 go 火起来了,文章我也看过,第一个故事我觉得不太恰当
Ayanokouji
354 天前
@nnegier 新项目基本不用 war 包了,都是内嵌 servlet 了吧
kenvix
354 天前
个人觉得做项目技术选型的标准是先看轮子有多少,再看团队水平,最后才考虑语言本身。
libook
354 天前
我个人不想在一棵树上吊死,做东西有余力就研究一些最适合这个需求的技术栈,没有余力就用自己熟悉的东西。
多了解别的技术栈挺开阔眼界的,解决问题也有更多思路。
lesismal
354 天前
@jimages
以前对陈皓不熟悉,他去世了才去看了他的主页,看到那几个抵制资本家之类的观点,觉得他人很好。但偶尔看到他的一些技术观点,我不认同。

比如只喜欢 go 的小伙子不该被技术限制这个故事:
1. 很多老手都有同样的观点,技术只是工具。但一个年轻人在技术积累期间,深挖一个方向是很有必要的,钻研一下精深一些,积累到实例之后再去扩展技能点,能让自己做到博而精,而且多数人经历几年钻研后也基本都会自己体会到技术只是工具,根本不需要年长者们提前来指导。这种指导,更多概率是造成这些年轻人博而不精,都成了 CURD 工具人。所以其实是两个不同阶段的人,年长者的建议初衷是好的、效果可能是差的。我身边就有这种例子,大专肄业的小伙子,刚工作技术很菜,拿着不够生活费的低工资只为求学习转行的机会,然后坚持了几年硬啃 c++、数据库相关的领域,现在是他们公司开发里的大拿,代码能力超过很多他的名校专业硕士同事。他几年前也是在各种技术群里问各种问题,很多老手给他说技术只是工具,幸亏他自己有坚持,没有盲从那些建议。就像罗永浩说的,不是每只鸟来到世上都是为了躲枪子的。
2. 虽然语言只是工具。但不同语言解决问题的能力,确实大不相同。最简单的方法,整体思维,如果学什么语言不重要,那也就意味着随便哪个语言都可以解决所有问题了,然而并不是,所以才会有 go 、rust 的再次横空出世并且大火。
shuimugan
354 天前
带 GC 的语言,不如用 C#;
不带 GC 的语言,不如用 Rust 。

其实坚定什么语言是没有意义的,迟早会有一堆无 GC 的语言基于 AI 做的各种热门语言转译过来的或者原创的生态库。现在各种可以本地部署的 LLM 模型每周都有新进展,还可以结合 LangChain 做私人知识库,丢文档喂给 AI 也不是什么复杂的事情,后面基于 AI 对话的代码开发会越来越多,到时候就是 AI 时代了,根本不会考虑哪个语言写起来高效的问题,因为人写的不会比 AI 快。

我在还没看 Rust 语法的时候让 ChatGPT 写了一个 http proxy ,稍微改一下就跑了起来,无编译优化模式下跑起来内存占用只有 500KB 左右,很惊艳,现在就在用 ChatGPT 把我之前用 Node.js 写的爬虫框架转译到 Rust 。

我平时用的 prompt:
你扮演一个经验丰富的 rust 专家,接下来的问题请以 rust 专家的角度回答,如果涉及到代码输出,则代码要充分利用异步非阻塞特性,并且要注释丰富、多打印日志、容错性好、对外部输入进行充分校验、充分利用 rust 标准库的特性
jitongxi
354 天前
@nnegier 现在都是内置 tomcat 或者 netty ,jre+jar 启动
zsj1029
354 天前
Swift 写后端没毛病,flutter 的 dart 也可以,dart 优化的 nodejs ,真的好用,我也拿 dart 写后端

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/947834

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX