相较其他语言,Python到底好在哪儿?

源 | 顶级程序员 编译 | 侯敏霞、谢忱、王一丁

就个人发展而言,选择学习的技术与要就读的大学可谓同等重要。如果决定做错了,那往往会收到一堆麻烦,而不是想要的高薪工作。我想,现在你点开这篇文章,就代表你已考虑选择Python开发作为未来的就业方向。

这篇文章中,我们将通过探究“信息技术”本身来找出Python与其他语言相比所具有的优势,通过对比Python和Java、Ruby、PHP以及C#之间的差别让你了解你需要了解的技术方面。在进行比对之前,让我们先来看看为什么要用Python以及谁在用它。

Python都被用在哪儿?

自40年前Python创建以来,基于此项技术的网站和软件项目已经有了数千个。Python由于其独特性使其在各种编程语言中脱颖而出,在全世界拥有大量拥趸。

Python的优点是什么?

1. 简单 我们可以说Python是一种简约的语言。写和读是非常容易的。当需要考虑问题的时候,开发人员可以关注问题,而不是语言和语法。

2. 免费

Python是免费且开源的。这意味着开发人员无需支付任何费用。他们可以共享、复制和更改。这一事实也帮助Python创建了一个非常强大的社区,而且免费会让它变得更加强大,开发技术也会飞快。社区也为专业人士与初学者提供了知识和经验的分享交流平台。

3. 兼容性 Python与众多平台兼容,因此开发人员不必担心其他语言经常出现的任何问题。

4. 面向对象

Python支持面向过程以及面向对象的编程。在面向过程的编程中,开发人员应用可重用的代码段。面向对象编程使用基于数据和功能的对象。尽管OOP语言通常非常复杂,但Python做到了简单和整齐。

5. 函数库

Python社区为Python创建了丰富多样的库。在他们的帮助下,你可以管理文档、执行单元测试、数据库、Web浏览器、电子邮件、加密、图形用户界面等等。所有这些东西都包含在标准库中,除此之外,还有很多其他库可用。

在哪里使用Python语言?

多年来,Python一直处于各种流行编程语言排名的前列。该语言几乎可以用于任何事情。它旨在提高程序员的生产力,而不是他们编写的代码本身。Python可以用于Web、桌面应用程序开发、自动化脚本、复杂计算系统、科学计算、生命支持管理系统、物联网、游戏、机器人、自然语言处理等等。

对于那些从未写过代码的人来说,Python代码也很简洁易懂。也正因为这个原因,与其他语言相比,使用Python编写的程序其可维护性也是很不错的。从商业角度来看,这也可以很大程度上在降低开发成本的同时提高程序员的生产力。

谁使用Python?

Python开发人员社区不断壮大,语言库的数量也在不断增长。这一切都使得Python成为世界上功能最多的编程语言之一,可以轻松适用于任何项目。同时我们也应认识到:Python在数据挖掘和机器学习等领域中十分流行。

为了更好认识使用Python较其他语言的所有优点,我们将Python与最流行的其他Web技术做一下比较,先从PHP开始。

Python vs PHP

从发展的角度来看,PHP是一种面向网络的语言。一个PHP应用程序更像是一组单独的脚本,甚至可能只有一个语义入口点。与此相应的是,Python是一种多用途的语言,它也可以用于Web开发。基于Python的Web应用程序是一个成熟的应用程序,用它的内部状态,从查询到请求,都加载到内存中。在选择Python或PHP作Web应用程序时,应参考以下特征:

Python

PHP

流行程度

非常流行

非常流行

框架

许多框架

较少框架

学习

易学

难学

Python与PHP的Web开发比较

1、 流行度

现在,要做到符合趋势或潮流,意味着要很多属性。一些客户和产品所有者只想在他们的项目中使用最受欢迎和最流行的技术。在此情况下,如果只顾搞开发但不管技术方向,很可能最终的结果就是没有客户和工作。

也就是说,在学习任何东西之前,要确保要学的东西在未来1年、5年甚至10年内都符合潮流。

PHP和Python是世界上最流行的编程语言之一,这无需担心。PHP被用来构建维基百科、雅虎、WordPress、Friendster、MailChimp、Flickr等许多巨头。

Python则被用于构建YouTube、Instagram、桌面版的Dropbox、Reddit、Bitbucket、Quora、Spotify、Pinterest、Facebook的内部服务以及PayPal! 2、架构

在你选择技术时,各种工具也非常重要。它定义了你工作的简单性和便利性。如果一项技术为不同的任务提供多种工具,程序员可以确信他不必从头开始做所有事情。

最流行的PHP框架是Laravel、Symfony、CodeIgniter、Yii 1和2、Phalcon等等。这些工具可以帮你创建功能强大且整洁的应用程序。 而Python则不能自夸拥有如此多的框架。用的最多的是Django和Flask。 但是,我们可以向你保证,由于Python社区的不断发展,这种局面很难快就会发生变化。

3、学习

这通常是学生想要弄清楚的第一个问题。学习过程越容易,他们能越快开始工作和赚钱。

当然,这个类别的获胜者是Python。它的语法更简单易学。不幸的是,我们不能对PHP说同样的话。PHP需要更多的时间和精力来掌握。Python可以让你在没有代码中断的情况下几乎不出现错误,它使新手更有信心继续学习。

从新手的角度来看,你如果想要选择更简单、更灵活,那么Python是最理想的。Python允许你创建安全的应用程序,而PHP要达到这个目的则需要额外的工具。但别忘了,PHP是专门为Web开发而创建的,在这方面应用得更多。

Java与Python哪个更好?

一些开发人员声称Python比Java更有生产力。但更应先说明的是:Python和Java有什么区别?

Python vs Java

Python

Java

学习

易学

难学

跨平台应用

不同操作系统的兼容性

基于网络的应用

Java是一个典型化的编程语言,这意味着变量名必须显示声明。相比之下,我们有动态类型的Python,它不需要声明变量。对于编程语言的动态和静态类型有很多争论。

不过请注意这样一个特征:Python是一个有着简单句法的多样性的语言。这使得Python被广泛应用于多个领域来写脚本,快速开发应用等等。

Java支持跨平台应用,而Python几乎与所有现代操作系统兼容。Java对于初学者来说要比Python复杂很多。读Python代码也比读Java代码简单。但是,如果你想让你的代码在哪里都能执行,那就选Java。Java的另一优势就是能建立基于网络的应用程序。

Java比Python复杂得多。如果你没有技术类的背景,学Java是个很艰难的过程。另一面,Java能使用在不同环境中。如果这个特点是你需要的,那就用Java吧。

Python vs C#

Python

C#

简单性

脚本编写

任何环境

只在IDE

很多个库

很少有库

性能

在简单程度方面,Python 最初设计成像英语词句的样子,所以很多表述都非常易读,尤其当用了合适的变量名时。此外,因为语句的简单,Python没有类似句法括号、大量单字修饰词、各种C类结构和初始化变量的不同方法等复杂结构。这些都使得用Python写出的代码容易理解和学习。

同时,由于语言的遗传,C #有很多来自C++和java的东西,比如很多类C的语法表达。更重要的是,当你编写自己的方法或继承类时,C#语法会有必要遵循一定的规则,这是伴随着另一个字修饰符流的。人们也不应该忘记应该用括号包装的代码块。这些东西Python不全都有,它使用移位,使代码看起来同样整洁。

至于脚本编写,可能值得一提的是,Python调用脚本的程序实际上是脚本,它们只是拥有能由解释器轻松执行的代码的文件。我们可以在任何编辑器中打开它们,与它们一起工作,然后立即再次运行。如果没有IDE或编译器,这将是一个巨大的优势。此外,用Python编写跨平台脚本更容易,甚至不需要重新编译。

但是,作为Python的一个劣势,我们强调在脚本上使用机器安装解释程序的必要性。或者,至少一个解释器与脚本一起打包在一个包/可执行文件中。因此,它会将脚本的大小从几个千字节增加到十几兆字节。一次性使用不太方便。

反过来,C#要求IDE进行正常编程。作为C#的一个优点,当你为Windows编写脚本时,它对Windows系统的各个组件有很强的支持。例如,有内置的工具来处理注册表、WMI、网络等。C#允许你使用WinForms,如果立刻需要,它能很容易创建一个图形界面。

关于Python或C#哪种语言更好这个问题,没有正确的答案。Python比C#更容易学习,它有更多的开源库。然而,C#的标准库优于Python,C#具有更多的特性,性能更高,并且进化得非常快。

Ruby和Python是最受欢迎的首选语言

Ruby是搭建网站的极其流行的技术。最有名的例子是推特 (早期版本), Basecamp, Github, Airbnb, Slideshare 和 Groupon.

Python

Ruby

解决问题的方法

一种解法

多种解法

社区

巨大

巨大

句法

非常简单

复杂一些

Ruby和Python都是面向对象的、动态灵活的语言。这两种语言的主要不同在于它们解决问题的方式。Ruby会提供不同的解决方法而Python通常只有一种。这一特点可以是优势也可以是劣势。

Ruby最流行的框架是Ruby-on-Rails. 它跟Django非常类似,因为这两个框架是为一样的任务而设计的。如果我们比较这些技术的社区,我们会发现它们是差不多的。但是,组建这些小组的人群是不同的。Python在数据科学和数学领域非常受欢迎,所以你能碰到很多学者和教授。

记住,在网络应用开发方面,你在RoR里能做的事,你在Django里同样都能做。这两个语言都很快速高效。如果你有兴趣开发需要大量计算和数据处理的应用,那Python是更好的选择。Ruby更能帮助建立路线繁多的应用。

任何一个技术成功的秘诀是其周边创建的社区。人际合作可以决定其未来的演变方向。Python技术支持小组是世上最大最多样的小组之一。

小组里不仅有上千个个人开发人员,还有超级大公司的支持,比如谷歌, Yandex, Dropbox, Mozilla, 微软 (在 Visual Studio里使用), 英特尔等等。这些公司用Python创造了世上最大和最流行的项目。

如上是我们提供给你用作参考的信息。现代编程语言的多样性给了你许许多多的选择。你今天的选择奠定着你未来职业生涯的道路。我们帮不到你太多,只能建议你对自己要做的项目有清晰的认识,并且选择最适合的技术。

-END-

译者:候敏霞

软件工程专业--云计算与大数据方向,擅长java后端开发和Python编程,喜欢结交志同道合的朋友,一直相信:越努力,越幸运,more efforts,more happiness。

译者:谢忱

纽约州立大学石溪分校本科毕业,应用数学统计与经济学双专业。乔治华盛顿大学数据科学专业研究生在读。擅长python编程和web前端开发。

校对:王一丁

本科CS,水过ACM和数学建模,现在内蒙古自治区大数据发展管理局工作,加班使我快乐。欢迎来我区、我局洽谈工作。

原文发布于微信公众号 - 顶级程序员(TopCoding)

原文发表时间:2018-05-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java工会

Java编程新手入门要多久

2174
来自专栏大数据挖掘DT机器学习

腾讯、网易、新浪新闻网站爬虫编写记录及评论格式分析

作者:reetsee.com首席运营官 http://blog.csdn.net/qq_17754181/article/details/45179667 至...

5035
来自专栏诸葛青云的专栏

C语言学到什么程度可以做项目?

都说编程学习是一个漫长的过程,会的东西越多,感觉懂的越少。要达到可以做项目的状态还是需要下些功夫的。但你非得说没有时间限制,懂一点点你就可以去做项目了。前提是你...

1760
来自专栏华章科技

Python为啥这么牛?跟其他语言相比究竟有什么优势?

导读:选择要学习的技术和选择要上的大学一样重要,如果选错了,你将来不仅得不到自己喜欢的高薪工作,反而会弄得一堆麻烦。如果你打开了这篇文章,说明你已经考虑选择Py...

1022
来自专栏领域驱动设计DDD实战进阶

DDD实战进阶第一波(十五):开发一般业务的大健康行业直销系统(总结篇)

1873
来自专栏程序员互动联盟

如何深入学习C语言?

疑惑一 遇见编译错误了咋办? 经常见有小伙伴,呼呼的把一大段的编译错误呈现在群里,然后问这是啥原因,其实解决编译的办法还是挺多,现在重点说下编译错误是怎么出来的...

3895
来自专栏数据猿

对象存储来势汹汹,究竟谁是“幕后推手”?

存储圈真会玩,继网络接入存储、块存储、文件存储之后,对象存储也掀起了新一轮发展浪潮。银行、保险、交通集团等传统企业纷纷换上了对象存储,真怀疑IT部门的单身狗只是...

4235
来自专栏java工会

万能 Java

2523
来自专栏全华班

二代蜘蛛侠

爬虫程序, 二代蜘蛛侠,此版本完全重新开发,比上一代更加强大(性能,易用,架构,分布式,简洁,成熟)

1813
来自专栏包子铺里聊IT

[包子分享] 构架模式: Microservices Architecture

http://baozitraining.org ---- ? 微服务构架是近年来比较流行的服务端应用构架,由其非常好的可伸缩性,稳定性以及灵活的协同开发模...

3066

扫码关注云+社区

领取腾讯云代金券