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

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

[[332649]]

【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】

 

责任编辑:庞桂玉 来源: 51CTO
相关推荐

2024-03-22 16:13:42

LLMRAGXGBoost

2022-12-12 08:23:34

Java 5ordrialname

2010-09-09 09:25:59

2019-09-27 12:14:15

低代码程序平衡

2022-01-22 00:14:05

Windows 11微软修复

2011-12-16 20:00:57

黑莓

2015-08-25 09:00:48

创业失败者创业活动

2020-06-02 16:38:24

华为

2010-03-12 16:12:49

2016-03-24 10:25:25

敏捷开发竞争

2010-12-06 14:53:26

博雅英杰

2015-10-10 11:09:48

NFVNFVI网络虚拟化

2021-09-27 10:07:39

Python 开发编程语言

2016-01-13 15:14:06

云计算OpenStack

2013-07-09 10:44:05

PowerShell

2019-04-15 11:00:46

框架Node.JS开发

2011-10-21 09:10:12

JavaScript

2021-12-13 16:19:36

人工智能机器学习技术

2010-01-06 13:51:06

2023-06-28 16:03:44

点赞
收藏

51CTO技术栈公众号