Python作为系统和应用程序编程语言受欢迎的主要原因是什么?

时间:2010-07-12 10:49:58

标签: python programming-languages prototype

来自企业系统背景(想想Java和Windows) - 我对python作为原型语言的普及感到惊讶,并且我试图指出这个问题的确切原因。示例包括被列为Google使用的四种语言之一。可能的原因包括:

  • 使用swig包装器使用c ++库实现快速系统应用程序原型设计
  • 根据明确定义的语言规范构建
  • 语法级别的创新功能,可实现高水平的表现力
  • 在其他语言(django)之前建立的高度灵活的Web框架

问题是什么使它如此受欢迎/备受推崇,但为了给予一些平衡,我会给出一些可能不受欢迎的原因:

  • 减少工具支持
  • 减少企业支持(即供应商服务台)
  • 性能降低
  • BDFL不关心版本升级中的向后兼容性

或者它在某个特定时间点(大约8年前)是否是最好的,其他语言和框架已经赶上了?

5 个答案:

答案 0 :(得分:19)

  1. 高度表达的语言。人们经常说,“Python就像我的大脑那样工作”。
  2. 动态类型意味着你花费零时间来安抚编译器。
  3. 大型标准库意味着您经常可以轻松获得所需的工具。
  4. 更大的第三方软件包(PIL,Numpy,NLTK,Django)意味着大型问题域通常得到很好的支持。
  5. 开源实现意味着您无需了解供应商帮助台,您可以自己找到答案,并从大量用户社区获取解决方案。

答案 1 :(得分:6)

  
      
  • 使用swig包装器使用c ++库实现快速系统应用程序原型设计
  •   

......什么?

大多数进行Python编程的人都没有进行C ++编程,他们正在进行Python编程。而且他们做得很快,因为他们不需要担心内存管理或模板等问题,或者...... C ++使用的命名空间支持。

答案 2 :(得分:4)

我十二年前开始更换我的Perl脚本 - 新的脚本更短,更易读。因此,可读性和温和的学习曲线是使用它的主要原因。

在版本2之后,语言变得越来越灵活,并且随着我的编程需求,我习惯于在没有注意的情况下进行元编程。 要了解我的意思,请查看SQLAlchemy文档中的示例。

你指的是缺少工具 - 但是我上次看到代码生成器的时候已经......我想10年前,即使在当时这也是一个坏主意,因为你不是需要它。

开发团队非常关注兼容性 - 他们在引入新语法之前会思考多年。只有成熟的模块才会进入标准库,并且已经讨论了python 3多年。在移植设施之上,现在已经暂停 - 至少两年没有该语言的新功能。

至于性能 - 因为我不必考虑哪种方法会抛出哪个异常或者为所有内容提供明确的接口,并且我在语言中嵌入了更多的设计模式..好吧,我可以自由地尝试架构并优化它的意义。大多数情况下,对我来说,它是网络或数据库。

答案 3 :(得分:2)

根据我的经验,我没有注意到更少的工具支持,因为不需要庞大而繁重的工具来从Python中获取我需要的东西。

对于企业支持,有ActiveStateEnthought等分发 {{3}}取决于您的需求。我们在我的日常工作中使用AIX,虽然我们一度使用AS Python,但标准发行版对我们来说非常有用。我们只是不需要供应商支持。

我同意Ned,我不能告诉你多少次反而查看文档,我只是尝试了一些东西,它只是起作用。我不是说一个熟悉的图书馆,而是对Python思考的方式感到满意。这也意味着当我回去查看旧代码时,我似乎更快地了解它。

选择Python而不是我经常使用的其他语言的主要原因是什么?这很有趣,我喜欢花时间在里面。

答案 4 :(得分:0)

我认为灵活性和易用性(可读代码,大量库/包)是最大的吸引力。

关于

  
      
  • 使用swig包装器使用c ++库实现快速系统应用程序原型设计
  •   

我实际上正在研究用于数学和统计分析的Python产品(PyIMSL Studio),专门用于解决这个问题,尽管我们使用ctypes而不是swig。由于各种原因,许多企业在其企业应用程序中使用C / C ++。如果他们想要添加一些分析功能原型,那么在Python中可以比在C中快得多。我们的Python库以1:1的方式包装我们的C数值库,所以一旦完成原型设计,生产开发就可以确信相同的算法是可用的,可以实现相同的结果。当从一个特定领域的语言(如R或MATLAB)转移到C语言时,将原型与生产间隙联系起来可能会比使用像Python这样的非常通用的语言更难。

关于

  
      
  • 根据明确定义的语言规范构建
  •   

您应该查看public comments安全和交换委员会的提议,以使Python成为新的支持安全规则中使用的语言。有些人认为Python应该正是因为除了(多个)参考实现之外没有明确定义的语言规范。我喜欢这种语言,但我不会将语言规范方面视为原因。

最后,我认为有很多Pythonistas希望他们的组织允许使用Python,或者在更大程度上使用它。从我所看到的,Python首先潜入了一般的IT胶水项目,并从那里开始以无数其他方式使用。

相关问题