求推荐一个技术选型(编程语言)

2021-07-02 16:28:26 +08:00
 zxCoder

我需要

我知道基本上任何语言都能实现这个功能,只是想问一下有没有相对比较好的,写起来方便一点

我自己的考虑:

其他的不太熟悉了,大佬们有什么建议吗

2157 次点击
所在节点    问与答
22 条回复
ipwx
2021-07-02 16:30:02 +08:00
python 提供 http 接口是所有语言里面最简单的了基本上。

以下挑一个:

fastapi
flask
ysc3839
2021-07-02 16:51:13 +08:00
golang 吧,因为默认就是编译成单个可执行文件,也有自带的 http server library 。
ysc3839
2021-07-02 16:55:06 +08:00
不然的话就 C++ 或 Rust,C++ 也有一些好用 http server library 。
Jirajine
2021-07-02 17:11:53 +08:00
py 或者 deno
luooooob
2021-07-02 19:45:02 +08:00
c 写的服务直接写个 nginx module 就好了,简单的东西就不要折腾什么跨语言调用了。
Cbdy
2021-07-02 20:52:12 +08:00
当然是选 Node.js 啦
GeruzoniAnsasu
2021-07-02 20:56:16 +08:00
> 调用 c 语言写的动态库
> 希望最后的程序也能编译成单个可执行文件
> 简单的 http 库


没错就是 golang,而且基本没什么会绕远路的可能性,动态库把头文件拷过来.go 里加几行注释就能链接上(前提是不用 dlsolve )
lujjjh
2021-07-02 20:59:19 +08:00
推荐用 Go 。Go 调 C 非常方便,写 HTTP server 也非常方便,也能生成单独的可执行文件。

其次是用 C,如果 HTTP 接口没有高并发需求,写个 CGI 还是很容易的,外面套一个 nginx 或者其他 web server 。git 的 HTTP 接口就是这么玩的,可以参考: https://github.com/git/git/blob/670b81a890388c60b7032a4f5b879f2ece8c4558/http-backend.c#L739
3dwelcome
2021-07-02 21:00:08 +08:00
"不过提供 http 接口有点头疼,昨天发帖求了几个,看起来还是挺难写的"

用 apache cgi 真心简单。

三个步骤

1 写一个 hello world 控制台 C 程序,用 gcc 编译成 elf 文件。
2 改后缀为.cgi
3 放到服务器上的 cgi-bin 目录下,用当成正常的 http get 请求访问,apache 会自动把你的 C 代码输出,转换成 web 的返回格式。
3dwelcome
2021-07-02 21:14:33 +08:00
从头写 web 服务不难,http1.1 协议相对还是很容易的。

但有两点问题,一是现在网络基本都是 https,套一层 SSL 中间层是比较麻烦事的,一般全一点的安全库都不太小,还要加载服务器域名证书之类的。

还有一点就是对于服务器监控的访问,最好的协议不是 http get/post 短连接,而是 websocket 这种长连接,能实时看到服务器推送的 CPU/内存 /进程运行状态的东西。
BiteTheDust
2021-07-02 22:52:56 +08:00
c 语言其实轻量的 http 实现也很简单 加俩头文件就行
chenqh
2021-07-02 23:24:12 +08:00
要单个可执行文件,估计只能 golang 了吧
hronro
2021-07-02 23:40:24 +08:00
Rust 吧,无痛调用 C ( C 也可以无痛调用 Rust ),其他几个条件也能满足。说 Go 调用 C 非常方便的还是省省吧。

上个 Web 框架比如 Rocket 之类的,实现起来应该很简单。
agagega
2021-07-03 00:02:53 +08:00
我说一个别人不敢说的,Swift (逃

静态语言,语法舒适(比 Go 特性多,比 Rust 好上手),没有 GC,可以编译到单个可执行文件,性能还行,而且和 C 混编不麻烦。缺点是对 Windows 兼容比较差
0o0O0o0O0o
2021-07-03 00:06:16 +08:00
zig
lujjjh
2021-07-03 00:14:11 +08:00
@hronro 没必要踩一捧一,cgo 调 C 跟 Rust 的 FFI 调 C 的体验区别不大。

我理解很多人觉得 Rust 很香,但是考虑到 Rust 的学习曲线,推荐给一个零基础、想要快速实现功能的人是不理智的。对 C 比较熟悉的话,直接用 C 写或者学跟 C 很像的 Go 是最快的。
voiyy
2021-07-03 08:56:20 +08:00
nim 、vala
signalyc
2021-07-03 10:04:37 +08:00
PHP
zhuzongxing
2021-07-03 10:29:12 +08:00
看你自己主力语言啊。。。
learningman
2021-07-03 10:50:46 +08:00
go,py 不好编译成单个文件

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

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

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

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

© 2021 V2EX