Perl还是Python或者R
Posted 同源基因
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Perl还是Python或者R相关的知识,希望对你有一定的参考价值。
编者按
从事生物信息工作,至少要一门编程语言,那么到底该选择哪门编程语言呢?已经记不清被多少次问这个问题了,作为同时对这三门语言了解一二三四五六七八九十的人,今天我就来说一下自己的看法。
我曾经一直在纠结,高圆圆,刘诗诗,范冰冰这三人我到底该选择谁呢,后来结果大家都知道了,现在李冰冰也不剩下了,在纠结下去恐怕连萨顶顶都没了。当然,这只是个玩笑,告诉大家不要太纠结,选择越多反而越犹豫了。
吾尝终日而思矣,不如须臾之所学也。
对于该选择学习哪么语言,我的答案就是:都学习就完了,根本不用取舍。
这看上去很不可思议。但事实上就是这样,我见过非常多的人同时精通Python,Perl,R,甚至java,C等。这其实是非常合理的,掌握的知识越多,学习新知识越容易。当知识点累积到一定阶段之后,就好像被打通了任督二脉,一通百通,学习什么编程语言都不难了。而且这三门语言其实并不是相互矛盾的,而恰恰相反,他们是相辅相成的,精通一门之后在学习其他语言事半功倍。如果你精通python,我相信你一周之内肯定能精通perl语言。
假如我们把文本处理比作语文,科学计算比喻成数学,数据可视化比喻成绘画三门学科。
语文成绩:Perl > Python > R
数学成绩:R > Python > Perl
绘画成绩:R > Python > Perl
另外,Perl根植于Linux shell,可以与shell进行很好的配合,比shell编程要更强大,可以替代shell完成很多自动化和批量化的操作。
Perl擅长文本处理,但是并不擅长科学计算。
Python:
Python显然比Perl更强大,除了可以处理纯文本文件,还可以通过numpy,scipy等重要的包进行科学计算,利用matplotlib进行绘图。Python是大数据挖掘中的优等生,没有明显的短板,可以完成数据挖掘整个环节。从数据抓取,数据清洗过滤,数据统计,数据挖掘,数据可视化等都可以操作。如果想要只精通一门语言,显然python是首选。除此之外,python还可以用于编写桌面应用程序,比如音乐播放器,视频播放器等,这并不是perl擅长的,而R是几乎完成不了的任务。
作为Google的官方语音,而且随着数据科学的发展,Python现在越来越流行。前段时间看一个小广告,面向12岁以上小朋友培训Python语言。想想自己12岁时还是追风少年(像风一样自由),如果12岁就会了Python,是不是1999年也开发出了Google,越想越遗憾。
Perl的设计者为拉里·沃尔(Larry Wall)是一名语言学家,而pythoh的作者是Guido van Rossum,是一名数学家。虽然二者都能完成同样的工作,但是语言风格上却有非常大的差别,Perl是艺术性的而python是富有逻辑性的。
Perl的哲学是:
There's More Than One Way To Do It。
Python中的哲学是:
There should be one-- and preferably only one --obvious way to do it.
所以,perl的语法更自由,可以随便写,perl程序里,有各种各样奇特甚至说奇葩的操作符,这些操作符往往能非常高效解决问题,所以,perl的程序一般看起来非常乱,天马行空,因为解决问题方法不止一种。而python则追求优雅,python的程序看起来非常整洁,语法简洁,格式工整,严格限制空白,便于阅读。因此,选择哪种就看个人喜好了。
R:严格来说R是统计软件,并不是一门编程语言。R的作者之一Robert Gentleman,是生物学家,为了做生物统计,开发了R软件。作为统计软件,R具备了统计学软件几乎所有的功能,数学统计,数据挖掘,数据可视化。与Perl刚好相反,R擅长处理结构化的数据,也就是整齐的表格,一般利用Perl进行前期数据整理,整理成统计表,导入R中进行计算和分析,可视化。从这个角度来说,可以认为Perl+R≈Python。但是目前来看,R的统计和绘图功能要强于python,R具有更多的统计扩展包,使用起来也更方便。例如基因差异表达分析,将数据导入R中,只需要一个函数DEseq()就能完成计算,非常的强大。我们说R不擅长处理非结构化数据,并不是说R不能处理,其实R也支持正则表达式,但是处理起来比较麻烦,所以,各司其职,物尽其用,
决定你能力的并不是你选择学习哪门语言,而是你学习的怎么样。
---------- END ----------
(添加作者微信,备注好单位+姓名)
以上是关于Perl还是Python或者R的主要内容,如果未能解决你的问题,请参考以下文章