c++ - 为什么在应用服务器项目中使用不止一种语言?

标签 c++ python application-server

<分区>

经过一段时间浏览大型项目的源代码,尤其是像 this 这样的应用服务器,我知道这些项目不是用一种语言开发的。他们中的许多人使用 python 作为第二语言。

现在我有四个问题:

  1. 为什么使用不止一种语言?
  2. 为什么python常用于辅助?
  3. 为什么项目的所有部分都没有用python开发,他们还在用c/c++?
  4. 哪些项目应该用python开发,哪些项目应该使用c/c++?

最佳答案

硬层和软层

编程语言设计倾向于在“高级”功能和“低级”功能之间进行权衡,高级功能以牺牲速度为代价提高程序员的工作效率,而“低级”功能需要程序员付出大量努力,但生成的代码速度非常快。

因此有时在一个项目中使用两种语言是有意义的:

  1. 使用易于编写和维护的富有表现力的高级语言编写 90% 的代码。
  2. 使用低级语言编写 10% 的性能关键代码,这种语言更难编写,但可以进行全面优化。

c2wiki 称之为 HardAndSoftLayers图案:

By virtue of the first rule of optimization, go ahead and write most of your code in the highest level language you can find.

By virtue of the third rule of optimization, when you must, use a profiler and find the slow parts of your program. Take those parts, and write them in a lower-level language.

作为引用,rules of optimisation是:

  1. First Rule Of Optimization - Don't.
  2. Second Rule Of Optimization - Don't... yet.
  3. Profile Before Optimizing

关于c++ - 为什么在应用服务器项目中使用不止一种语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10583201/

相关文章:

C++ 源代码中类的部分特化而不是头文件

c++ - 如何将(阿拉伯语)字形与 SDL-TTF v2.20 结合起来?

c++ - 当 const 引用参数绑定(bind)到右值时,它是否保留其 "status"?

c++ - 如何更改 multimap 中的字符串

python 数据库/sql 编程 - 从哪里开始

java - 研究支持Java 8的应用服务器

python - 如何在 Python Django 模板中打印换行符

python - 如何在 Python 中创建一个简单的网络连接?

java - 如何在 Windows 上永久更改 java 的默认语言环境

java-ee-7 - 为什么 Java EE API 本身是由应用服务器制造商实现的?