想写个高性能版 Nextcloud 后端,用 Rust 还是 Java 好?

2021-09-16 00:22:47 +08:00
 rv54ntjwfm3ug8

不考虑 Go,非常不喜欢 Go 这个语言。 Rust 部署方便,社区支持好,但貌似还不是成熟,很多包连 1.0 都没发出来。 Java 目前还是后端第一语言,比 Rust 成熟不少,但部署不是很方便(虽然打 Docker 镜像都差不多),资源占用也比 Rust 高。

7656 次点击
所在节点    Java
56 条回复
ipwx
2021-09-16 00:23:27 +08:00
用 Java 你就很难部署到比如低内存的 Nas 上了。。。
agagega
2021-09-16 00:33:53 +08:00
自己写着玩的话就 Rust 呗,有时候踩坑也是种乐趣。不过听说 Rust 的 async/await 这块还没定稿?不应该哇。
wangxn
2021-09-16 01:04:42 +08:00
Rust 并不适合来做后端吧,它的优势在后端开发上几乎没有任何应用场景。用 Rust 写后端大致等同于用 C/C++ 写后端,你可以想象这个流行度。
现在 Rust 被用得最多的地方是重写各种命令行工具,都需要大量时间来慢慢磨细节、优化性能。
基本上动态语言凭借专门优化了的 IO 处理和 JIT 在评测上就能打平原生语言,实际应用不好说。
6IbA2bj5ip3tK49j
2021-09-16 01:06:29 +08:00
你排除了最合适的答案……
anyxchachapoly
2021-09-16 01:24:29 +08:00
这帖子让我产生难得一见的好奇心,看了下楼主过往发帖

1. 楼主 59 天前发布的『第一次用 go 写爬虫那篇』,包含他人回覆概览了下,恍然大悟,原来是非常多基础不懂所以不喜欢。

2. Java...后端第一,比 Rust 成熟不少,资源占用比 Rust 高,连个基本的 engineering 选择 tech stack 时所需要拿捏的平衡点到底是哪些都不理解。

加油,我非常看好楼主写出一个所谓高性能的 nextcloud 『后端』
xupefei
2021-09-16 01:45:17 +08:00
楼主一个人搞?这工程量挺大的啊。
owncloud 有一个团队在用 go 重写服务器端,楼主可以加入一下
icy37785
2021-09-16 02:00:56 +08:00
都发在 java 分区了那肯定就是已经决定 java 了吧。
有一说一 go 是最合适的。
Mohanson
2021-09-16 02:08:34 +08:00
对裹脚布过敏
Hanggi
2021-09-16 06:48:25 +08:00
一个成熟的开发者不会用非常不喜欢一个语言这种无厘头的理由做技术选型。
redr41n
2021-09-16 09:15:26 +08:00
刚想来回答 golang,结果看到楼主第一句话
quan01994
2021-09-16 09:20:56 +08:00
为什么不用 dotnet 呢 。。
MeatIndustry
2021-09-16 09:35:48 +08:00
为什么不考虑 Kotlin 呢,都考虑到 Java 了
seven123
2021-09-16 09:37:52 +08:00
现在这个情况,首选就是 golang,又要占用小,性能还要不错,还得方便部署
2i2Re2PLMaDnghL
2021-09-16 09:41:18 +08:00
我不知道你怎么想的。
nc 21 已经有 rust 写的高性能文件后端了。
oc 则是挑选了 go 的样子
看来是 PHP 积重难返
# docker 不适合运行时带虚拟机语言
a22271001
2021-09-16 09:42:14 +08:00
java 不便于在树莓派 3 之类的小内存设备上部署,用 Go 挺合适的
顺便吐槽一句 nextcloud 是真的卡
witcherhope
2021-09-16 09:50:10 +08:00
GraalVM 试试,可以减少 Java 内存占用
chiuan
2021-09-16 09:59:19 +08:00
golang 最舒服最强目前。
x940727
2021-09-16 10:01:16 +08:00
GraalVM 试试呗,Native 无论是启动速度还是内存占用已经好很多了,优化优化估计能和 Go 掰掰手腕。
byte10
2021-09-16 10:10:01 +08:00
@a22271001 nextcloud 为啥会那么卡,我也是郁闷。这么简单的一个网盘不至于会卡吧。。
@icy37785 go 确实是比较合适,小服务器也可以运行起来,要知道很多小玩具都是 1-2g 内存的。

go 语言目前比较合适的。话说 nodejs 能搞吗,python 呢?按道理这是一个非常简单的服务啊,业务也简单。
xieren58
2021-09-16 10:18:09 +08:00
绝对 rust

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

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

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

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

© 2021 V2EX