赞
踩
【编者注】贵哥,汇智动力联合创始人,18年软件开发、测试、项目管理经验,曾任职于中国移动研究院,深圳卓望等企业,担任超200人的项目经理。拥有美国项目管理协会认证资格PMP、ISTQB/CSTQB认证讲师,担任成都大学、四川师范大学外聘技术专家。曾为中国移动、中安网脉、顺丰集团、江苏润和、中原银行等知名企业提供内训、性能项目实施等服务,出版高校定制性能测试材料《软件测试项目实战之性能测试篇》。
贵哥作为一个多年在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语言非常干净,设计优雅,具有出色的模块化特性。其最出色的地方在于,鼓励清晰易读的代码,特别适合以渐进开发的方式构造项目”。最后奉上Python创始人“Guido von Rossum”,俗称龟叔,靓照一张。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。