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. webpack 环境搭建基础框架

    一.安装babel相关 1,安装依赖 cnpm i -D babel-core babel-loader babel-preset-env babel-preset-stage- babel-plug ...

  2. SQL 子查询 EXISTS 和 NOT EXISTS

    MySQL EXISTS 和 NOT EXISTS 子查询语法如下: SELECT … FROM table WHERE EXISTS (subquery) 该语法可以理解为:将主查询的数据,放到子查 ...

  3. atitit.编程语言 类与对象的 扩展机制.doc

    atitit.编程语言 类与对象的 扩展机制.doc 1.1. Java 下一代: 没有继承性的扩展1 1.2. 继承1 1.3. 使用cglib动态为Java类添加方法1 1.4. 工具类 1 1. ...

  4. 内核调试神器SystemTap — 探測点与语法(二)

    a linux trace/probe tool. 官网:https://sourceware.org/systemtap/ 探測点 SystemTap脚本主要是由探測点和探測点处理函数组成的,来看下 ...

  5. Git实战(四)状态转换

    上次的Git实战(三)环境搭建博文.我们大致解说了一下git的环境安装,今天我们解说一下Git的状态转换. 学习版本号控制工具.对工具进行版本号控制之间的状态转换很重要.毕竟Git仅仅是一个工具.假设 ...

  6. mongodb 实现关系型数据库中查询某一列 的效果

    近期在tornado\mongodb\ansible mongodb中有个find()方法非常牛逼,能够将集合中全部的表都传出来,一開始我这么写 class Module_actionHandler( ...

  7. spring定时任务(@Scheduled注解)cron表达式详解

    cron表达式详解: 一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素. 按顺序依次为 秒(~) 分钟(~) 小时(~) 天(~) 月(~) 星期(~ =SUN 或 SUN,MON,TU ...

  8. python学习代码

    #!/bin/python #example 1.1 #applay def function(a,b): print(a,b) def example1(): apply(function, (&q ...

  9. 虚机下Ubuntu与Win7文件共享

    使用Samba服务实现虚机与本机的文件共享,简单的分为以下几个步骤,按部就班,so easy 1.安装smb sudo apt-get install samba sudo apt-get insta ...

  10. Hibernate通过many-to-one元素的一对一映射

    在hibernate中我们可以通过两种方式来执行一对一映射: 通过many-to-one元素标签 通过one-to-one元素标签 在这里,我们将通过多对一的many-to-one元素进行一对一的映射 ...