热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

企业站用python做好吗_Python是构建企业项目的一个好选择吗?

几个星期前,我博客的一个粉丝Morteza向我咨询了以下内容:我现在主要使用Python开发项目,但我担心Python不是企业开发项目的一

几个星期前,我博客的一个粉丝Morteza向我咨询了以下内容: 我现在主要使用Python开发项目,但我担心Python不是企业开发项目的一个好选择。在许多情况下,我遇到过Python性能不足的情况,比如线程生成等等,如你所知,GIL当前只支持一个线程。

有些朋友告诉我可以尝试使用Java,C ++甚至Go来代替企业项目而不是Python。我看到许多需要Python的工作版块仅用于测试,QA或一些小项目。我觉得Python只是用来展示我经验的小枪,我必须选择另一种语言。

由于您在Python语言认知方面许多主题都是高级和专业的,特别是在Python中,我需要您的建议。Python对企业系统来说是否足够好?或者我应该选择一种填补Python中存在的空白的替代语言?

如果你看我博客很长一段时间了,你应该知道我已经做了十多年的Python,甚至写了两本关于它的书。因此,虽然我显然有偏见,在写回复之前,我还想退后一步,并向您保证,亲爱的读者,我在过去20年中使用了许多其他编程语言:Perl,C,PHP ,Lua,Lisp,Java等。我用其中一些构建了很小的大型项目,我认为Lisp是最好的编程语言。因此,我觉得我并不过分偏袒。

要回答Morteza,我会说你首先需要承认一种语言本身并不缓慢或快速。英语不比法语快; 然而,一些法国人说话的速度比英国人快。

那么,是的,CPython,Python编程语言的主要实现有一些局限性:Morteza所说的GIL(全局解释器锁)是最重要的并行性限制器。该语言的其余部分正在定期进行优化,您可以按照每个Python版本中的工作来查看它的发展方向。CPython在每个次要版本上变得更快。

另一方面,不要认为Go或Java是奇迹:它们都有其局限性。例如,您可以阅读Mozilla的Ben Bangert撰写的这篇引人注目的演示文稿,名为从Python再返回到Go。Ben解释了他在切换到Go时遇到的一些限制。

我相信您也可以通过Java虚拟机找到问题和限制。

在Scaling Python中,我写了一些关于GIL的章节,以及如何规避它的局限性。如果您编写广泛可扩展的应用程序,GIL并不是一件大事,无论如何,您需要将负载分散到多个服务器上,而不仅仅是在多个处理器上。

因此,Python不仅适用于QA应用程序,就像Java只适用于浏览器小应用程序一样,Go也适用于devops或其他类似的应用程序。

它们都是不同的语言,从不同角度处理问题。根据您的思维方式和您要实施的解决方案,有些人可能看起来比其他人更好。他们的虚拟机或编译器非常棒,但也有其需要注意的局限性和缺点,因此可以避免陷入大陷阱。

当然,另一种方法是通过下层并使用较低级别的语言(例如C或C ++)来消除所有这些问题。这肯定会消除这些限制:没有Python GIL,没有Go资源泄漏,没有JVM启动缓慢等等。但是,它会增加大量额外的工作和你将不得不解决的问题 - 已经解决的难题通过更高级的语言。这是一个权衡问题:你想在10年内编写一个速度极快的程序,还是想在1年内编写一个速度相当快的程序?

最后,选择语言不仅是绩效问题,也是支持,社区和生态系统的关注点。选择经过实战考验的语言如Python和Java是可靠性和可信赖性的保证,而选择像Rust这样的年轻语言可能是一个令人兴奋的旅程。在选择语言之前,做一些“现实检查”总是值得考虑。如果您想编写一个使用例如AMQP和HTTP/2的应用程序,您确定有哪些库提供这些功能并且广泛使用和支持?或者你准备好花时间自己维护它们吗?

同样,Python在这里非常可靠。考虑到它的广泛实践,有大量慷慨的库用于您可能需要的一切。社区规模庞大,生态系统蓬勃发展。

最后,我认为是的,Python是任何企业项目的绝佳选择,考虑到它所依赖的现有项目的数量,我不是唯一一个这样思考的人。

请在下面的评论部分分享您的经验 - 甚至是项目!

本文由 空心菜 创作,采用 知识共享署名4.0 国际许可协议进行许可

本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名

最后编辑时间为: Aug 27, 2018 at 02:22 pm



推荐阅读
  • 优化后的标题:PHP分布式高并发秒杀系统设计与实现
    PHPSeckill是一个基于PHP、Lua和Redis构建的高效分布式秒杀系统。该项目利用php_apcu扩展优化性能,实现了高并发环境下的秒杀功能。系统设计充分考虑了分布式架构的可扩展性和稳定性,适用于大规模用户同时访问的场景。项目代码已开源,可在Gitee平台上获取。 ... [详细]
  • 利用Python与Android进行高效移动应用开发
    通过结合Python和Android,可以实现高效的移动应用开发。首先,需要安装Scripting Layer for Android (SL4A),这是一个开源项目,旨在为Android系统提供脚本语言支持。SL4A不仅简化了开发流程,还允许开发者使用Python等高级语言编写脚本,从而提高开发效率和代码可维护性。此外,SL4A还支持多种其他脚本语言,进一步扩展了其应用范围。通过这种方式,开发者可以快速构建功能丰富的移动应用,同时保持较高的灵活性和可扩展性。 ... [详细]
  • 本文介绍了 Go 语言中的高性能、可扩展、轻量级 Web 框架 Echo。Echo 框架简单易用,仅需几行代码即可启动一个高性能 HTTP 服务。 ... [详细]
  • 掌握PHP框架开发与应用的核心知识点:构建高效PHP框架所需的技术与能力综述
    掌握PHP框架开发与应用的核心知识点对于构建高效PHP框架至关重要。本文综述了开发PHP框架所需的关键技术和能力,包括但不限于对PHP语言的深入理解、设计模式的应用、数据库操作、安全性措施以及性能优化等方面。对于初学者而言,熟悉主流框架如Laravel、Symfony等的实际应用场景,有助于更好地理解和掌握自定义框架开发的精髓。 ... [详细]
  • 【线段树】  本质是二叉树,每个节点表示一个区间[L,R],设m(R-L+1)2(该处结果向下取整)左孩子区间为[L,m],右孩子区间为[m ... [详细]
  • Cookie学习小结
    Cookie学习小结 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 单片微机原理P3:80C51外部拓展系统
      外部拓展其实是个相对来说很好玩的章节,可以真正开始用单片机写程序了,比较重要的是外部存储器拓展,81C55拓展,矩阵键盘,动态显示,DAC和ADC。0.IO接口电路概念与存 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 本文深入解析了通过JDBC实现ActiveMQ消息持久化的机制。JDBC能够将消息可靠地存储在多种关系型数据库中,如MySQL、SQL Server、Oracle和DB2等。采用JDBC持久化方式时,数据库会自动生成三个关键表:`activemq_msgs`、`activemq_lock`和`activemq_ACKS`,分别用于存储消息数据、锁定信息和确认状态。这种机制不仅提高了消息的可靠性,还增强了系统的可扩展性和容错能力。 ... [详细]
  • 尽管我们尽最大努力,任何软件开发过程中都难免会出现缺陷。为了更有效地提升对支持部门的协助与支撑,本文探讨了多种策略和最佳实践,旨在通过改进沟通、增强培训和支持流程来减少这些缺陷的影响,并提高整体服务质量和客户满意度。 ... [详细]
  • 在尝试对从复杂 XSD 生成的类进行序列化时,遇到了 `NullReferenceException` 错误。尽管已经花费了数小时进行调试和搜索相关资料,但仍然无法找到问题的根源。希望社区能够提供一些指导和建议,帮助解决这一难题。 ... [详细]
  • Python作为当今IT领域中最受欢迎且高效的语言之一,其框架能够显著加速Web应用程序的开发过程。本文推荐并对比了十大顶级Python Web开发框架,其中CubicWeb以其卓越的代码重用性和模块化设计脱颖而出,为开发者提供了强大的支持。 ... [详细]
  • SQLmap自动化注入工具命令详解(第28-29天 实战演练)
    SQL注入工具如SQLMap等在网络安全测试中广泛应用。SQLMap是一款开源的自动化SQL注入工具,支持12种不同的数据库,具体支持的数据库类型可在其插件目录中查看。作为当前最强大的注入工具之一,SQLMap在实际应用中具有极高的效率和准确性。 ... [详细]
  • 在Python 2.7环境中使用PyCharm进行Cvxopt的安装及线性规划问题求解。具体步骤包括:通过PyCharm的文件菜单进入项目设置,选择解释器选项,点击右侧的“+”按钮,在可用包列表中搜索并安装Cvxopt。安装完成后,可以通过导入Cvxopt库并调用其函数来解决线性规划问题,提高模型的准确性和效率。 ... [详细]
author-avatar
布瓜Pourqu2502854853
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有