我用5种语言构建了同一家Web服务器。这就是我发现的
#python #node #rust #cpp

我在Rust(Actix Web),C ++(Crow),Python(Django)和Nodejs(Express)中创建了相同的文件共享服务器。结果可能会让您感到惊讶。我应该注意,我来自nodejs(express)环境,我会偏向于表达框架。


语言和框架

1.锈(Actix Web)

Rust是一种低级所有有目的的语言,它具有大量功能,实际上有许多功能,实际上只有约10%的编码人员知道Rust。我选择了Actix Web,尽管我本可以选择Rocket.rs或Warp,但是根据我阅读的内容,它们之间没有很大的区别。 Actix关注的灵感来自expressjs api。

2. C ++(Crowâ)

c ++一种45岁的低水平面向对象的编程语言,该语言潜伏在当今几乎所有电子设备中,但只有22.55%的程序员都知道。对于构建此项目,没有多少选择可供选择,实际上我有2个选项:自己设计图书馆或使用Crow。我选择了乌鸦,但是一个棘手的事情是,乌鸦的乌鸦和维护的乌鸦是2个版本,请小心安装维护的一个。乌鸦实际上是一个微型网络框架,它只是您导入的一个文件。我还将Nlohmann JSON库用于JSON编码,因为它具有更多功能。

3. Python(Djangoâ)

我们都知道蛇。我的母语和可能是您的,几乎50%的编码人员都知道Python,这是一种易于学习的高级和缓慢的语言。我本可以用烧瓶作为替代方案,但Django首先想到了。 Django提供的功能多于烧瓶,从技术上讲,烧瓶是一个微型网络框架,意为轻量级。

4. JavaScript(Express.js)

javaScript是我最喜欢的语言,就像一个爪哇的孩子,爪哇就像C ++的孩子一样,因此JavaScript从技术上讲是C ++的孙子。 JavaScript主要为Web和本机应用程序提供动力。这是一种高级面向对象的语言,约有65%的采访程序员知道它并使其成为2022年和2023年最受欢迎的语言。我认为它是如此受欢迎,因为它是网站唯一的语言可以理解,如果您首先学会用JavaScript赔率来编码前端,您也会坚持使用它。


结果

较深的颜色是我认为不算作用过的线的其他线条,为什么?对于C ++,其他行是因为乌鸦没有本地支持“正确”的文件上传,因此我创建了自己的迷你/微型库,该库可能非常缓慢且无法处理上传。它模拟具有相似函数的Express-fileupload库。它只是一个名为crow-fileupload.hâ的单个58线标头文件。您可以在末尾使用服务器的所有其他文件中找到GitHub存储库中的标题文件。
对于Python,您需要进行一些配置以允许静态文件等。我估计,添加适当的配置不超过10行。
因此结果如下:

  1. python django:35 + 10 = 45行
  2. Nodejs Express:53行
  3. Rust Actix网站:89行
  4. C ++乌鸦:124+ 58 = 182行!

LINES USED


这是令人兴奋的,矛盾的和逻辑上的■让我解释一下我认为这张图的全部内容。首先,Actix Web,Crow和Django的表现相同,因此Express的平均时间范围应该在40毫秒之间,但事实并非如此。人们可能犯的一个错误是,此图表示语言的速度,但是该图表示框架的速度。特别是服务静态文件,而不是进行任何服务器端处理。 Rust和C ++比JS,尤其是Python更快,但是框架不遵循该模式,它们大多数时候都遵循流行的模式。如果您需要进行一些疯狂的大型计算或处理巨大的流量,则可以考虑选择更快的语言。
这是结果:

RESPONSE SPEED


我的消息来源

2022年大多数使用/流行的编程语言的统计来源:abiaoqianâ。
该项目的GitHub存储库:https://github.com/yaKsirhC/5-lang-server/tree/master