首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么在应用服务器项目中使用不止一种语言?

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

Stack Overflow用户
提问于 2012-05-14 12:19:26
回答 4查看 177关注 0票数 0

经过一段时间的浏览大型项目的源代码,特别是像这样的应用服务器,我已经了解到这些项目不是由一种语言开发的。他们中的许多人使用python作为二次语言。

现在我有四个问题:

  1. 为什么使用不止一种语言?
  2. 为什么蟒蛇经常被用作次要的?
  3. 为什么python不用于开发项目的所有部分,而仍然使用c/c++?
  4. 项目的哪些部分应该用python开发,哪一部分项目使用c/c++?
EN

回答 4

Stack Overflow用户

发布于 2012-05-14 12:33:49

硬层和软层

编程语言设计倾向于在“高级”功能(以速度为代价来提高程序员的生产力)和“低级”功能之间进行权衡,前者需要程序员大量的努力,但却产生非常快的代码。

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

  1. 用一种易于编写和维护的高层次语言编写90%的代码。
  2. 用一种低级语言编写10%的performance-critical代码,这种语言很难编写,但可以进行全面的优化。

c2wiki将此称为HardAndSoftLayers模式:

根据优化的第一条规则,继续用您可以找到的最高级别语言编写大部分代码。 根据优化的第三条规则,当您必须使用分析器时,请使用分析器并找到程序的慢部分。把这些部分拿出来,用较低层次的语言写出来。

供参考的优化规则是:

  1. 优化的第一条规则--不.
  2. 第二个优化规则-不要.目前还没有。
  3. 优化前的Profile
票数 2
EN

Stack Overflow用户

发布于 2012-05-14 12:39:18

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

  1. 他们对它的熟悉
  2. 使用这种语言可以轻松地完成任务。
  3. 语言是否适合特定的任务?

今天,在这种多语言环境中完成的大多数开发都是巨大的解决方案,不同的组件需要进行通信、交换数据或简单地完成由多个步骤组成的工作。在python这样的语言中编写通信/数据解释/任何必要的部分比较容易,然后留下一些底层语言所需要的实时和快速的工作,这些语言直接编译,不需要解释器。

让我们再深入一点。

  1. 开发人员对编程语言的熟悉程度取决于每个开发人员的背景。如果他们有一个自由的选择,显然他们会选择他们最熟悉的语言,除非有来自其他人的游说。通常在管理链中较高。Python不一定是首选语言,python只是一种易于使用和学习的语言,非常适合大多数任务。我们的项目中没有任何python,只有大量的红宝石代码。因为当时主要的开发人员喜欢红宝石,所以我们被困在里面了。
  2. 如果您知道不止一种编程语言,那么您就会知道他们每一种编程语言所做的事情是不同的。例如,创建一个套接字、连接到服务器、读取内容并打印出来只是几行Erlang代码,但是在C++中需要做更多的工作(例如.)因此,同样,如果你有一项任务,你知道如何用一种特定的语言轻松地解决,你将坚持它。人们很懒,除非需要,否则他们不一定会学到新东西。
  3. 显然,您不会用python编写设备驱动程序,用java创建完整的web服务要比用普通C.但是,您仍然需要解决方案中完成硬件关闭的部分。当你有一项任务时,你会仔细测量需求和暗示,并明智地选择你要用的语言。因为它会永远坚持下去。
票数 1
EN

Stack Overflow用户

发布于 2012-05-14 12:33:22

  1. 有时候巨蟒还不够好。 处理计算机视觉、图像或声音处理,计算数据音调并不是python所擅长的。其他语言如C或C++非常擅长这些领域。
  2. 支持您的主要语言是java,您希望将其他语言粘合到一个项目中。我们需要Python。Python是众所周知的胶水语言。您可以使用ctype、SWIG、Jython、ironPython或其他方法绑定多种语言。
  3. 我猜我在1点就回答了这个问题。
  4. 需要速度。选择C或C++。更多地关注生产力,请使用Python。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10583201

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档