C++ 为什么在应用服务器项目中使用多种语言?

C++ 为什么在应用服务器项目中使用多种语言?,c++,python,application-server,C++,Python,Application Server,浏览了一段时间大型项目的源代码,尤其是应用服务器,我了解到这些项目不是用一种语言开发的。他们中的许多人正在使用python作为第二语言 现在我有四个问题: 为什么使用一种以上的语言 为什么python经常被用于辅助功能 为什么python没有被用于开发项目的所有部分,而它们仍然使用c/c++ 项目的哪些部分应该用python开发,哪些部分使用c/c++ 有时python还不够好 在处理计算机视觉、图像或声音处理时,计算数据的音调并不是python真正擅长的。其他语言如C或C++在这些领域中的应用

浏览了一段时间大型项目的源代码,尤其是应用服务器,我了解到这些项目不是用一种语言开发的。他们中的许多人正在使用python作为第二语言

现在我有四个问题:

  • 为什么使用一种以上的语言
  • 为什么python经常被用于辅助功能
  • 为什么python没有被用于开发项目的所有部分,而它们仍然使用c/c++
  • 项目的哪些部分应该用python开发,哪些部分使用c/c++
  • 有时python还不够好

    在处理计算机视觉、图像或声音处理时,计算数据的音调并不是python真正擅长的。其他语言如C或C++在这些领域中的应用非常好。p>
  • 支持您的主要语言是java,并且您希望将其他语言粘合到一个项目中。这就是我们需要Python的地方。Python是众所周知的粘合语言。您可以使用ctype、SWIG、Jython、ironPython或其他方法绑定多种语言

  • 我想我在1点回答了这个问题

  • 需要速度。转到C或C++。更多地关注生产率,使用Python

  • 有时python还不够好

    在处理计算机视觉、图像或声音处理时,计算数据的音调并不是python真正擅长的。其他语言如C或C++在这些领域中的应用非常好。p>
  • 支持您的主要语言是java,并且您希望将其他语言粘合到一个项目中。这就是我们需要Python的地方。Python是众所周知的粘合语言。您可以使用ctype、SWIG、Jython、ironPython或其他方法绑定多种语言

  • 我想我在1点回答了这个问题

  • 需要速度。转到C或C++。更多地关注生产率,使用Python

  • 软硬层 编程语言设计倾向于在“高级”功能和“低级”功能之间进行权衡,前者以速度为代价提高程序员的生产率,后者需要程序员付出大量努力,但生成的代码非常快

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

  • 用一种易于编写和维护的表达能力强的高级语言编写90%的代码
  • 用较难编写的低级语言编写10%的性能关键代码,但允许全面优化
  • c2wiki称之为模式:

    根据优化的第一条规则,继续用您能找到的最高级别语言编写大部分代码

    根据优化的第三条规则,当您必须时,使用探查器并查找程序中缓慢的部分。把这些部分用较低级的语言写下来

    供参考的资料包括:

  • 优化的第一条规则-不要。
  • 优化的第二条规则-不要。。。然而
  • 优化前的配置文件
  • 软硬层 编程语言设计倾向于在“高级”功能和“低级”功能之间进行权衡,前者以速度为代价提高程序员的生产率,后者需要程序员付出大量努力,但生成的代码非常快

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

  • 用一种易于编写和维护的表达能力强的高级语言编写90%的代码
  • 用较难编写的低级语言编写10%的性能关键代码,但允许全面优化
  • c2wiki称之为模式:

    根据优化的第一条规则,继续用您能找到的最高级别语言编写大部分代码

    根据优化的第三条规则,当您必须时,使用探查器并查找程序中缓慢的部分。把这些部分用较低级的语言写下来

    供参考的资料包括:

  • 优化的第一条规则-不要。
  • 优化的第二条规则-不要。。。然而
  • 优化前的配置文件

  • 规则非常简单:开发人员或多或少地根据以下标准选择语言:

  • 他们对它的熟悉程度
  • 使用这种语言完成任务有多容易
  • 语言是否适合特定任务
  • 今天,在这种多语言环境中进行的大多数开发都是巨大的解决方案,其中不同的组件需要通信、交换数据或只是执行由多个步骤组成的工作。用诸如python之类的语言编写通信/数据解释/任何必要的包装部分,然后将实时性和速度所需的工作交给一些较低级别的语言来完成,这些语言直接编译,而不需要解释器,这是比较容易的

    让我们再深入一点

  • 开发人员对编程语言的熟悉程度取决于每个开发人员的背景。如果让他们自由选择,显然他们会选择他们最懂的语言,除非有其他人的游说。。。通常在管理链中处于较高的位置。Python不一定是首选语言,Python只是一种易于使用和学习的语言,非常适合大多数任务。我们的项目中没有python,只有成吨的ruby代码。因为当时主要的开发人员喜欢ruby,所以我们一直坚持使用它

  • 如果你知道不止一种编程语言,你就会知道每种语言都在做不同的事情。例如,创建套接字、连接到服务器、读取内容并将其打印出来只需要几行Erlang代码,但需要做的事情要多得多