Question: Manipulating/Extracting Data and Developing Methods - Language Choice
0
gravatar for Austin
3.6 years ago by
Austin60
United States
Austin60 wrote:

As a general programming enthusiast and aspiring Bioinformatician student I have an intermediate understanding of computing (languages) as well as Java, and to a lesser extent C++. Having knowledge in a declarative as SQL and the intent to learn a functional as R; I found myself in need of interpreted/scripting language for quick data management tasks. Such would be used in conjunction with a compiled language for more complex algorithms. I am unbiased as I have yet to commit to mastering a single language; albeit I hope to make that decision soon and a major asset like scripting will play a role in that choice. Leading me to the following:

  • When paring a compiled and scripting language, which languages fundamentally compliment the opposing features of the other to the greatest degree while retaining the ability to communicate by call/implementing their use?

My intent in this case would be able to “plug” one into another to compensate an individual’s shortcomings (if not, at least conceptually) to holistically provide the greatest breath of benefit. Preference would of course be the design and features of the language as in contrast to more creative “hacking” solutions.

(IE Language II has the benefit… but by nature is poor/slow/lacks at… therefore Language A would suit it well.)

Considerations

  1. Memory Management and the Compile-Time versus Execution-Time Tradeoff
  2. Data Types, Generics/Reflection, and Inheritance
  3. Platform/OS Compatibility (Including Source and Code Version)

Ease of use is not so much a consideration as in the case of learning and added utility, but is undeniably a factor in the case of collaboration. I would greatly appreciate any insight as well as the inclusion of anything else that I may have overlooked if applicable. What combinations of languages do you use (C,C++,Java... <-> Ruby,Python,Perl...)? Is there one you wish you knew? Thanks in advance.

ADD COMMENTlink modified 3.6 years ago by mplace40 • written 3.6 years ago by Austin60
2

You will get many different answers, some even contradictory - with just four answers bellow at the time I am writing, you can already spot this trend. So I will just point to this blog post.

ADD REPLYlink written 3.6 years ago by h.mon24k
1

It seems that way. Perhaps I will rephrase. Nonetheless, thanks to all who have replied.

ADD REPLYlink written 3.6 years ago by Austin60
0
gravatar for Jean-Karim Heriche
3.6 years ago by
EMBL Heidelberg, Germany
Jean-Karim Heriche18k wrote:

The language efficiency is only one thing to consider. There are many other factors such as what libraries are available to do complex tasks so that you don't have to spend days/weeks reimplementing them and how efficient you are at using this language. In particular, consider that computer time is cheap compared to programmer time. These days, I would probably recommend python. It now has a lot of libraries for many algorithms, some are implemented in C/C++. Personally, I write code in perl and use C for computational speed or low level memory management. It's easy to wrap C code in perl and probably just as easy in python.

ADD COMMENTlink written 3.6 years ago by Jean-Karim Heriche18k
0
gravatar for Alex Reynolds
3.6 years ago by
Alex Reynolds27k
Seattle, WA USA
Alex Reynolds27k wrote:

Perl for quick prototyping or scripting tasks. C for speed. R for statistical tests and plots. Python is okay but generally slow at data- or I/O-heavy work, so I avoid it for all but small tasks.

ADD COMMENTlink written 3.6 years ago by Alex Reynolds27k
0
gravatar for Brian Bushnell
3.6 years ago by
Walnut Creek, USA
Brian Bushnell16k wrote:

I use bash plus Java.  I've found that when trying to do things involving multiple different programs simultaneously, Python can be problematic as the version dependencies sometimes make things non-interoperable.  For example, using Python to run a pipeline of Python programs from different sources can be difficult, when there are dependencies; using bash to run a pipeline of shell scripts is trivial from a version-compatibility perspective.

On the other hand, I think Perl is hard to read, and shell scripting is very convoluted for relatively simple tasks (thus also becomes hard to read), and is incompatible with Windows.  I have not really found a good pair yet.

 

ADD COMMENTlink written 3.6 years ago by Brian Bushnell16k
0
gravatar for mplace
3.6 years ago by
mplace40
United States
mplace40 wrote:

Bash  - nice easy loops on command line

Perl - also great on the command line

sed, awk for one-liners for pasting files, and quick substitutions

Python for code  you must pass on to others, It can be a real pain reading someone else's perl code.

R for plotting
 

ADD COMMENTlink written 3.6 years ago by mplace40
Please log in to add an answer.

Help
Access

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 2.3.0
Traffic: 1814 users visited in the last hour