各位大佬,请教一下,准备在 3568 板子上开发部署一套 web 服务,前端用 nginx+h5(前端不是我写),后端开发 web 服务提供接口,c++,go,rust 选哪个开发比较好。
目前板子上有一套在跑的后台应用程序是用 c++写的,现在要加 web 服务功能,不想加到原来的应用程序里面,并且也想尝试学习一下其他的语言,看了一下 go 和 rust 的简单介绍,感觉上手应该不难,但是想了解一下上手哪个更合适。如果有能够方便开发 http server 和 http client 的成熟的框架和库最好了。
这套程序也就我一个人开发维护,不需要考虑团队协作。。。
1
zsj1029 37 天前
go 更简单,虽然 rust 占用更少
go 10mb vs rush 2MB 出活效率建议 go |
2
helone 37 天前
如果就简单 crud 的话可以考虑 rust ,但是上手可能会复杂点,不过现在有 gpt 这种的有啥不会问就是了,go 的话就更简单点,上手更快
|
3
xjhou00007 OP |
4
zsj1029 37 天前
@xjhou00007 go 的编译比 rust 简单多了,编译无脑一句 cgo=0 好像是,根本不用考虑兼容性
rust 跟 c 差不多,很多工具链,时间很长 |
5
zsj1029 37 天前
@xjhou00007 支持跨平台编译,总之很简答,win 上打包 arm x86 都可以
|
6
Donahue 37 天前
go 。rust 复杂得不行,设计目标也不是 web 服务
|
7
Donahue 37 天前
@xjhou00007 go 部署/交叉编译很简单 没坑
|
8
xjhou00007 OP |
9
xjhou00007 OP 不论这个需求功能开发的话,作为一个 c++后台开发,rust 有没有学习的必要,rust 和 go 谁的泛用性更好,未来更用的上呢
|
10
xjhou00007 OP 好像不能编辑主题哈
|
11
helone 37 天前
如果是 c++ 开发学习 rust 很有必要,c++写的东西 rust 能完全替代甚至更好,go 的话完全兴趣爱好,更偏 web 方面,而且有 gc 存在,偏底层的东西肯定做不了
|
12
bluearc 37 天前
@xjhou00007 #9 rust 肯定更泛用,但就你描述的需求我觉得 go 更好些;
|
13
adoal 37 天前
3568 跟零几到一几年的 X86 可以打个来回,不用特别考虑“嵌入式”,性能足够,技术选型时就当普通的 Linux 小主机好了。
|
14
victorc 37 天前
看你内存大小,如果只有几十 M ,当然用 rust
用大模型帮忙写,分分钟搞定 |
15
IvanLi127 37 天前
我感觉,只是感觉,rust 更适合嵌入式,也更适合 C++ 选手。 如果项目不复杂的话,rust 已经能轻松胜任,复杂的话我就不知道啥情况了。
|
16
mightybruce 37 天前 1
嵌入式 web 基本都是 C, C++ , 这种不是多的很。何必找一些不成熟的项目。
这种项目首先要考虑的就是资源占用,占用大的一概不考虑了。 https://github.com/civetweb/civetweb |
17
yplam 37 天前 via Android
要考虑跟 c++的交互方式,如果要用到 cgo 的话建议还是 rust 或者直接 c++
|
18
jqknono 37 天前
这是嵌入式啊, web 技术栈都是其次, 这也无脑推 go 吗, 常见的是 c/c++. 新的一点大家推 rust, 我不了解这个.
嵌入式一般都是启动时提前规划好内存怎么用的. 如果这个板子根本没什么定制启动定制软硬件, 那就是一个普通的 linux 了, 通用 linux 开发后台那才是优选 go |
19
starlion 37 天前
只是 http server ,http client 可以考虑下 Go ,Go 语言都自带的。另外 Go 的 web 应用框架 Gin 、Fiber 也有这些功能。
不过嵌入式,是不是内存比较小 (2G ?),没搞过嵌入式,还是看你的服务器配置,业务上功能需求,业务量,开发效率等综合考虑 |
20
815979670 37 天前
建议选 go 只要避免 cgo 交叉编译没什么坑
|
22
adoal 37 天前
@starlion 说到 2G 内存太小……我在一个 S905D 、2G 内存、8G EMMC 的盒子里(猜的没错就是 N1 )装了一个 alpine 再用 libvirt+qemu 开起来三个虚拟机:一个 Debian 两个 OpenWRT……
|
23
ca2oh4 36 天前
c++ 写 web 已经非常方便了,不如沿用之前的技术栈.
|
24
wupeaking 36 天前
我也买了个 RK3566 玩了玩, 感觉交叉编译的话 C++和 rust 更方便一些,尤其是如果还会调用 C 代码的话。写 web 后端还是 Go 比较擅长。纯 Go 代码的 web 框架应该都能直接迁移到嵌入式 Linux 上的。如果涉及到 CGO 的话,感觉会有很多坑了。尤其是那些 glic 版本折磨人的很。这个时候 rust 真的很好用。
|
25
janus77 36 天前
先不说什么设备,做 web 项目,偏业务的话,这三者明显是 go 更好啊,不过也只是三个低分党里面找相对较高的那个了,三个语言写业务都不太舒服
|
26
xjhou00007 OP |
27
xjhou00007 OP @jqknono 没有到像单片机那样每段内存都划分好,就是 arm linux 系统,系统启动后再自动运行程序
|
28
Umenezumi 36 天前
web 肯定是 GO 啦,编译简单,上手轻松,GPT 无脑一把梭,时间充裕爱折腾 rust 也可以,不过为了出活儿我肯定选 GO
|
29
InkStone 36 天前
具体这个场景不好说,但 C++研发还是有必要学一下 Rust 的。哪怕不写,也能学习一下 Rust 怎么处理 C++中的坑,很多处理方式可以反哺到 C++开发中。
|
30
mightybruce 36 天前
看来你这个内存比较富裕,golang 等一堆语言也是可以用的。
直接做嵌入式 web 服务的话,c 推荐 mongoose, civetweb 。 go 标准库就可以搞,也不需要借助其他。 |
31
mightybruce 36 天前
|
32
yifeia 36 天前
web 服务直接 go 一把梭哈,写一个项目你就会用 go 了
|
33
rlds 36 天前
那必须用 go
|
34
chenxuuu 36 天前
如果本身就已经有一大堆 C++代码了,要在工程里加个新功能,用 C++
如果是写个和现有项目不太强耦合的小模块,熟悉 C++开发,喜欢对内存的掌控感,可以考虑用 Rust 如果不熟悉 C++,技术栈偏向应用,不熟悉也不想了解硬件底层,网络环境始终支持科学上网,可以试试 Go |
35
vicalloy 36 天前
3568 外加 4G 内存,性能已经很强了。
对于 web 服务,一般情况下即使你用 python 都不会有性能问题。 |
36
yangliudi123 36 天前 via iPhone
优先 c++含 c ,嵌入式主流还是 c 和 c++
|
37
XinPingQiHe 36 天前
虽然 go 相对简单些,但是你这个应用,前面的也是 c++写的,自己一个人做,建议大胆尝试 rust 。
|