在生物信息学领域,python和perl谁更强大、易用、代表着未来的发展方向?
程序员文章站
2022-05-28 19:09:03
...
回复内容:
泻药。- 首先我个人的主张是:python !
- 3年的生物信息应用开发和数据分析实践经历表明,我选择Python并在期间推荐周围的同事和朋友也尝试和选择python,是非常有益效率的,至少明显克服了以前perl的部分弊端。
- 空洞的语言之争在程序猿本是一个有违职业操守的行为,但放到某一个特殊场景也许有益新手也引发他人思考。 对生物信息而言,语言其实是一个次要问题,最重要的是建模和求解,而非工具选择;何况有些时候在使用别人的程序时是无法选择语言的。
- 谈点具体的:python代码本身比perl更易学易读易懂,这点基本没太大争议;而对于非一次性程序,尤其是pipeline类的,对“易改”有更高的要求,我们很不希望一个冗长的perl脚本在三个月后就看不懂。。。还有那些怪异符号对人的震慑感 >=
- 对于 bioXXX方面,其实大同小异,只是社区活跃度有所不同。至少我所见过和使用过的很多程序以及分析流程中,perl主要用于小脚本,python经常用于pipeline串联和某些分析方法实现等,R主要是统计和结果可视化(有 bioconductor),至于SVG的输出,则基本是语言无关的,看各自的喜好了。另一些web类的工具,或者workbench等,则基于java构建的也不在少数,比如solid的部分工具,CLC workbench,貌似是SWT ?等等。甚至Broad的IGV浏览器采用了java web start这种技术(较少见),或许它可以在下个版本考虑javaFX ?!
顺便推荐点老外们的讨论供参考:
-
http://biostar.stackexchange.com/questions/2742/perl-or-python-for-comparative-genomics
-
http://network.nature.com/groups/bioinformatics/forum/topics/1611
-
http://www.quora.com/Bioinformatics/How-did-Perl-start-off-as-the-dominant-language-in-bioinformatics
下面是一个不错的教程教授perl单行命令,学会受益匪浅。
http://www.catonmat.net/blog/introduction-to-perl-one-liners/ 赞同语言本身没有强弱之分,但总体来说python更强大,一方面有google在支持,使用的人多更活跃,另一方面python功能更丰富,可以做文本处理、统计分析,甚至作图,学一门就可以了,对于perl主要只能做文本处理,统计和作图还得再学R。 关于PERL和PYTHON之争,历史悠久。这里贴一下,看看我收集的,大家是怎么说的
关于生物信息的perl和Python的比较和争论由来已久,这里我仅给出几个链接:
做生物信息学:Python还是Perl?
功能强大而又简单易学的编程语言Python_有个博客
请高手指点:生物信息学应用,学perl还是学python更好?
为学生物信息的推荐Python
2013年我在China Unix 论坛的PERL和Python版,做了个对这个问题的调查,现在还有很多人参与,到2014底约200+150人参加,大家也可以参考一下:
Perl对Python 使用调查-Python-ChinaUnix.net Python版
Perl对Python 使用调查-Perl-ChinaUnix.net Perl版
Perl的接口就是一坨巨大的shi:它强迫你用PerlXS这种shi一样的语言写接口,而且API的命名也是一坨shi。随便看了下Python的接口写法,好像要干净得多。
===================
最近为了学习Python,用Python写了一个简单的代码生成器。感觉Python在构建日常脚本方面,与Perl相比还是有很多不方便的地方:
- labmda里只能有一个语句。对于稍微麻烦一点(但却没有那么麻烦)的排序、映射,就得单开函数,而不能直接放在此处。
- 正则表达式不如Perl易用。比如Perl可以简单地写成:
$foo =~ /Some(Reg)Exp/ or die "failed to parse foo for XXX";
my $wanted_part = $1;
用perl 做生信快10年了,至今没有发现有什么地方非换成python不可的,语言就是个工具,在于你运用,就像用PC还是MAC,熟练程度不同而已
语言是没有强弱的,不过Python可用的开源包以及更新频率可能要略快于Perl。另外我个人认为Python学习曲线比较平缓。至少我接触了好多年Perl,现在依然写不出来。。。大牛门可以拍了。 perl和Python和生信关系都不大~ 也没有优劣之分~ 因为可以跳过perl和Python的学习,直接应用Bioperl和BioPython~ doge~ 再者,等到语言被淘汰,我们也老啦~ awk多么老啊,现在不是一直很强大易用~ 生信那么多文本,你难道要用Java去处理。。。有时候简单不代表淘汰,反而在特定的情况意味着强大~ 对于未来发展来说~ Github~ 上面有最先潮的一切~ python吧,不仅可以做实验,还可以直接出工业级代码,biopython就不错 都学比较好吧,除非以后哪个把对方的优点全部吸收了,那就可以不用都学了。
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
相关文章
相关视频