The fear of the LORD is the beginning of knowledge; fools despise wisdom and instruction.(PROVERBS 1:7)

敬畏耶和华是知识的开端,愚妄人藐视智慧和训诲。

关于Python的故事

如同学习任何一种自然语言比如英语、或者其它编程语言比如汇编一样,总要说一说有关这种语言的事情,有的可能就是八卦,越八卦的越容易传播。当然,以下的所有说法中,难免充满了自恋,因为你看不到说Python的坏话。这也好理解,如果要挑缺点是比较容易的事情,但是找优点,不管是对人还是对其它事物,都是困难的。这也许是人的劣根之所在吧,喜欢挑别人的刺儿,从而彰显自己在那方面高于对方。特别是在我们这个麻将文化充斥的神奇地方,更多了。

废话少说点(已经不少了),进入有关Python的话题。

Python的昨天今天和明天

这个题目有点大了,似乎回顾过去、考察现在、张望未来,都是那些掌握方向的大人物(司机吗?)做的。那就让我们每个人都成为大人物吧。因为如果不回顾一下历史,似乎无法满足学习者的好奇心;如果不考察一下现在,学习者不放心(担心学了之后没有什么用途);如果不张望一下未来,怎么能吸引(也算是一种忽悠吧)学习者或者未来的开发者呢?

Python的历史

Python的创始人为吉多·范罗苏姆(Guido van Rossum)。关于这个人开发这种语言的过程,很多资料里面都要记录下面的故事:

1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。之所以选中Python作为程序的名字,是因为他是一个蒙提·派森的飞行马戏团的爱好者。ABC是由吉多参加设计的一种教学语言。就吉多本人看来,ABC这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,吉多认为是非开放造成的。吉多决心在Python中避免这一错误,并取得了非常好的效果,完美结合了C和其他一些语言。

这个故事我是从维基百科里面直接复制过来的,很多讲Python历史的资料里面,也都转载这段。但是,在我来看,这段故事有点忽悠人的味道。其实,上面这段中提到的,吉多为了打发时间而决定开发Python的说法,来自他自己的这样一段自述:

Over six years ago, in December 1989, I was looking for a "hobby" programming project that would keep me occupied during the week around Christmas. My office (a government-run research lab in Amsterdam) would be closed, but I had a home computer, and not much else on my hands. I decided to write an interpreter for the new scripting language I had been thinking about lately: a descendant of ABC that would appeal to Unix/C hackers. I chose Python as a working title for the project, being in a slightly irreverent mood (and a big fan of Monty Python's Flying Circus).(原文地址:https://www.python.org/doc/essays/foreword/)

首先,必须承认,这个哥们儿是一个牛人,非常牛的人。此处献上我的崇拜。

其次,读者千万别认为Python就是一个随随便便就做出来的东西,就是一个牛人一冲动搞出来的东西。人家也是站在巨人的肩膀上的。

第三,牛人在成功之后,往往把奋斗的过程描绘的比较简单,或者是谦虚?或者是让人听起来他更牛?反正,我们看最后结果的时候,很难感受过程中的酸甜苦辣。

不管怎么样,牛人在那时刻开始创立了Python,而且,他更牛的在于具有现代化的思维:开放。通过Python社区,吸引来自世界各地的开发者,参与Python的建设。在这里,请读者一定要联想到Linux和它的创始人芬兰人林纳斯·托瓦兹。两者都秉承“开放”思想,得到了来自世界各地开发者和应用者的欢呼和尊敬。也请大家再联想到另外一个在另外领域秉承开放思想的人——邓小平先生,他让一个封闭的破旧老水车有了更新。

Python的现在

应该说Python现在表现不错。除了在Web开发方面有很多应用之外(当然PHP在这方面也是很不错),在数据分析、机器学习、大数据、云计算等这些时髦的领域,都有它的身影,并且影响力越来越大了。此外,还有自动化运维、自动化测试。

读者可以到这个网站看一看Python的应用案例:https://www.python.org/about/success/

不过,因为赵国大学教育的问题,致使很多青年才俊对Python了解甚少;更因为赵国的功利化优良传统,青年才俊们最大担心的是学了Python——这种学校老师很少甚至从没有提及的怪东西——没有什么用途,因为才俊们已经通过铺天盖地的广告了解到android、iOS开发,于是就认为“软件开发==Android or iOS”,其它都过时了——最希望才俊能够跳出四角天空,用自己的头脑思考、用自己的眼睛看世界,形成独立的判断,不要听信广告——也包括我这里的各种对Python的溢美之词。

Python的未来

这个不需要描述,它的未来在所有使用者和学习者手中。

优雅的Python

Python号称是优雅的。但是这种说法仁者见仁智者见智。比如经常听到大师们说“数学美”,是不是谁都能体验到呢?不见得吧。

所以,是不是优雅,是不是简单,是不是明确,只有“谁用谁知道”,只有内行人才能理解。

不过,我特别喜欢下面这句话:人生苦短,我用Python。意思就是说,Python能够提高开发效率,让你短暂的人生能够除了工作之外,还有更多的时间休息、娱乐或者别的什么。

或许有的人不相信,那就比较一下吧。

跟别的语言比较

“如果你遇到的问题无法用Python解决,这个问题也不能用别的语言解决。”——这是我向一些徘徊在Python之外的人常说的,是不是有点夸张了呢?

最近看到了一篇文章,《如果编程语言是女人》,我转载如下(考虑到篇幅所限,所了适当删改,要阅读非删减版,请通过连接查看原文):

PHP是你的豆蔻年华的心上人,她是情窦初开的你今年夏天傻乎乎的追求的目标。玩一玩可以,但千万不要投入过深,因为这个女孩有严重的问题。

Ruby是脚本家族中一个非常漂亮的孩子。第一眼看她,你的心魄就会被她的美丽摄走。她还很有有趣。起初她看起来有点慢,不怎么稳定,但近些年来她已经成熟了很多。

Python 是Ruby的一个更懂事的姐姐。她优雅,新潮,成熟。她也许太过优秀。很多小伙都会说“嘿,兄弟,你怎么可能不爱上Python呢!?”。没错,你喜欢Python。你把她当成了一个脾气和浪漫都退烧了的Ruby。

Java是一个事业成功的女人。很多在她手下干过的人都感觉她的能力跟她的地位并不般配,她更多的是通过技巧打动了中层管理人员。你也许会认为她是很有智慧的人,你愿意跟随她。但你要准备好在数年里不断的听到“你用错了接口,你遗漏了一个分号”这样的责备。

C++ 是Java的表姐。她在很多地方跟Java类似,不同的是她成长于一个天真的年代,不认为需要使用“保护措施”。当然,“保护措施”是指自动内存管理。你以为我指的是什么?

C 是C++的妈妈。对一些头发花白的老程序员说起这个名称,会让他们眼睛一亮,产生无限回忆。

Objective C C语言家族的另外一个成员。她加入了一个奇怪的教会,不愿意和任何教会之外的人约会。

虽然是娱乐,或许有争议,权当参考吧。

所以,Python值得拥有。

在正式开始学习之前,首先要告诉你成为Python高手的秘诀。

The Zen of Python

这就是著名的《Python之禅》。

Beautiful is better than ugly.

Explicit is better than implicit.

Simple is better than complex.

Complex is better than complicated.

Flat is better than nested.

Sparse is better than dense.

Readability counts.

Special cases aren't special enough to break the rules.

Although practicality beats purity.

Errors should never pass silently.

Unless explicitly silenced.

In the face of ambiguity, refuse the temptation to guess.

There should be one-- and preferably only one --obvious way to do it.

Although that way may not be obvious at first unless you're Dutch.

Now is better than never.

Although never is often better than right now.

If the implementation is hard to explain, it's a bad idea.

If the implementation is easy to explain, it may be a good idea.

Namespaces are one honking great idea -- let's do more of those!

“吃水不忘挖井人”,谁创造了Python,我们一定要感恩并崇拜。

感谢Guido van Rossum

Guido van Rossum 是值得所有pythoner感谢和尊重的,因为他发明了这个优雅的编程语言。他发明python的过程是那么让人称赞和惊叹,显示出牛人的风采。

Python已经让人心动了。除了心动,还要行动;只有行动,才能“从小工到专家”。


总目录 | 下节:从小工到专家

results matching ""

    No results matching ""