今天是大年初七,是上班的第一天,也是汇智动力年后开课的第一天,我们有幸请到忙碌的赵福贵老师为我们介绍一下计算机语言中的python语言,这个被程序员们戏称“人生苦短,我用Python”的语言到底有何魔力!

福贵哥作为一个多年在IT界摸爬滚打的老兵,因项目需要,在工作过程中使用过多种计算机语言,也一直关注着计算机语言的发展和变化。无论是开发人员还是测试人员,掌握一两门主流语言,都是必须的。这计算机语言可是我们IT屌丝的屠龙刀、倚天剑,更是找老婆、养家糊口、升职加薪的必备利器。语言不熟,根本就没法在这个圈子里生存和发展,足见计算机语言对于程序猿们来说,何等重要!

先容福贵哥用那么一丢丢版面介绍下自己的计算机语言使用史,咋和Python语言结缘的。最早出道使用的是Dephi和C++语言,因为项目开发使用的C++语言,所以当时做单元测试需要使用这门语言,但是福贵哥对当时的Dephi语言还是有着满满的激情啊!

Dephi作为一门快速开发的语言,开发界面程序简单、高效,用起来真的是灰常灰常的安逸呢!2005年左右公司开发平台调整为Java,所以又忙着到处找资料,看开发人员项目代码学习Java语言。学了一阵子对Java语言没啥好感(请原谅我当时的年少无知),估计是因为用习惯了Dephi,感觉Java语言开发界面程序真滴是又慢又丑陋,用起来很不爽。

后来偶然接触到了C#语言,顿时被C#吸引到了,强大的颜值,超高的Visual Studio IDE(按现在的话讲就是十足的颜值控啊,哈哈),快速的开发能力,写软件测试工具快,界面随便拖拖就出来了,程序界面也好看得很,后边涉及到界面的开发就都使用C#了。

直到2008年,我们测试总监给了我一个艰巨任务,让我写一些服务器、模拟器和接口自动化测试框架,听了任务之后,当时心里默默地问候了下我的总监。当时我觉得,要么是领导很重视我,要么是要我走人啊!

信念

福贵哥工作以来一直有一个信念,就是只要努力没有完不成的任务,不管领导啥心思,必须要把任务搞定!于是开始研究、找资料,当时的Google、Baidu、图书与之相关的内容真的是非常匮乏!没办法,后来去找了我们部门大牛老陈,老陈对我的技术提升真的是帮助很大的一个人。听了我的困难,老陈慢条斯理的跟我说,你可以考虑用Python去做,不难!“牌神”是什么东东,我就是“牌神”啊,昨晚还整到下半夜呢!老陈于是大概给我介绍了下“Python”和相关案例,我听了真的跟打了鸡血一样,一个是感叹我们的牛人老陈知道得多,另外是因为发现了一个新大陆。从此富贵哥就开始踏上了研究Python之路。

真是“皇天不负有心人”,很快我就使用Python 和Twisted框架实现了协议的封装和服务器的开发,使用“数据驱动”模式实现了接口自动化框架的程序研发。那感觉真是Perfect!从此与Python相恋,已不知Java、C#是谁?心中只有Python!

写这篇文章,我又翻了额(我)的大硬盘,找到当年写的代码,10多年了,古董啊!必须发出来给大家看看。

福贵哥就是讲信用的人,只用了上面一丢丢篇幅讲了下自己的语言使用史。嗯嗯,容我再补充两句!(此处应该有鸡蛋等礼品奉上)以上内容主要是给大家借鉴下,让年轻人多了解下历史,哈哈哈!

言归正传,计算机语言分为编译型语言和解释型语言。

编译型语言主要代表如:Java、C、C++、C#(Java和C#严格来说不能算纯粹的编译型语言),编译型语言具备语法严谨,速度快、灵活等特点。

解释型语言主要代表:Python、Ruby、Go等语言,解释型语言具备简单,开发高效等特点。但是解释型语言前些年,一直因为性能偏弱,开发灵活性差所受人诟病。随着近些年硬件条件的极大改善,解释型语言自身的不断完善,解释型语言终于实现了发展大跨越,一骑绝尘,成功上位。

计算机语言目前的格局简单概括一下就是:老兵老当益壮、新人异军突起。Tiobe公布了12月份的编程语言排行榜,传统老兵Java、C、C++、VB还是在前五强占据了四个席位。新人Python超越C++排名第三。

而在另外一份 PYPL 榜单上,Python 在今年 5 月以 22.8% 的份额,首次超越 Java占据榜首位置。随后几个月 Python 保持上涨趋势以 23.59% 的份额甩开 Java ,排名第一,正逐渐与 Java 拉开差距。最新榜单如下:

Python上位如此之快,得万千宠爱于一身,Why?Why?Why?为什么 Python 发展得这么快?

我们先来了解下Python语言的特点:

Ø 简单易学

Ø 免费、开源

Ø 面向对象

Ø 丰富的库

Ø 可扩展性强

Ø 移植性好

Python语言最突出的特点就是简单易学。

大学目前非计算机专业大多都是以C语言进行教学,C语言在企业里多用于底层研发,难度偏大,C语言课成了多少学子的噩梦。

简单

去年浙江省信息技术新教材,在2017年9月入学高中新生中开始使用Python语言,而且Python也在很多少儿编程中得到了应用,Python语言已经进入了少儿、初中高中阶段的学习内容,足以体现它简单易学的一面。所以强烈建议大学非计算机专业所学的计算机语言调整为Python,可以让大家在学习语言的同时感受其无穷的乐趣及魅力。

Python不仅简单易学,且非常强大。

Python有两个外号,分别为:“内置电池”,“胶水语言”。前者的意思是,Python官方本身提供了非常完善的标准代码库,包括针对网络编程、输入输出、文件系统、图形处理、数据库、文本处理等。代码库相当于已经编写完成打包供开发者使用的代码集合,程序员只需通过加载、调用等操作手段即可实现对库中函数、功能的利用,从而省去了自己编写大量代码的过程,让编程工作看起来更像是在“搭积木”。除了内置库,开源社区和独立开发者长期为Python贡献了丰富的第三方库,其数量远超其他主流编程语言,可见Python的语言生态已然相当壮大。

比如,完成同一个任务,C语言要写1000行代码,Java只需要写100行,而Python可能只要20行。言外之意,Python集成度更高,用时更少,就可以实现以前所实现的功能。

“胶水语言”是Python的另一个亮点。Python本身被设计成具有可扩展性,它提供了丰富的API和工具,以便开发者能够轻松使用包括C、C++等主流编程语言编写的模块来扩充程序。就像使用胶水一样把其他编程语言编写的模块粘合过来,让整个程序同时兼备其他语言的优点,起到了黏合剂的作用。

正是这种多面手的角色让Python近几年在开发者世界中名声鹊起,因为互联网与移动互联时代的需求量急速倍增,大量开发者亟需一种极速、敏捷的工具来助其处理与日俱增的工作,Python发展至今的形态正好满足了他们的愿望。

我之前写过的一些基于私有协议的Socket通信服务器模拟器,可以支持多线程的异步通信,也就几十行代码就搞定了,这是在之前难以想象的。另外早在2009年左右,我服务的公司就使用Python开发了一款游戏服务器,游戏服务器性能、稳定性非常的出色。一款语言,简单易学,开发效率如此之高,请问哪个程序员、哪个老板、哪个公司不爱呢?所以“人生苦短,我用Python”绝对不是一句戏言。

我们可以再看看Python语言应用的领域,目前Python主要应用方向:

1、常规软件的开发。Python支持函数式编程和OOP面向对象编程,因此常规的软件开发、脚本编写、网络编程等都属于标配能力。

2、桌面软件开发。Python结合PIL、Tkinter等图形库支持,可以轻松的进行图形处理、可视化的展示。

3、网站服务器开发。目前Python应用比较多的Django框架、Flask框架、Tornado框架用于网站服务器的开发。

4、数据爬虫开发。目前使用较多的是Requests、Scrapy等框架,进行遍历爬行网站、分解获取数据。

5、大数据分析、挖掘和深度学习。Python结合NumPy、Pandas、Matplotlib、statsmodels、scikit-learn、NLTK、TensorFlow等模块,进行数据清洗、数据分析、数据建模、机器学习等应用。数据分析特别在金融领域、电商领域应用非常成熟。

6、自动化运维。Python结合Paramiko、Fabric、Saltstack、Ansible、Func等模块实现自动化运维,提升系统维护效率。

7、软件测试应用。Python在软件测试领域常用于测试工具开发、自动化脚本编写、测试数据构造、软件渗透性测试等方面。

8、游戏服务器。很多游戏C++编写图形显示等高性能模块,而使用Python编写游戏的逻辑、服务器。Python编写的功能更简单、体积更小、开发效率更高。

9、云计算。目前很火的云计算框架OpenStack就是由Python开发的,如果想要深入学习并进行二次开发,就需要具备Python的技能。

以上是Python目前主要应用领域,Python简直就是“全群体、全领域、能上天、能入地、无所不能、无处不在……”的全能战士,总之一句话“矮油,看好你喔”。

人年龄大了,情到深处,话就多了起来,哈哈!今天就写这么多吧。我的老师教我写文章一定要多引用名人名言,否则没有说服力。还是要按常理出牌,最后援引开源运动的领袖人物Eric Raymond的一句话:“Python语言非常干净,设计优雅,具有出色的模块化特性。其最出色的地方在于,鼓励清晰易读的代码,特别适合以渐进开发的方式构造项目”。