|
|
|
|
公众号矩阵

Python虽好,但请不要盲目将它用于每一个项目!

最近我在Reddit上讨论了为什么有人会选择使用Python而不是其他编程语言。讨论很激烈,于是我决定写一篇文章。

作者:布加迪编译来源:51CTO|2020-07-09 07:00

Python虽好,但别将它用于每一个项目!

【51CTO.com快译】

最近我在Reddit上讨论了为什么有人会选择使用Python而不是其他编程语言。讨论很激烈,于是我决定写一篇文章。

首先,不妨讲讲我对Python的看法。这是我喜欢的一种编程语言,可以用于众多应用,不过我同意所有语言都有其缺点。我的确认为Python是适合专业人员使用的一种优秀语言,但也适合初学者探索迷人的编程世界。

话虽如此,我会在每个项目中使用Python吗?可能不会。但是Python在一些方面很擅长,我想重点介绍这方面并解释原因。

  • API开发
  • 数据科学/人工智能
  • 脚本编写

API开发

有一些出色的API开发框架可与Python结合使用,其中两个是开发社区最喜欢的框架:Django和Flask。

围绕API开发的讨论立即进入了Web框架的方向。为什么?这么说吧,如果你想致力于为API编写代码,就不该编写自己的Web服务器或框架。

一些人也主张将Python用于Web开发,不过我不喜欢将那些框架用于前端,我更喜欢使用React、VueJS或Ember构建前端。

如果你开始使用Python开发API,很可能最终会使用Django或Flask。所以你可能会问:我该使用哪一个?

Django VS Flask

这两种框架都很棒,而且适用于大多数情况。然而,它们遵循不同的理念。一些人更喜欢其中一种,两边都有充分的理由。由于这两种框架本质上大不相同,因此我仅介绍两者的大体区别,不过你应该详细了解,才能确定哪种框架最适合你和你的项目。

理念:

  • Flask是一种简约的框架。它提供了简单性、灵活性和细粒度控制。它是非固执己见的(你可以用它来做你想做的任何事情)。
  • 相反,Django是一个综合性框架。你可以直接为应用程序获得库、管理面板、数据库界面、ORM甚至可靠的目录结构。

如果你想了解更多的相关内容,请参阅此文:https://testdriven.io/blog/django-vs-flask/

数据科学/人工智能

无论何时想处理数据(比如数据抓取、数据分析、可视化、机器学习或AI),Python都是最好的朋友。这每一项任务都有许多重要的库,它们是出色的库,在研究环境和生产环境中使用率很高。

我不会详细介绍这些库,但想提及几个库:Pandas、Numpy、Matplotlib、Seaborn、Tensorflow、Pytorch、scikit-learn、Keras、NLTK和OpenCV。

由于这些库,你可以构建涉及几乎任何数据科学或AI主题的生产就绪的项目。虽然将Python用于其中一些应用存在一些缺点(比如性能),但在许多情况下,Python会是不错的选择。

我们在谈论哪一种项目?

通常,Python在数据科学和AI有许多应用。我在这里提及使用Python的几个常见项目:

  • 时间序列分析
  • 销售预测
  • 语言处理
  • 情绪分析
  • 推荐系统(比如音乐和视频等)
  • 分类
  • 计算机视觉
  • 自动驾驶汽车

脚本

脚本通常指旨在自动执行简单任务的小程序(通常通过命令行来执行)。

下面举几个例子表明我自己编写的脚本,这些脚本使我的日常工作流程实现自动化:

  • 我的博客:我使用Evernote收集在网上看到的所有内容,还撰写帖子。但是需要发布时,我记下那些笔记并将其作为草稿上传到我的博客中。这个过程在Python上自动进行:每当我将笔记标记为“准备发布”,我会运行Python脚本:将笔记、格式和草稿拷贝到我的博客系统中。当然,实际发布之前我总需要进行一番手动修改(主要是由于Evernote奇怪的HTML输出)。
  • 备份:我喜欢在云端备份资料,但我也在外部硬盘中留一份副本。我通常加密放到云端的所有内容(Evernote除外,它不允许我这么做)。但当我将备份内容放到硬盘时​​,会使用硬盘加密,我不想对其进行双重加密。当我想把数据备份到硬盘时,会运行一个python脚本,该脚本解密数据,然后将数据移到硬盘。

结论

Python是一种用途很广泛的编程语言,由于其社区和库,你几乎可以用它来做想做的任何事情,不过有时你不该使用它。没有哪种语言一应俱全:它们都有优缺点,Python也不例外。

话虽如此,我确实认为Python很棒;如果你很好奇,可以用它构建从游戏到嵌入式系统的各种应用。当然,那些可能不是生产就绪的项目。

原文标题:Python is great, but stop using it for every damn project

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

【责任编辑:庞桂玉 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

大数据安全运维实战

大数据安全运维实战

CDH+Ambari
共20章 | 大数据陈浩

84人订阅学习

实操案例:Jenkins持续交付和持续部署

实操案例:Jenkins持续交付和持续部署

微服务架构下的自动化部署
共18章 | freshman411

174人订阅学习

思科交换网络安全指南

思科交换网络安全指南

安全才能无忧
共5章 | 思科小牛

105人订阅学习

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO官微