Manipulating/Extracting Data and Developing Methods - Language Choice
4
0
Entering edit mode
7.3 years ago
Austin ▴ 60

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.

subjective programming scripting • 3.0k views
ADD COMMENT
2
Entering edit mode

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 REPLY
1
Entering edit mode

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

ADD REPLY
0
Entering edit mode
7.3 years ago

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 COMMENT
0
Entering edit mode
7.3 years ago

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 COMMENT
0
Entering edit mode
7.3 years ago

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 COMMENT
0
Entering edit mode
7.3 years ago
mplace ▴ 40

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 COMMENT

Login before adding your answer.

Traffic: 1599 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6