`

我与python的故事

阅读更多

Python的历史大概从90年代初开始, 不过当时在中国知道这个名字的人我猜测可能很少。 而我知道这个名字的时候已经是2004年初了。当时我回国过年,年后去广州办事,偶一日因为等人无聊于是跑到天河的一间书店看书。我翻过的其中一本书是蔡学镛的<<java夜未眠>>,在比较靠后的某一章提到Python. 他的comment: 易学易用,功能强大,国外很多人使用.

当时我不免觉得奇怪, 依稀记得在我们所里看到过的几种语言中没发现这个名字。我们所是做数值计算的.主要用 Fortran(77), C/C++, TCL 还有一种说不出名字的脚本语言。 过几天,我回英国了,回去后我询问了一下同事, "你们听说过这种语言么?” 我抽样了5个人,其中只有一个知道,他是搞图像处理的对python的评价颇高。 不过当时我忙于论文的事情,到结束后没多久就回国了,“学一下python"这个念头自然很快消失了.

 

我回国的第一份工作是做单片机在汽车电子的应用, 应用领域主要是C51和Dos, 使用环境基本上和python不搭界. 05年上半年曾经看过一下 Learning in Python, 不过因为找不到什么可用的地方 看下去就没什么劲头。看了两章就算了.

到了下半年,事情有了一些转机,公司要开始搞些信息化的管理之类的事物,需要有某些人来处理此类流程和开发一些应用。

当时无人可选,经理于是把我调过去做这类事情 他给领导的理由是”此人以前学财务会计,研究生学过应数,应该逻辑思维

比较强,比那些搞电子的好些“。 领导居然也同意了。

 

我只有1个人,要做的事情很多,于是我想找一个能rapid-development的工具,至少能rapid-prototyping的冬冬。我评估了一下我会的语言 c/c++, java都不怎么符合这个要求。勉强符合的delphi却又提不起兴趣去用。 又一次,我想到了python。我在emule下了几本书.python in a nutshell, python in win32, programming python等。 因为我需要做的事情和其他win32下的应用有密切的交互性,扫了几眼python in win32后觉得这个东西应该就是我所寻找的.

 

不得不说 learning by doing是学习新语言的比较好的方式,我不到4天的时间把learning in python看完了,然后开始进行使用..... 

 

从06年到08年我离开的时候,我大致用python开发了3-4个应用包括一些比较复杂的生产控制的应用。

 

我个人对python的感受:

我觉得使用python进行开发是件很美好的事情。有一次我同学问我为什么使用这个语言。我回答是我看这个东西比较顺眼,而且我觉得在idle下面敲代码给我一种赏心悦目的感觉。 开源的那个eric说过"一种语言能缩短你思考和敲打键盘的时间间隔就是一门好的语言“ 我和他的感受一样 基本上可以做到和思维同步. 虽然我没怎么用过python的高级特性,很多时候我只是把它当作一种simplified c++来使用, 但是这已经缩短了很多很多时间.

 

python有足够多的库作为选择,而且作extension因为swig的存在也变得很直观。我使用的开发环境也远比用其他简单的多, 只有一个idle, 偶尔开pythonwin看it的com browser.  需要查函数,只需要在shell 打 import xxx, dir(xxx) 看看即可. 对比使用netbeans, vs2005的感受大是不同。

 

python不是pure OO language, 不过我也不是一个OO的fans, 我也不认为OO在任何时候都是解决问题的合理手段, dirty and lazy几乎是人的本性之一, 没有什么不好.

 

python的运行环境的宽度令我惊讶. 我写的生产运营系统需要在一台celeron 550, ram 128m win98下使用 在06年的时候,这种机器估计也只能卖个2,300。 任何.net java jvm based 的程序在这种机器运行和自虐无甚区别。真正能有用武之地的怕是delphi了. 不过令我意外的是 那套系统运行的很好,我目测估计大约比delphi写的慢25%左右。除了在计算产品配置这种较为极端的运算才会延迟. 这个事件一改我认为python十分慢的印象。 它是十分慢,不过不是非常慢.

 

python我抱怨的地方不多 一个是indention问题,在某些自作主张的编辑器里面的python代码会变得不可思议。正确理解和使用tab居然变成一件头等的大事.python的thread又是另外一个问题. GIL使multi-core 变得毫无用处。幸好 pyprocessing的出现某种程度alleviate了这种麻烦。

 

毫无疑问,我和python的故事仍然会继续下去,至少目前我看不出为什么要抛弃它的理由. 这是一种很有趣,很handy的语言。套用一句流行语 "very good very strong"

 

 

 

 

分享到:
评论

相关推荐

    与python一路走来

    从最初的好奇心驱动,到面对种种技术挑战,再到最终取得成功的故事,不仅展现了Python语言的强大功能,也体现了作者在技术探索道路上的不懈努力。对于那些正在或即将踏入Python领域的开发者而言,这些经验无疑具有...

    python入门基础教程

    该书以教材与指南的形式,详细地介绍了Python的基础知识,让即使仅了解如何保存文本文件的电脑初学者也能读懂并运用。本书的第一版由沈洁元于2005年引进中国,并完成了全本翻译,命名为《简明Python教程》。2017年,...

    python数据采集与分析

    在IT行业中,Python语言因其简洁明了的语法和强大的库支持,已经成为数据采集与分析的首选工具。本主题将深入探讨“Python...通过深入学习和实践,你将能够运用Python解决复杂的数据问题,揭示隐藏在数据背后的故事。

    嵩天-python数据分析与展示-课件-代码

    【Python数据分析与展示】是IT领域中一个热门且实用的主题,尤其对于数据科学家、分析师以及对数据感兴趣的初学者而言。嵩天,作为一个知名的讲师,以其深入浅出的教学风格深受学员喜爱。这个压缩包包含了他关于...

    python数据分析与科学计算可视化

    Python数据分析与科学计算可视化是现代数据科学领域中的重要工具,尤其在金融、市场研究、社会科学以及许多其他行业的量化分析中发挥着关键作用。Python语言以其易读性、丰富的库支持和强大的社区支持,成为了数据...

    Python数据分析与可视化

    Python数据分析与可视化是现代数据科学领域中的核心技能之一,它结合了编程语言的强大功能和直观的数据处理工具,为数据的探索、理解与呈现提供了高效的方法。在这个专题中,我们将深入探讨Python在数据分析和可视化...

    Head First Python中文版 高清 PDF版

    《Head First Python中文版》是针对初学者设计的一本Python编程教材,以其独特的Head First学习风格,通过丰富的图像、故事和游戏,使复杂的编程概念变得易于理解。这本书旨在帮助读者快速掌握Python语言的基础,并...

    千锋python基础视频下载地址大全.pdf

    通过Chrome控制台和API接口,开发者可以获取并处理评论数据,生成词云图,揭示歌曲背后的情感和故事。 Python在大数据和网站开发中也扮演着核心角色。许多知名网站,如知乎和豆瓣,都是用Python构建的。随着Python ...

    Python中的爱心与故事:创建交互式故事讲述平台

    使用Python,我们可以创建一个交互式故事讲述平台,其中融入爱心图案,增加情感元素和视觉吸引力。这种平台可以用于教育、娱乐或作为独特的礼物。 通过结合Python的GUI开发和绘图能力,我们成功创建了一个交互式故事...

    Python数据分析与应用第三章实训2

    在本实践项目“Python数据分析与应用第三章实训2”中,我们将深入探讨Python在数据分析领域的应用,特别是基于黄红梅和张良均合著的《python数据分析与应用》一书。这个实训主要聚焦于使用Python的库进行数据处理、...

    python高性能

    #### 二、Python性能瓶颈定位与优化 - **理解Python底层架构:** 本书首先介绍了Python是如何抽象计算机硬件架构的,这对于理解程序运行机制至关重要。 - **性能瓶颈检测:** 通过使用性能分析工具(如profiler)来...

    设计模式23种的Python实现。

    设计模式 23的 Python实现 代码用Python 3.6实现。 设计模式 23的 Python实现 代码用Python 3.6实现。 设计模式 23的 Python实现 代码用Python 3.6实现。

    python安装包、教程

    Head First系列以其独特的教学风格闻名,它通过图像、故事和游戏化的方式使学习过程更有趣且易于理解。这本书会引导你从零开始学习Python,包括变量、条件语句、循环、类和对象等核心概念,并逐步教你如何创建实际的...

    python 中文版手册 chm

    7. **生成器和迭代器**:讲解生成器函数和迭代器对象的创建与使用,以及yield关键字的作用。 8. **装饰器**:装饰器的定义和应用,以及如何使用@符号来简化代码。 9. **上下文管理器**:介绍with语句和上下文管理...

    Python可视化_爬虫可视化_python爬虫_python教程_python_

    数据故事讲述**:有效的数据可视化不仅仅是图表的堆砌,而是要能够讲好一个数据背后的故事,帮助观众理解并记住关键信息。 **10. 实战应用**:Python可视化可以广泛应用于数据分析、机器学习模型解释、科学出版、...

    韩信点兵python程序代码

    总的来说,"韩信点兵python程序代码"是一个结合了中国古代数学问题与现代编程技术的实例,它展示了如何利用Python的算术运算符和循环结构来解决复杂数学问题。通过对这个问题的深入研究,不仅可以提升我们的Python...

    《Python编程》源代码文件.rar

    Seaborn库则在此基础上提供更高级的统计图形,如热力图、联合分布图等,增强了数据的故事讲述能力。对于复杂的数据交互,Bokeh和Plotly库提供了交互式图表,适合在Web应用中展示。 在数据采集领域,Python的...

    ALL in python学习PPT

    根据给定的文件信息,我们可以总结出以下与Python学习相关的知识点: ### 一、Python语言生态系统(LanguageEcoSystem) #### 1. 编程语言发展时间轴 - **2015年**:在此阶段,Python语言已经在多个领域内得到了广泛...

    Python-videodigest自动视频摘要

    6. **应用与扩展**:Python-videodigest不仅可以用于个人视频管理,还可以应用于新闻剪辑、在线教育、电影预告片制作等领域。此外,开发者可以根据需求对其进行定制和扩展,比如引入深度学习模型进行更智能的摘要...

Global site tag (gtag.js) - Google Analytics