热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

30周岁的Python,“虐”我20年

【CSDN编者按】30年前,吉多范罗苏姆正式对外公布Python代码,版本为0.9.0。巧的是,Python3.2.0恰好是20年之后发布

【CSDN 编者按】30 年前,吉多·范罗苏姆正式对外公布 Python 代码,版本为 0.9.0。巧的是,Python 3.2.0 恰好是 20 年之后发布的。

作者 | ZoomQuiet 大妈       责编 | 张红月

出品 | CSDN(ID:CSDNnews)

1991 年,吉多·范罗苏姆(Guido van Rossum)通过 alt.sources 新闻组向世界发布了 Python。并在 2月 20 日那天,发布了 Python 0.9 代码,代码地址:https://github.com/smontanaro/python-0.9.1。

如今,30 年过去了,Python 已成为最受欢迎的编程语言。在 TIOBE 编程语言排行榜中,Python 分别在 2007 年、2010 年、2018 年、2020年获得过年度编程语言的称号;此外,在 IEEE Spectrum 发布的 2020 年年度编程语言排行榜,Python 同样连续四年夺冠。

对于 Python 的火热,摒除业界一些资本的炒作,Python 成为主流并非没有原因,一方面,Python 与我们所熟知的人工智能、机器学习、数据分析与处理等领域的需求紧密相关;另一方面, 这或许也与 Python 被用作教育领域的教学编程语言有关。

Python 历年趋势图

在 Python 正式发布 30 年之际,CSDN 邀请了 Python 社区知名布道师ZoomQuiet 分享了他与 Python 相伴近 20 年的故事。

ZoomQuiet 是中国 Python 社区中最长情的贡献者, 从04年共同创建 CPyUG(中国Python用户组)以来,长年为 Pythonic 在中国的推广/实践进行各种尝试。

连续四届主持 PyCon 中国大会筹办,发起 Open.Book.Project 主持原创/翻译多本 Python 技术图书,是大家公认的 "大妈"(Zoom.Quiet)。

个人网站: zoomquiet.io

历年版本更新回顾

在笔者开始回顾之前,我们先来梳理一下 Python 起源及版本发布时间轴:

  • 1969 年,Monty Python 成立;

  • 1975 年,Monty Python and the Holy Grail/巨蟒与圣杯发行;

  • 1979 年,Life of Brian/万世魔星 发行;

  • 1987 年,ABC 语言发布;

  • 1989 年,Python 已经有了雏形;

  • 1991 年,Guido 发布 Python 0.9.0 ;

  • 1994 年,Python 1.0 正式发布;

  • 1999 年,Python 1.5 发布 ;

  • 2000 年,Python 2.0 发布, 不兼容 1.x;这一年,Python 之父 Guido 加入 Zope 公司;

  • 2001 年,中蟒/chinesepython.org 发布, 首款支持中文编程的通用语言

  • 2002 年,CZUG.org 发布;

  • 2003 年,Python 2.3 发布;PyCon.org 上线,首场 Python 大会在华盛顿召开,此后 PyConUS 每年一届;

  • 2004 年,啄木鸟 Python 技术社区成立 ;

  • 2005 年,Python 2.4 发布;Guido 进入 Google;CPUG/China Python User Group 成立;

  • 2006 年,Python 2.5 发布;

  • 2008 年,Python 2.6/Python 3000 发布;

  • 2009 年,Python 3.1 发布;

  • 2010 年,Python 2.7 发布;

  • 2011 年,Python 3.2 发布;PyCon 中国成功举办,至今已举办 10 届;同年 python-cn 邮件列表订阅人数超过一万;

  • 2012 年,Python 3.3 发布;Guido 离开 Google;

  • 2013 年,Guido 进入 Dropbox;

  • 2014 年,Python 3.4 发布;

  • 2015 年,Python 3.5 发布;

  • 2016 年,Python 3.6 发布;

  • 2018 年,Python 3.7 发布;

  • 2019 年,Python 3.8 发布。Python 语言项目正式宣布采用 12 个月的发布周期,此前Python 语言的发布周期是每一年半时间发布一个大更新版本;

  • 2020 年,Guido 宣布“退休失败”进入微软;

  • 2021 年,Python 3.9 发布;

  • ......

与 Python 的日子

1994 年,笔者开启大学计算机系学习生涯,而正式接触 Python 则是在 8 年后。当时网上有不少用户盛赞 Zope,而笔者发现 Zope 是基于 Python开发。为此,开始了 Python 的学习之旅。2003 年,实现自己首款 CLI 工具,天气消息器。

2004 年,笔者利用公司内网闲置 PC 机安装 RedHat 系统,发布了 mailman/邮件列表服务,以及 MoinMoin 维基系统提供给社区使用,并以此为契机获得 SINA 岗位,从上海北漂加入邮件技术部。此后,常以 BPUP/北京 Python 用户组名义开始定期组织参与线下技术交流,其中还有幸参与了 Python 初版文化杉“人生苦短,我用 Python”的设计与生产。

在 2007 年的 Google Developer Day 上和小伙伴们一起见到 Guido,笔者后来的新书 《可爱的 Python 》出版时,也邀请了 Guido 写了推荐序。期间,笔者组织社区进行一系列的图书创作活动。此外,还曾为金山大学设计 PythoniCamp/蟒营,2010年,将蟒营经历作为主题申报首届亚太 Python 年会/PyCon Asia Pacific,并代表中国去新加坡参会,同年还参与了 TEDx1kg 乡村巡讲,将 Python 的故事带去四川边远地区中小学分享。

2011年,中国 Python 开发者大会 PyCon 正式开启,与此同时,笔者正式加入组委会。2012年,蟒周刊正式开启,每周一次,并坚持至今。

以自然时间为轴回顾自己和 Python 相遇后发生的林林总总才发现:其实 Python 技术并不是人生关键,通过 Python 结识的人/推进的事儿才是关键。

收获与成长

最早在 SINA 时,  笔者用 CherryPy 开发的团队任务管理原型,被 Java 技术栈快速开发的原型击败,反而是用 PHP 开发的 CVS 仓库管理系统获得上线推广;后来用 Python 开发的 SEO 监察原型也只是部门内部原型。

到金山后, 以 Trac 为基础通过插件进行魔改的 KUP,金山统一过程平台,也随着集团调整消失在内部产品线中。被创业到猎豹后,独立开发的浏览器插件编辑器以及商城,也因为公司战略调整无声消失。

再次被创业后,独立开发的跨平台实时机器视觉数据分析系统,也因为创始人商务直觉失误,导致封存消失。

可以说,除了日常给自己用的小工具之外,所有在企业中自己用 Python 开发的工具/系统/服务/... 都消失在历史浪潮中了。

反而是为社区开发的各种实用服务/后台/工具一直在稳定运行:

比如:

  • Mailman 架设的邮件列表,成功运行了5年才被 Google groupd 替代

  • PlanetPlanet 聚合服务,已经默默运行6年了

  • 微信群消息提取器,也配合专用手机稳定使用了7年以上

  • MoinMoin 发布的维基,稳定运行了16年

  • ScrapBook 网页发布器,配合各种 CDN 空间或是自营主机, 稳定使用了16年

  • ……

在企业中经常一件事儿,做着做着就做没了,或是越做越小。

而在社区中, 总是一件事儿做着做着越做越大,越积累,越影响更多人。

正如 05 年在啄木鸟技术社区 wiki 中记载的:

我们的奋起宣言

  • 每天至少挤一刻钟,认真解答邮件列表/IRC/QQ群中初学者问题;

  • 每周至少挤两小时,整理自己的新学将成功或失败体验分享出来;   

  • 每旬至少挤四小时,翻译并分享自己喜爱的技术文档;

  • 每月至少挤出两天, 提交bug报告给开源社区;

  • 每季至少挤出一周, 快乐编程,推进自己或是他人的开源项目;

  • 每年至少参加一次, 宣传/推广 FLOSS 软件的活动,分享开源体验/自由软件思想。

只要每个有心人都能坚持下去,10年,就足以改变中国软件的生存环境。虽然, 16年过去了,中国软件工程师的生存环境并没什么改变,但是, 投身其中的自己是的确被改变了。

但行好事 莫问前程

这里的”好事“是第4声,是自己喜好的事儿,长期坚持下去,变成自己的生活习惯。慢慢的,内心那个目标才可能达到。

真正达成目标时,反而会感觉,这个达成的过程才是更加重要的。

在大学期间。和其它同学一样在 Windows 系统中学习了各种输入法,第一份论文用拼音输入法,用了两星期才输入了2万字。但随着社区事务的增加,高速进行文字交流越来越重要,虽然直接使用英文可以不依赖输入法,可并不是所有人都能流畅使用英文进行交流。

所以, 一直在犹豫到底应该在哪个输入法上加大投入?结果, 工业制图老师一句话解决了困惑:表形码好,最接近书写体验。心一定, 很快就可以盲打了。

随着日常桌面系统的变化,从 Windows 到 Ubuntu 到 macOS;从 Windows95se 版本中导出的表形码码表,一直伴随手边。输入速度也随着积累稳定了下来,从来没有成为阻碍。甚至于,在 Python 的帮助下, 一路完成了 Windows 码表到星际输入法的转换。在 Mac 平台上,又进一步转换为 rIME 码表,并编写了自己的码表编译工具,支持随时追加自定义词组。

Python 在不知不觉中,变成了日常万能小工具制造工厂。

展望

从 2012 年春节开始坚持翻译的蟒周刊,现在已经到了 460 期,每周一篇的节奏, 从来没断过。

原先只是自行发行的定期电子刊物,由国外一小组 Python 爱好者收集全球各种 Python 相关消息编撰而成。随着积累,慢慢形成了自己的风格,内容源,以及赞助商。变成了一个成熟的创业项目,跟随周刊了解到历年 Python 领域大小变化。整体上, Python 并没随着 Guido 的退休而停滞。

反而因为决策小组的确立,各种社区提案被加速决议,原先一年不一定有大版本发布。现在开始定期发布小版本,每年一个大版本,高速响应世界对 Python 的期待。

而随着黑洞照片合成,大数据/AI 的高速发展,Python 从一种前沿小众语言,变成大众常用语言。

现在自学 Python 可以随时搜索出, 比 20 年前多百万倍的资料,特别是视频资料, 越来越多的学习者通过 B 站教学视频入门 Python。

但是,却很难找到 20 年前那种可以集中讨论的社区场景了,聚集有各种行业各种水平,又都热情乐于分享的 Pythonista 们。好象从互联网中消失了,搜索出来的都是各种“Python 之父”们。

无论互联网怎么发展,Python 创立的 Pythonic 精神不会消失。通过 Python 聚集起来的开发者不会消失。我们总是能在各种场景中相遇,一起创造点儿有趣/有用/有种的好东西。

无论网络中学校中有多少种 Python 相关课程,都无法替代社区中平等/真诚交流的体验。

比如 2002 年,CZUG 社区就支持公司名”润普“和 Zope 的关系以及修改建议就”争吵“了半月,从一个命名不断扩展讨论范畴。通过此次交流,结识了不少对方辩友,Limodou , 也就是后来 UliEdit/UliWeb;李迎辉,神交两年多, 才在 BPUG 线下会课中得以当面交流,也成为后来 PyCon中国大会核心成员,头三年大会官网就是使用 UliWeb 发布的。各种神奇人物,都是在社区各种交流过程中,慢慢相互认可,长期讨论/磨合,先变成朋友,才在线下碰面的。真正对互联网有了真实世界的感觉。

而现在多数网络课程都承诺学会 Python 就能升职加薪之类; 这种目的性极强的暗示, 其实, 对于掌握 Python 并无多少帮助, 毕竟, 企业的职位升迁是各有其机制的, 并不可能因为是否会某类技术就提升; 只可能在证明了拥有一定层次的能力后,才可能达成。

而 Python 以及 Pythonic 精神衍生出的各种日常习惯, 可能才是其中的关键。回想当初自学 Python 时, 只是想获得一种比 PHP 更加自由的开发工具, 可以快速实现自己的想法。

如何证明自己学会了呢?

最好的姿势,只应该是拿出作品来。

当然, 参考那篇著名的 "如何成为一名黑客"作品, 并不一定是一个精妙的软件/系统/框架。也可以是一篇自学笔记。或是一组认真的单元测试,或是对应官方文档的中文翻译...

只要是能给3年前的自己提供切实帮助的, 都是作品。

那么, 什么是入门呢? 私人偏见是:

对任何具体问题,都有自信,将其分解为自己能力范畴以内的子问题序列

简单说, 就是有自信;对 Python 有充分自信,对自己的学习/实践能力有充分自信,可以在预期时间里, 调研/实验/检验/解决具体问题。

这种自信,只应该在持续的编程过程中积累出来,而 Python 积累了31年丰富强大的生态中,几乎在所有领域都有成熟解决方案,嘦我们有点儿耐心, 随时都可以搜索出来,上手应用起来。

真诚期望所有人,都有这种自信。

参考:

DM9:苦短衫的故事— 蟒营® 怂怼录:https://blog.101.camp/dm/190914-teestory/

关于 Python 语言的发展趋势,CSDN 也一直在关注中,不久前重磅推出的《 IT 人才成长路线图》,其中就包含 Python 语言初阶-中阶-高阶发展路线图及免费学习资源,读者可以基于自己需要,在公众号后台回复“Python”关键字可领取高清版本。

=推荐阅读=

点分享点收藏点点赞点在看


推荐阅读
  • Vue基础一、什么是Vue1.1概念Vue(读音vjuː,类似于view)是一套用于构建用户界面的渐进式JavaScript框架,与其它大型框架不 ... [详细]
  • Jmeter对RabbitMQ压力测试
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Jmeter对RabbitMQ压力测试相关的知识,希望对你有一定的参考价值。Jm ... [详细]
  • 电脑f5键是什么作用
    常见问题f5常见问题韩亚整形医院源码,vscode写前端代码,ubuntu低配,tomcat下载路径乱码,爬虫_gscu,php精粹pdf,广州快速seo优化排名,aspwap网站 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 本文介绍了Composer依赖管理的重要性及使用方法。对于现代语言而言,包管理器是标配,而Composer作为PHP的包管理器,解决了PEAR的问题,并且使用简单,方便提交自己的包。文章还提到了使用Composer能够避免各种include的问题,避免命名空间冲突,并且能够方便地安装升级扩展包。 ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • 本文介绍了如何在使用emacs时去掉ubuntu的alt键默认功能,并提供了相应的操作步骤和注意事项。 ... [详细]
  • 2021最新总结网易/腾讯/CVTE/字节面经分享(附答案解析)
    本文分享作者在2021年面试网易、腾讯、CVTE和字节等大型互联网企业的经历和问题,包括稳定性设计、数据库优化、分布式锁的设计等内容。同时提供了大厂最新面试真题笔记,并附带答案解析。 ... [详细]
  • Linux下部署Symfoy2对app/cache和app/logs目录的权限设置,symfoy2logs
    php教程|php手册xml文件php教程-php手册Linux下部署Symfoy2对appcache和applogs目录的权限设置,symfoy2logs黑色记事本源码,vsco ... [详细]
  • Oracle 和 mysql的9点区别【MySQL】
    数据库|mysql教程oracle,Oracle,money,mysql,coun数据库-mysql教程1.组函数用法规则mysql中组函数在select语句中可以随意使用,但在o ... [详细]
  • ORACLE空间管理实验5:块管理之ASSM下高水位的影响
    数据库|mysql教程ORACLE,空间,管理,实验,ASSM,下高,水位,影响,数据库-mysql教程易语言黑客软件源码,vscode左侧搜索,ubuntu怎么看上一页,ecs搭 ... [详细]
  • Php怎么编写乘法表
    后端开发|PHP问题php,乘法表后端开发-PHP问题传世登陆器源码,vscode设置字号,ubuntu系统创建不了文件,tomcat配置修改,sqlite怎么调中文,海洋采集插件 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有