<p>Regading the perl vs python discussion, there is no final answer which language is better, but I have some advice for you:</p>

<p><strong>Learn the language your colleagues or your advisor use</strong>. This way you are able to discuss your code with them and also get help if you run into problems.</p>

CC BY-SA 3.0
2017-06-19T15:28:20.597Z
I think that the question is more about the libraries than about the language itself.
Karel Břinda
CC BY-SA 3.0
2017-06-13T08:12:58.063Z
2017-06-13T13:09:37.473Z
2017-06-13T13:09:37.473Z
Wayne_Yux
<p>Currently you could use either but a major question is which platform will others be using in the future. AFAIK Perl is only superior to Python for regex.</p>

<p>Based on the trend I see for new programmers and new software being released: Perl is on the way out and Python is still growing.</p>

<p><a href="https://trends.google.com/trends/explore?date=all&amp;q=bioperl,biopython" rel="noreferrer">https://trends.google.com/trends/explore?date=all&amp;q=bioperl,biopython</a></p>

CC BY-SA 3.0
2017-06-15T12:40:39.777Z
“AFAIK Perl is only superior to Python for regex.” — Andy `use strict;`, which has absolutely no equivalent in Python. There are linters, but nothing substitutes the requirement — provided in Perl by `use strict` — to explicitly declare identifiers (via `my`). I like Python but it gives incredibly weak correctness guarantees; even JavaScript surpasses it in this regard.
Konrad Rudolph
CC BY-SA 3.0
2017-06-13T09:49:44.683Z
2017-06-13T09:49:44.683Z
story
<p>This usually comes down to religious issues, so let me try and steer it back to more objective grounds:</p>

<ul>
<li>What language do you know (better)? Use the library for that one.</li>
<li>If you know neither and will be learning a language to use the library, the majority opinion would be that Python is easier to learn.</li>
<li>However, some people say that they "click" with Perl better</li>
<li>Python is what the majority of bioinformaticians are using at the moment (about 60%). And there is a virtue and aid in using what everyone else is.</li>
<li>What are your colleagues / collaborators going to be using?</li>
<li>Broadly, newer libraries tend to be written in Python.</li>
<li>Conversely, many sing the praises of regular expressions and string handling in Perl, citing speed and ease of use.</li>
<li>I think the numerics support in Python may be markedly better than that in Perl.</li>
</ul>

CC BY-SA 3.0
2017-06-28T08:04:11.173Z
Agree with agapow's breakdown (even though I'll probably always prefer Ruby over Python). Just as a comment you do find that alot of legacy projects at places like the Sanger use Perl. Depending on what you're aiming to to do initially I wouldn't discount R especially if your project is stats heavy. Later languages to pick up could include Java and other languages that run on the JVM like Clojure / Scala / Groovy which can use Biojava (via Java interop), or something like Rust with Rust-Bio if you want performance. Just make sure you don't start coding in Python 2.7...
Pasted
CC BY-SA 3.0
2017-07-04T22:41:49.450Z
I think your 60% number is about right, but I was wondering where you got it from. Do you have a source or is that just your impression?
terdon
CC BY-SA 3.0
2017-07-05T14:25:50.913Z
The 60% is from a survey of published software from a few years a go. No, I don't have the reference.
agapow
CC BY-SA 3.0
2017-06-13T08:44:30.520Z
2017-06-13T08:44:30.520Z
agapow
<p>I agree with @story and @agapow here. As it stands right now BioPerl is still much more mature than BioPython. If there's a tool or method that only exists in the BioPerl library then you should probably use BioPerl to accomplish what you need to accomplish. But it's undeniable that BioPython is progressing very quickly and will soon overtake BioPerl. That being said there are still a lot of plus side regarding Perl in the Bioinformatics realm and it will definitely help to be somewhat competent in it. </p>

<p>So in short my answer is to use both! I find myself mostly using Python and BioPython but if I need to accomplish something using a tool that isn't available in the BioPython library or can be accomplished more quickly using Perl I will look towards BioPerl/Perl. </p>

CC BY-SA 3.0
2017-06-13T14:59:54.690Z
2017-06-13T14:59:54.690Z
quantik
<p>Are there any advantages to learning Biopython instead of learning Bioperl?</p>

<p>Ideally, we would learn both, but someone starting out in bioinformatics may have to choose what to learn first depending on the kind of problems actually encountered.</p>

<p><strong>Are there problems for which Biopython is better than Bioperl (or vice-versa)?</strong></p>

CC BY-SA 3.0
2017-06-13T05:36:24.610Z
This question is almost entirely opinion based, and therefore generally discouraged on Stack Exchange sites. This is easier to see if you replace 'Biopython' with 'python' and 'Bioperl' with 'perl'.
gringer
CC BY-SA 3.0
2017-06-13T08:41:49.520Z
The only possible objective answer is - advantage of biopython is that it is module in python, on the other hand bioperl has an advantage of being module of perl. So you can reduce your question to "python or perl?" and that's a holy war, not question.
Kamil S Jaron
CC BY-SA 3.0
2017-06-13T15:14:03.457Z
If you can, learn both, and even learn R.

But prefer Python if you are to write code that others will need to read, understand and eventually modify. In my (admittedly biased) experience, Python code tends to be easier to understand.
bli
<python><perl>
For what bioinformatics tasks is Biopython more adapted than Bioperl?
# For what bioinformatics tasks is Biopython more adapted than Bioperl?

(Asked by: username_0 on 2017-06-13)

Are there any advantages to learning Biopython instead of learning Bioperl?

Ideally, we would learn both, but someone starting out in bioinformatics may have to choose what to learn first depending on the kind of problems actually encountered.

**Are there problems for which Biopython is better than Bioperl (or vice-versa)?**

**Tags:** python, perl
> **Comments:**
> **username_1**: This question is almost entirely opinion based, and therefore generally discouraged on Stack Exchange sites. This is easier to see if you replace 'Biopython' with 'python' and 'Bioperl' with 'perl'.  
> **username_2**: The only possible objective answer is - advantage of biopython is that it is module in python, on the other hand bioperl has an advantage of being module of perl. So you can reduce your question to "python or perl?" and that's a holy war, not question.  
> **username_3**: If you can, learn both, and even learn R.  But prefer Python if you are to write code that others will need to read, understand and eventually modify. In my (admittedly biased) experience, Python code tends to be easier to understand.  

---

## 4 answers

### Answer by username_4 on 2017-06-13. Score: 5

Regading the perl vs python discussion, there is no final answer which language is better, but I have some advice for you:

**Learn the language your colleagues or your advisor use**. This way you are able to discuss your code with them and also get help if you run into problems.

> **Comments:**
> **username_5**: I think that the question is more about the libraries than about the language itself.  

---

### Answer by username_6 on 2017-06-13. Score: 5

Currently you could use either but a major question is which platform will others be using in the future. AFAIK Perl is only superior to Python for regex.

Based on the trend I see for new programmers and new software being released: Perl is on the way out and Python is still growing.

<https://trends.google.com/trends/explore?date=all&q=bioperl,biopython>

> **Comments:**
> **username_7**: “AFAIK Perl is only superior to Python for regex.” — Andy `use strict;`, which has absolutely no equivalent in Python. There are linters, but nothing substitutes the requirement — provided in Perl by `use strict` — to explicitly declare identifiers (via `my`). I like Python but it gives incredibly weak correctness guarantees; even JavaScript surpasses it in this regard.  

---

### Answer by username_8 on 2017-06-13. Score: 4

This usually comes down to religious issues, so let me try and steer it back to more objective grounds:

* What language do you know (better)? Use the library for that one.
* If you know neither and will be learning a language to use the library, the majority opinion would be that Python is easier to learn.
* However, some people say that they "click" with Perl better
* Python is what the majority of bioinformaticians are using at the moment (about 60%). And there is a virtue and aid in using what everyone else is.
* What are your colleagues / collaborators going to be using?
* Broadly, newer libraries tend to be written in Python.
* Conversely, many sing the praises of regular expressions and string handling in Perl, citing speed and ease of use.
* I think the numerics support in Python may be markedly better than that in Perl.

> **Comments:**
> **username_9**: Agree with agapow's breakdown (even though I'll probably always prefer Ruby over Python). Just as a comment you do find that alot of legacy projects at places like the Sanger use Perl. Depending on what you're aiming to to do initially I wouldn't discount R especially if your project is stats heavy. Later languages to pick up could include Java and other languages that run on the JVM like Clojure / Scala / Groovy which can use Biojava (via Java interop), or something like Rust with Rust-Bio if you want performance. Just make sure you don't start coding in Python 2.7...  
> **username_10**: I think your 60% number is about right, but I was wondering where you got it from. Do you have a source or is that just your impression?  
> **username_8**: The 60% is from a survey of published software from a few years a go. No, I don't have the reference.  

---

### Answer by username_11 on 2017-06-13. Score: 1

I agree with @story and @agapow here. As it stands right now BioPerl is still much more mature than BioPython. If there's a tool or method that only exists in the BioPerl library then you should probably use BioPerl to accomplish what you need to accomplish. But it's undeniable that BioPython is progressing very quickly and will soon overtake BioPerl. That being said there are still a lot of plus side regarding Perl in the Bioinformatics realm and it will definitely help to be somewhat competent in it.

So in short my answer is to use both! I find myself mostly using Python and BioPython but if I need to accomplish something using a tool that isn't available in the BioPython library or can be accomplished more quickly using Perl I will look towards BioPerl/Perl.


---

