Python 之父 Guido 正在设计 Python 语言,结果家里突然潜入一条大蟒蛇,一番激烈斗争,大蟒蛇把 Guido 叔生吞进肚,并洋洋自得:So Who is Guido Van Rossum?(纯属个人解读,有如雷同,纯属巧合)

几年前 Python 在国内还只是一门小众语言,但从 2011开始到现在,Python 的百度搜索指数翻了10 倍,从下图看得出 Python 在国内的流行度已经直逼 Java,大有赶超之势。

一个行业火不火,就看有多少(自)媒体、培训机构涌入进来为之疯狂,用百度搜关键字 “python” 就有 5 条是培训广告,而 Ruby、PHP、Go 等语言一条都没有,显然还是 Python 的生意更好做。在11年左右,那时国内除了豆瓣、搜狐在用 Python 之外,很难看到有体量的公司用 Python,而在美国,Python 其实一直都很流行,像 Google、Instagram、Dropbox、Youtube、Reddit、Quora 这些明星网站都在用 Python 做核心业务。从 Google Trands 看得出它一直处于平稳的趋势,这两年上升趋势比较明显,显然主要贡献来自于中国。

那么国内这几年 Python 怎么突然就火起来了?

究其原因,大概可以从分3个阶段来分析。

12~14 年是云计算最火的几年,大批创业公司和巨头挤破头地进军云计算领域,大家都在做 IAAS,最著名的云计算开源平台 OpenStack 就是基于 Python 开发的,为此催生出不少Python 岗位。

14~15年是「大众创新,万众创业」口号喊得最响两年,北京大街小巷似乎人人都是创业者,O2O、P2P 产品如雨后春笋般冒出,什么语言最适合快速搭建原型?当然是 Python,Python 的开发速度一个顶三。

16~17年人工智能火遍大江南北,AlphaGO 的出现让业界为之兴奋,人工智能不再是概念,而人工智能、机器学习的首选语言就是 Python。

这两年特别是网络爬虫火得一塌糊涂,10 个写爬虫的 9 个在用 Python,曾经有一段时间知乎的 Python 话题全部被爬虫相关的帖子刷屏,为什么爬虫这么火,这个还是跟大数据有关,因为数据挖掘、分析、机器学习、人工智能都需要大数据的支撑,而真正有大数据的厂商没几个,所以小厂不得不通过爬虫去获取数据。

为什么偏偏就只 Python 火了?

Ruby on Rails 最火的那几年,有人问 Python 之父吉多·范罗苏姆怎么看,他说:“Python 不需要杀手级应用,因为如果是这样的话,Python 在其它方面的作用就被忽略了。” Python 在网络爬虫、数据分析、AI、机器学习、Web 开发、金融、运维、测试等多个领域都有不俗的表现,从来没有哪一种语言可以同时在这么多领域扎根。

Python 是一门兼具简单与功能强大的编程语言,它专注于如何解决问题、自由开放的社区环境以及丰富的第三方库,无需浪费时间去造轮子,各种 Web 框架、爬虫框架、数据分析框架、机器学习框架应有尽有,拿来即用,如果你不知道去哪找第三库,可以看看 awesome-python。

尽管后起之秀 Go 语言为并发编程而生,效率高,但物理硬件性能已经显著提升的情况下,编程语言带来的性能影响已经不那么重要的,开发速度才是人们首要关注的问题,即使真遇到的性能问题,那么也可以用 C 语言无缝对接。

虽说 Java 是老大哥,江湖地位无人能撼动,但体型过于臃肿、冗长的语法被越来越多的开发者所诟病,这也是为什么 Google 决定把 Kotlin 作为 Android 官方支持语言的主要原因。

Python 的发展完全是由社区自我驱动的,喜欢 Python 的原因很简单,因为它确确实实给开发者带来了愉悦的编程体验。

Python的优点

1. 简单 Python的语法非常优雅,甚至没有像其他语言的大括号,分号等特殊符号,代表了一种极简主义的设计思想。阅读Python程序像是在读英语。

2. 易学 Python入手非常快,学习曲线非常低,可以直接通过命令行交互环境来学习Python编程。

3. 免费/开源 Python的所有内容都是免费开源的,这意味着你不需要花一分钱就可以免费使用Python,并且你可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。

4. 自动内存管理 如果你了解C语言、C++语言你就会知道内存管理给你带来很大麻烦,程序非常容易出现内存方面的漏洞。但是在Python中内存管理是自动完成的,你可以专注于程序本身。

5. 可以移植 由于Python是开源的,它已经被移植到了大多数平台下面,例如:Windows、MacOS、Linux、Andorid、iOS等等。

6. 解释性 大多数计算机编程语言都是编译型的,在运行之前需要将源码编译为操作系统可以执行的二进制格式(0110格式的),这样大型项目编译过程非常消耗时间,而Python语言写的程序不需要编译成二进制代码。你可以直接从源代码运行程序。在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。

7. 面向对象 Python既支持面向过程,又支持面向对象,这样编程就更加灵活。

8. 可扩展 Python除了使用Python本身编写外,还可以混合使用像C语言、Java语言等编写。

9. 丰富的第三方库 Python具有本身有丰富而且强大的库,而且由于Python的开源特性,第三方库也非常多,例如:在web开发、爬虫、科学计算等等

Python的缺点

Python虽然有很多优点,但是它也不是完美的,它也有自身的缺点。

1. 速度慢 由于,Python是解释型语言,所有它的速度会比,C、C++慢一些,但是不影响使用。由于,现在的硬件配置都非常高,基本上没有影响,除非是一些实时性比较强的程序可能会受到一些影响,但是也有解决办法,可以嵌入C程序。

2. 强制缩进 如果你有其他语言的编程经验,例如:C语言或者Java语言,那么Python的强制缩进一开始会让你很不习惯。但是如果你习惯了Python的缩进语法,你会觉得它非常优雅。

3. 单行语句 由于Python可以在尾部不写分号,所以一行只能有一条语句,这可能也算是一个不足吧,不过这真的微不足道。

使用Python的知名网站

国内的:

  • 豆瓣,果壳,知乎,Sohu邮箱

国外的:

  • youtube,Gmail邮箱,Dropbox,等等等等


识别图中二维码,领取python全套视频资料

Python 是怎么火起来的?的更多相关文章

  1. 可能是 Python 中最火的第三方开源测试框架 pytest

    作者:HelloGitHub-Prodesire HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Arti ...

  2. python为什么这么火?里面肯定是有原因的

    因为人生苦短要用python啊! 看完本文,你将在结尾得到本文的一个福利彩蛋 你瞧瞧其他语言之父... Java之父——James Gosling PHP之父 ——Rasmus Lerdorf Obj ...

  3. 简学Python第一章__进入PY的世界

    #cnblogs_post_body h2 { background: linear-gradient(to bottom, #18c0ff 0%,#0c7eff 100%); color: #fff ...

  4. 如何快速赚钱:Python爬虫

    Python爬虫和毛爷爷的关系:Python是最简单最流行的开发语言,毛爷爷是最招人喜欢的人民币.如果你学会了Python爬虫,就可以挣更多的毛爷爷. 大家发现没有,实际上Python早已经火起来了, ...

  5. python第一篇-------python介绍

    一.python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,Guido开始写Python语言的编译器.Python这个名字,来自Guido所 ...

  6. Day1 Python基础学习

    一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编写程序,本质仍然是直接操作 ...

  7. 教育改革——国家认证 “网红” 编程语言 Python

     特大消息!!!  不止是上海计算机二级考试 ,全国计算机考试等级考试也有要求 如果你正打算考计算机等级,那你需要学习以下知识 要求学习的知识太多了,我就不一一在这里展示了! 一.考试改革的目标 据悉 ...

  8. 学习资料分享:Python能做什么?

    最近一直忙着研究学习Python,很久没更新博客了,整理了一些Python学习资料,和大家分享一下!每天更新一篇~ 一.Python 特点 1.易于学习:Python有相对较少的关键字,结构简单,和一 ...

  9. python 开发之路 - 入门

    一. python 介绍 Python是著名的"龟叔"Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言.1991年 发布Python ...

随机推荐

  1. TCP通过哪些措施,保证传输可靠

    TCP是通过什么方式来提供可靠传输的 (合理截断数据包,超时重发,校验,失序重新排序,能够丢弃重复数据,TCP可以进行流量控制) TCP提供一种面向连接的.可靠的字节流服务.  面向连接:意味着两个使 ...

  2. sublime text 3 设置默认自动换行

    如果每次打开文件都不自动换行, 设置如下在sublime菜单栏选择 "选项-->设置-用户", 在打开的配置文件中添加 "word_wrap" : fal ...

  3. mariadb mysql 报'Access denied for user 'root'@'localhost' (using password: NO)'错误的解决

    C:\Program Files\MariaDB 10.2\bin>mysql admin -u root password "x123456789" mysql Ver 1 ...

  4. hdu1584 A strange lift (电梯最短路径问题)

    A strange lift Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) T ...

  5. UML类图详解_关联关系_多对一

    首先先来明确一个概念,即多重性.什么是多重性呢?多重性是指两个对象之间的链接数目,表示法是“下限...上限”,最小数据为零(0),最大数目为没有设限(*),如果仅标示一个数目级上下限相同. 实际在UM ...

  6. 167. Two Sum II - Input array is sorted【easy】

    167. Two Sum II - Input array is sorted[easy] Given an array of integers that is already sorted in a ...

  7. Linux 总结2

    cd                                             pwd                                            mkdir ...

  8. android:clearTaskOnLaunch的用法

    比如你的应用里有N个Activity,其中有个是设置页面,你从主页面进入到设置页面设置了一些东西之后,突然,按了下Home键,回到了Android的Home,这时候你做了些别的事情,然后你再次点击你的 ...

  9. oracle怎么卸载

    Oracle Database,又名Oracle RDBMS,或简称Oracle.是甲骨文公司的一款关系数据库管理系统.到目前仍在数据库市场上占有主要份额.劳伦斯·埃里森和他的朋友,之前的同事Bob ...

  10. Eclipse Java 构建路径

    Eclipse Java 构建路径 设置 Java 构建路径 Java构建路径用于在编译Java项目时找到依赖的类,包括以下几项: 源码包 项目相关的 jar 包及类文件 项目引用的的类库 我们可以通 ...