1989 年圣诞节期间,已经从阿姆斯特丹大学(University of Amsterdam)获得数学和计算机硕士学位的 Guido van Rossum,为了打发圣诞节的无趣,决心开发一个新语言解释器,作为 ABC 语言的一种继承。

之所以选中 Python(蟒蛇)作为该编程语言的名字,是取自英国 20世纪 70 年代首播的电视喜剧《蒙提.派森的飞行马戏团》(Monty Python's Flying Circus)。

1991年,第一个 Python 解释器正式发布。它是用 C 语言实现,能够调用 C 库(.so文件)。并且当时已经具有Python 的核心数据类型:类(class)、函数(function)、列表(list)、字典(dict),以及模块(module)。

Python 设计哲学是“优雅”、“明确”、“简单”,Guido 将“人生苦短,我用 Python” (Love is short, use python) 作为 Python 的 Slogan。

这是因为 Python 将许多机器层面上的细节隐藏,交给编译器处理,并凸显出逻辑层面的编程思。这让 Python 程序员可以花更多的时间用于思考程序的逻辑,而不是具体的实现细节。

正因如此,Python 在冷门多年后,终于借助大数据与人工智能的兴起而迅速蹿红,不需要注重编程工程性的特点使数据/AI 开发者得心应手。

如今 Python 已经成为世界最热门的语言之一,据 Jetbrains 调查显示,27% 受访对象在过去一年中开始或仍在持续学习 Python。

越来越多的数据开发者使用 Python 代替 MATLAB 作为数据处理语言,机器学习开发者将 Python 几乎首选语言。而 Flask 与 Django 这两款继承 Python 设计哲学、优秀的 Web 框架,也让 Python 在 Web 领域占领一席之地。

各大互联网企业也争相拥抱 Python,Google 不仅聘请过 Guido,还把 Python 作为 Google 第三大开发语言,YouTube 与 Instagram 则将 Python 作为主力技术栈,国内的豆瓣也是 Python 的忠实使用方。

不知 Guido 在 30 年前的那个圣诞,是否会想到写出了一个假期闲作,在 30 年后竟然成为一门雄霸一方的编程语言。

各位圣诞节快乐!


本文属于原创,首发于微信公众号「面向人生编程」,如需转载请后台留言。

关注后回复以下信息获取更多资源
回复【资料】获取 Python / Java 等学习资源
回复【插件】获取爬虫常用的 Chrome 插件
回复【知乎】获取最新知乎模拟登录

30 年前的圣诞节,Python 序章被谱写的更多相关文章

  1. JZOJ 4272. 【NOIP2015模拟10.28B组】序章-弗兰德的秘密

    272. [NOIP2015模拟10.28B组]序章-弗兰德的秘密 (File IO): input:frand.in output:frand.out Time Limits: 1000 ms  M ...

  2. C蛮的全栈之路-序章 技术栈选择与全栈工程师

    目录 C蛮的全栈之路-序章 技术栈选择与全栈工程师C蛮的全栈之路-node篇(一) 环境布置C蛮的全栈之路-node篇(二) 实战一:自动发博客 博主背景 985院校毕业,至今十年C++开发工作经验, ...

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

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

  4. leecode刷题(30)-- 二叉树的后序遍历

    leecode刷题(30)-- 二叉树的后序遍历 二叉树的后序遍历 给定一个二叉树,返回它的 后序 遍历. 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1] 思路 ...

  5. .Net 中的反射(序章) - Part.1

    引言 反射是.Net提供给我们的一件强力武器,尽管大多数情况下我们不常用到反射,尽管我们可能也不需要精通它,但对反射的使用作以初步了解在日后的开发中或许会有所帮助. 反射是一个庞大的话题,牵扯到的知识 ...

  6. Asp.Net MVC4 + Oracle + EasyUI 学习 序章

    Asp.Net MVC4 + Oracle + EasyUI  序章 -- 新建微软实例 本文链接:http://www.cnblogs.com/likeli/p/4233387.html 1.  简 ...

  7. Ⅰ.Spring的点点滴滴--序章

    spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架 .net篇(环境为vs2012+Spring.Core.dll) 新建一个控制台 using Spring.Context; ...

  8. ar技术序章-SDK介绍和选择

    转自: http://blog.csdn.net/kun1234567/article/details/10402535 ar技术序章-SDK介绍和选择 分类: Augmented Reality20 ...

  9. 简学Python第二章__巧学数据结构文件操作

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

随机推荐

  1. Java实验报告(一)

    1.水仙花数 public class test1{ public static void main(String[] args){ for(int num=100;num<1000;num++ ...

  2. JS 数组的常用方法详解归纳之改变原数组方法

    shift() 把数组的第一个元素从其中删除,并返回第一个元素的值, 如果数组是空的,那么 shift() 方法将不进行任何操作,返回 undefined 值.请注意,该方法不创建新数组,而是直接修改 ...

  3. linux服务器上安装mysql

    mysql版本:mysql-5.6.44-linux-glibc2.12-x86_64.tar linux操作系统和版本信息: 1.检查linux服务器上是否已安全mysql [root@localh ...

  4. 环境变量和Path环境变量

    环境变量 百度百科下的定义 一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等. 环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所 ...

  5. 小a的轰炸游戏(差分,前缀和)

    题目传送门 题意: 给出一个n*m的矩形,然后有两个操作. 1操作,对一个给出的菱形,对菱形范围内的东西进行+1. 2操作,对一个上半菱形的区域,进行+1操作. 最后求矩形内各个数的异或和. 思路: ...

  6. 关于ES6的新特性

    1  let声明变量 01    let声明的变量,不可重复声明,比如 let   a=1  : let   a=2 :这样申明会报错 02    let声明的变量,有块级作用域,比如  if( ){ ...

  7. 关于session的记录

    在做DRP项目中的修改密码功能时,在JSP中先获取了之前登陆时设置的session中的用户账号,在调试的时候一直只是刷新页面,而没有重启页面,导致AJAX一直传输到相应的servlet失败,出现404 ...

  8. dockerfile制作笔记

    dockerfile语法格式:   FROM: 基础镜像(就是在什么镜像上面做)   MAINTAINER: 镜像创建者信息(作者的信息)   EXPOSE: 开放的端口   ENV: 设置变量   ...

  9. qthread线程

    一般调用quit()函数之后可以紧接着调用wait()函数确保线程退出.sleep()等让线程休眠的函数不需要调用,因为Qt中线程是事件驱动机制.但是如果是继承的QTHread类,在run()函数中使 ...

  10. 【学习】020 Redis

    Java缓存机制 Java中要用到缓存的地方很多,首当其冲的就是持久层缓存,针对持久层谈一下:  要实现java缓存有很多种方式,最简单的无非就是static HashMap,这个显然是基于内存缓存, ...