2012-05-14 43 views
0

经过一段时间浏览大项目的源代码,特别是像this这样的应用程序服务器,我明白这些项目并不是通过一种语言开发的。他们中的许多人使用python作为辅助语言。为什么在应用程序服务器项目中使用多种语言?

现在我有四个问题:

  1. 为什么使用一种以上的语言吗?
  2. 为什么python经常用于中学?
  3. 为什么python不用于开发项目的所有部分,他们仍然在使用c/C++?
  4. 哪些项目的部分应该用python开发,哪些部分项目使用c/C++?

回答

0
  1. 有时python不够好。

    处理计算机视觉,图像或声音处理,计算数据的音调并不是真正的Python擅长什么。像C或C++这样的其他语言在这些领域非常擅长。

  2. 支持您的主要语言是java,并且您想将其他语言粘合到一个项目中。那就是我们需要Python的地方。 Python是众所周知的胶水语言。您可以使用ctype,SWIG,Jython,ironPython或其他方法来绑定多种语言。

  3. 想我在1

  4. 极品飞车回答了这个问题。去C或C++。更多关注生产力,请使用Python。

2

软硬层

编程语言设计往往以“高层次”的特点,这在速度为代价提高程序员的工作效率,而“低层次”的特点,这需要之间进行权衡很多程序员的努力,但产生非常快的代码。

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

  1. 写这是很容易编写和维护的表现,高级语言90%的代码。
  2. 编写的10%性能至关重要代码采用较难编写的低级语言,但允许进行全面优化。

c2wiki称此为HardAndSoftLayers模式:

凭借优化的第一条规则的,继续前进,编写大部分代码中,你可以找到的最高级别的语言。

凭借优化的第三条规则,必要时使用分析器并找到程序的慢速部分。拿这些部分,用低级语言写下来。

作为参考,rules of optimisation是:

  1. 首先规则优化中 - 不要。
  2. 第二优化规则 - 不要 ... 还没有。
  3. 档案之前优化
1

规则很简单:基于开发人员选择的语言(S)以下规定 - 或多或少:

  1. 他们与它熟悉
  2. 您可以轻松完成使用该语言的任务
  3. 如何适合lan瓜哥具体任务

今天,大多数在这个语言环境所做的发展是巨大的解决方案,其中不同的组件需要沟通,交换数据或简单地做它由多于一个步骤的工作。用Python这样的语言编写通信/数据解释/任何包装必要部分比较容易,然后用一些较低级别的语言完成实时和快速的需要工作,而这些语言直接编译而不需要口译员。

让我们深入一点。

  1. 开发人员对编程语言的熟悉程度取决于每个开发人员的背景。如果他们得到自由选择,显然他们会选择他们最熟悉的语言,除非有别人的游说......管理链中通常较高。 Python不一定是选择的语言,python只是一个易于使用和学习的语言,非常适合大多数任务。我们的项目中没有python,只有大量的ruby代码。因为当时主要的开发者喜欢红宝石,所以我们一直坚持下去。

  2. 如果你知道一种以上的编程语言,你知道他们每个人都以不同的方式做同样的事情。例如,创建套接字,连接到服务器,读取东西并打印出来只是Erlang代码的几行代码,但在C++中执行它需要很多工作(例如...)你有一项任务,你知道如何用你要坚持的特定语言轻松解决。人们很懒惰,除非需要,否则他们不一定会学习新东西。

  3. 很显然你不打算在python中编写设备驱动程序,使用java创建完整的web服务要比使用普通的C更容易,但你仍然需要解决方案的一部分硬件密切的东西。当你有一项任务时,你要仔细衡量要求和含义,并明智地选择语言,因为它会永久坚持下去。

0

没有提及您发送的项目,我会给你我为什么在我工作的公司,至于为什么我们在我们的项目中使用Python经常50C。

首先,我们没有涉及到软件解决方案本身的python代码。所有的python代码都涉及协助开发,机器设置,用于测试的通用框架工具部署以及大量的代码生成。

  1. 为什么使用多种语言?

当我们查看所有企业级解决方案或大规模实施时,我们所从事的项目只有一种语言。

这主要是由于我们的层级是使用各种语言编写的,这些语言分别在各个级别提供最佳性能和可用性。例如,用于快速核心后端服务的C++和用于快速开发的C#.NET,并为前端提供良好的用户界面。

  1. 为什么python常用于中学?

就个人而言,除了对我的原因如上所述,我们不使用Python的“常继发”。我们使用C++/C#作为最常见的对,但取决于平台,可能是其他对。

  1. 为什么Python是不是用来开发项目的所有部分,他们仍然是使用C/C++?

Python非常适合快速解决方案和做你希望你的shell可以做的事情。这在很大程度上涉及文件管理等。

C++可能是编译速度最快的语言,为核心操作和大量使用的操作提供最佳使用。

基于此,以及市场在C++方面拥有更多知识和经验(出于许多原因)的事实,C++是更受欢迎的选择。

  1. 和项目的部分应使用Python开发和项目的一部分是用C/C++?

我相信我可能已经解决了上述问题。

-

我希望我能帮上忙,请记住这只是我个人的意见,决不意味着这被视为事实。

相关问题