编程杂谈 - 我为什么选择 Python
文章目录
从第一次接触代码到现在断断续续也算是写了快12年代码了。接触过的编程语言从开始的Basic,Pascal,到后来的C,C++,JAVA,再到现在选择Python做为自己的主要工作语言。对于我自身整体需求的改变也从模糊逐渐变得清晰。
述说某种语言的好坏在程序员的圈子中是大忌,极有可能引发激烈的争论。就像vim和emacs的常年党争,在论坛中引得一番激烈讨论。所以,我还是声明一下比较好,本篇文章仅仅是记录一下这些年来自己和周围的一些变化,以期能带给后来的同志们一些有意义的参考。
当然,不能忘记的是:
php是世界上最好的编程语言
php是世界上最好的编程语言
php是世界上最好的编程语言
重要的事情说三遍 ^__^
最早开始系统的学习编程和写代码是从初中开始的,遥想当年的编程环境也是感人,用着机房万年不换的机器,在 Win95 的机器上做着不明所以的题目。可能这就是我最初对编程的概念,既不理解也不深入。那为啥要学呢?其实也是受 CCTV7 频道(没错,就是给我们讲解如何用真理说服人的农业军事频道)的一档编程教学节目的影响,对编程这件事情产生了莫名的好感,具体的节目名字现在已经忘记了,也不知道节目中的老师和三位同学目前在何处高就。不过这档节目给我留下的印象可是相当深刻,看着满屏的Basic代码,要是没记错的应该叫 QBasic,外加绚烂多彩(以当时的视角来看)的实现效果,简直是不能更高大上了。所以初中三年级的时候,学校那边要组织一个队伍去参加地区的 NOIP 比赛,我也就顾不上快中考了这件事,直接报名参加了。学习的编程语言是Pascal,这个名字在我工作后和一些IT公司的从业人员交流的时候,甚至有些人是不知道的。看来这东东是有些古老了,不过 Pascal 还是有其特点的。那就是非常严格的格式要求,以及非常清晰的定义,甚至过程和函数都是独立的两个东西。而且在后来学习其他编程语言之后,发现 Pascal 在当时的条件下,作为学习和教学的语言还真是合适。清晰的结构,简单的逻辑过程,用来上课真是再合适不过了。就这样 Pascal 伴随我直到高中毕业。
上大学时,我最终选了生物科学方向(毕竟,21世纪是生物科学的世纪【惨笑】),同时也选修了 C/C++/Java 什么的,学校开设的所有和编程有关的公选课我都选了,有时候还会去计算机学院蹭课。不过这也就处于一种学过,刚刚会用的状态,随着三年级要进实验室,也就没再有更多的接触(毕竟实验狗伤不起)。当然,不出所料的,作为手残党,生物实验快把我做吐了,最后义无反顾的走上了生物信息的道路。开始做生物信息之后,也终于为了解决实际问题来开始写代码了。这期间,我确实有一些自己的迷茫,也陷入了什么语言才是高大上的语言这种奇怪的争论之中,我到底是该选 C,C++,Java 还是 Perl 作为主要的工作语言呢?C 大牛写出来的工具真是优美,C++ 要是全学会了岂不是逼格甚高,Java 真是挣钱吃饭的好家伙,Perl…算了不说 Perl 了。
工作上有迷茫,那么生活中可定会找到精力集中的娱乐。所以那段时间我开始花时间在EVE的游玩中。不过就是这次不算是沉迷网游的沉迷,让我和 Python 有了第一次接触,玩过 EVE 的可能知道 EVE 里面的战舰很多,武器也很多,武器需要耗电,而且武器和战舰都很耗费资源,所以大家在生产新舰的时候都喜欢先搭配一下看看最终效果到底如何。有这么一款工具(EVE fitting tool)就是做这件事的。这个工具就是爱好者用 Python 写的,我在朋友的指导下也开始自己配置这个工具,当我看到里面的代码的时候,我被这种不需要分号换行的语言和漂亮的结构吸引了。再后来 EVE 就被我抛到一边了,还是 Python 好玩儿,就这样,我一点点开始了 Python 的使用和研究。许多在其他 native language 需要很复杂的实现,在 Python 中往往都能很快搞定,而且效率还不错。当时来看,也算是 Python 神教的坚定支持者了。后来,看的书多了,接触到的技术和优秀的文章也渐渐多了起来,哪种语言好这种问题也就渐渐不去想了,毕竟语言只是工具,只要在合适的问题中选择合适的工具来解决就好。如果解决某些问题用 Excel 最方便,那还费力请出R或者SPSS岂不是是大材小用。
至于,我为什么选择用 Python 作为我的日常工作语言,主要是从以下三点出发:
其一,简洁的语法特性,不存在非常难以理解的语言编写方式。这点倒不是给书写提供了多少便利,主要是现在的工作中互相交换代码进行改进的需要有很多,所以自己所写的代码,在提供了足够的注释后,能方便别人把代码读懂很重要,这点上Python这个语言做的很好。
其二,丰富的扩展模块,pip 安装轻松惬意,有丰富的轮子供大家选用,不用自己重复造轮子。
其三,快速实现性。由于 Python 语言简洁清晰的语法特性以及丰富的自身功能,在实现想法设计的时候有着其他编程语言所不及的优势就是实现快。这在现在工作思路设计迭代速度迅速的情况下是非常重要的特点。
以上这些就是我为什么选择 Python 作为主要的工作语言的原因。