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. mongoDB GUI客户端工具大全

    网易blog - MongoDB GUI客户端工具大全   oschina - MonjaDB 1.0.2 发布,MongoDB 的 GUI 客户端   oschina创建人红薯对MonjaDB官方文 ...

  2. 在CMD中查看端口被什么程序占用

    我们要查看端口被什么程序占用,可以使用下面方法.比如端口28848 1. 打开cmd,输入命令netstat -ano | findstr ":28848",显示结果如下,最后一个 ...

  3. 基于Verilog的以2为底取对数函数log2(x)

    参考资料:xilinx AXI4 Stream Peripherals 源码 //*********************************************************** ...

  4. 基于RocketIO的高速串行协议设计与实现

    随着对信息流量需求的不断增长, 传统并行接口技术成为进一步提高数据传输速率的瓶颈.过去主要用于光纤通信的串行通信技术—SERDES正在取代传统并行总线而成为高速接口技术的主流.SERDES 是串行器) ...

  5. angularjs 可以加入html标签方法------ng-bind-html的用法总结(1)

    本篇主要讲解angular中的$sanitize这个服务.此服务依赖于ngSanitize模块.(这个模块需要加载angular-sanitize.js插件) 要学习这个服务,先要了解另一个指令: n ...

  6. Colossal Fibonacci Numbers! UVA 11582 寻找循环节

    /** 题目:Colossal Fibonacci Numbers! UVA 11582 链接:https://vjudge.net/problem/UVA-11582 题意:f[0] = 1, f[ ...

  7. kdump 的使用在linux崩溃时

    Centos7/RHEL7 开启kdump 翻译 2017年12月18日 16:58:28 标签: kernel / kdump / crash / centos 437 原文链接<How to ...

  8. 24模拟keepalved vrrp功能,监听主节点,如果主节点不可访问则备节点启动并配置LVS实现接管主节点的资源提供服务(提醒:注意ARP缓存)

    [root@lb04 scripts]# cat ha_lv.sh #!/bin/bash while true do check_count=$(nmap 10.0.0.13|grep " ...

  9. 为什么Servlet修改之后,Tomcat都得重启,servlet才会生效!

    最近做东西经常需要重新加载项目,今天深深的问了自己为什么? Servlet的生命周期中,只会初始化一次,如果每次要是发送请求或响应,Servlet引擎都会调用service.从这里就会看出,servl ...

  10. 进出口流程 & 报关单据

    出口流程 一. 委托人 1. 需找货运代理公司 2. 向代理公司询问价格 一般为 ALL IN 价格( 空运费+燃油费+战险费 ) 总费用 = ALL IN 价格 * ( 货物公斤数 ) ALL IN ...