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.

  • $\begingroup$ Artificial Intelligence in general and genetic algorithm in detail have to do with research and figuring out new things. University education projects are often located within the open source ideology. As a consequence the programmers have a tendency to prefer manufacturer independent technologies, for example Matlab over Scilab. $\endgroup$ – Manuel Rodriguez Apr 2 at 11:55
  • 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$ – Neil Slater Apr 2 at 13:03

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)

  • 2
    $\begingroup$ Besides this comment being mostly irrelevant(the question was why particular languages are chosen vs another, which I answered), there is quite a bit of bias or flat-out wrong information here. First, obviously, python is slower, I noted this multiple times in my answer. Also rather obviously, one would likely port a model to C++ or similar after prototyping. Further, " PyPi-repository doesn't provide much libraries for machine learning problems and newly created python sourcecode can't be used in professional projects". This is just wrong and I'm not sure where you are deriving this notion $\endgroup$ – hisairnessag3 Apr 2 at 16:23
  • 1
    $\begingroup$ flagged comment deleted. $\endgroup$ – DukeZhou Apr 4 at 17:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.