What is your programming language of choice, and why?

9 posts / 0 new
Last post
ryan_m
ryan_m's picture
What is your programming language of choice, and why?

Mine? Perl. And the reasoning is mainly that it is fast to develop in and it seems to allow access to the most pre-written bioinformatics code (BioPerl, EnsEMBL API). I know some of the more computationally-oriented people out there probably use C/C++ or Java. I have also spoken with some people who are now switching from Perl to Python. Does anyone want to comment on this?

bgood
bgood's picture
I think people too often get

I think people too often get religous about this particular discussion - myself included.. To decide what language to use, you should evaluate the strengths and weaknesses of the language in relationship to your understanding of the language and the task at hand..

That being said, the sheer amount of publicly available libraries, source code, and APIs that are available for Java make it really hard to advocate another language. The only ~good argument I've heard against it is in the case that you need to absolutely maximize the efficiency of the applications that you write, in which case people still manage to get the best performance out of pure C. In personal experience, these problems are rare - and usually are quite easily solved with additional cheap hardware.

I've never really understood the argument that Perl is somehow easier than Java.. Its just as easy to get a simple unsharable, one off file parser written in Java as it is in Perl - (it will just be longer and much more understandable). And of course, if you ever want to get to the point where you either share your code with another pary or actually produce an application for a non-programmer user, I don't think a better solution exists than Java.

The anti-Perl sentiment here is the legacy of my first three years experience in bioinformatics.. - much of which was spent attempting to get other people's perl hacks to run .. This left me with a bitter feeling that there must be a better way.

Java is better.

BUT, web services are better than Java, because they let you write in whatever language you wish but still interoperate seamlessly with other code written in whatever language the authors like. High time for a service oriented architecture to penetrate into bioinformatics.. See the
BioMOBY and Taverna projects for active work in this area of bioinformatics.

jonatmudd
jonatmudd's picture
i am a matlab junkie myself.

i am a matlab junkie myself.

i know it is sometimes slow and clunky (and expensive!), but it is a small price to pay to use all of its wonderful features.

coding can be done super quickly and handle large data sets.

of course C++ is faster, cheaper, but developing and debugging code is sometimes not worth the hassle for me.
plus, when it comes to graphics, matlab is king for ease of use

LabGeek
LabGeek's picture
I have been coding as a hobby

I have been coding as a hobby for nearly thirty years now; started out in Basic, moved to C, C for Windows, then VC++ about 12 years ago. For most Win apps I believe MFC/VC is the way to go, and is my personal favourite. As someone mentioned, programming languages tend to have 'fanatical' devotees at times, similar to the PC/Mac debates.

In the end, all that matters is the result. None of my customers have ever asked me what language I used to code their app!

ryan_m
ryan_m's picture
Here is an article outlining

Here is an article outlining the strengths and weaknesses of Perl and hence, where it should and should probably not be applied. It is not bioinformatics-centric but it definitely applies in this field. There are certainly many bioinfo tasks that are accomplished with perl but where another language would definitely be better suited.

Ryan

bgood
bgood's picture
Here is an article that

Here is an article that compares 6 different languages (Perl, Python, C, C++, C#, and Java) on performance on typical bioinformatics tasks such as executing a BLAST search.

http://www.biomedcentral.com/1471-2105/9/82/abstract

Unsurprising results: "Implementations in C and C++ were fastest and used the least memory. Programs in these languages generally contained more lines of code. Java and C# appeared to be a compromise between the flexibility of Perl and Python and the fast performance of C and C++."

Unsurprising conclusion: ".. a developer should choose an appropriate language carefully, taking into account the performance expected and the library availability for each language"

Wow.. Perl is ~really slow for global alignment (using their code, environment etc.)

More data here

http://www.bioinformatics.org/benchmark/results.html

chirswang
chirswang's picture
Perl has been invented for

Perl has been invented for many years. It's scripting language. No need to compile as long as the server has setup, you can change and run. Since it has so many years, there are a lot of programming code samples out there for free to use.

To me, I don't like scripting language. I won't use it unless I have to or for other reasons. It's not productive and hard to debug. But I'm sure there are many benefits with them. Today, to be a software developer, understand a solid pure language is a must. Scripting languages are plus. For many cases, if you know C++ very well, you can pretty much stick with it. But for a web developer, you need more and more and have to catch up all the time. Anything related to web, it changes so fast. As a web developer, depends on the projects, you need to know web sever language, JavaScript, CSS, HTML, database, XML, SSL, AJAX, web services and more. If you ever want to become a good web developer, make sure you know all of them.

I'm pretty much a web developer, but I enjoy it. I agree Ben's thought for web services. It's the best way to allow retrieving information across different platforms. The only bottle neck is the internet speed. The speed has restricted large data transferring and performance of the web services. Currently it's best for process at background. If someday the internet speed wouldn't be an issue, I believe the web services will be used a LOT!

genius_nitin
genius_nitin's picture
There are many languages

There are many languages people using frequently in Bioinformatics research. And almost every language have its bio version to facilitate biological research like (BioPerl,BioJava,BioPython etc..) and many modules to help biological research. So, any language of your choice can solve your purpose if you know to implement the language according to your need. So be a master of any one and ......Happy programming.!!!!!!...

ksb.79
ksb.79's picture
mine is Matlab

mine is Matlab
this programming language is very easy to use and it is mathematical language and using for signal analysis, image processing and speech therapy.