I've been working on genetic algorithms & evolutionary strategies for a while now in a research context. Across the vast majority of the articles and content I've read, every single one of them will either use Python, Matlab, or Java/C++ to build & benchmark their algorithms.

Is there an objective reason for these languages to be the single ones used in a research environment? Mainly in contrast with other languages like C#, or Javascript, that are almost never used (despite being some of the most used programming languages in other areas), whereas it would definitely be possible to code in practice all current algorithms in them.

  • 2
    $\begingroup$ It is going to be very hard to answer this without some kind of poll or insider knowledge across all major published researchers. Whilst the most likely simple answer is likely that it is down to a few initial preferences, followed by no compelling reason to change. $\endgroup$ Commented Apr 2, 2019 at 13:03

1 Answer 1


I would say there are quite a few different reasons for this, with the proportion of each dependent on a given researcher.

For example, I use python for the vast majority of what I do. And for me, it is due to a few different factors:

  1. I was already familiar with python, and it is a simple, high-level abstraction. This is probably the reason a lot of people set it and forget it, particularly with python. It allows them to focus on the ideas and implementation of said ideas, without worrying about all the junk that comes with trying to write a program in a faster language like C++

  2. The vast majority of ML/DS packages are only or primarily supported via python. I think this is probably the main reason for most in the field, as even if one can implement the architecture in a faster language, the time to do so would likely even out when taking into account the time required to prototype a given model. Tensorflow and others are supported for other languages but do not see the same level of dev support.

  3. The ability to deploy models to multiple platforms without headache. When working in an environment where the work is also applied, the ability to deploy a given model without too much debugging cannot be understated.

These are just a few of the main ones, and as I said the reasons for a particular language over another is primarily a preferential one, and can even vary by requirements(i.e speed)


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .