Skip to main content
added 627 characters in body; added 23 characters in body; added 5 characters in body; edited body
Source Link
Nikos Kazazakis
  • 12.3k
  • 18
  • 59

Regardless of what completes the phrase "Python vs ...", the answer is always going to be Python.

Very few people who are serious about using optimisation in production use MATLAB, and the ones who do can't wait to move away from it.

As to why, there are plenty of reasons. MATLAB is:

  • licensed

  • closed source

  • not object-oriented friendly, so it's a very bad choice for complex software

  • hard to distribute computations, and has a very expensive license for doing so

  • very hard to interface with

  • not scalable

  • nigh-impossible to hire professional programmers for

Seriously, if you want to be able to use your own code after your PhD, don't use commercial packages.

From a programming perspective, I have personal experience in the bottlenecks. I wrote the very first version of my solver in MATLAB, and I could solve problems of ~5 variables in reasonable time. Moving to C++ increased that to 200 variables. Rewriting the solver in C++ once I had experience increased that to 100,000 variables, and hiring professional developers increased that to >1,000,000 variables.

What's interesting here is that with the experience I have now, 10 years later, I know there's no way I could have ever scaled our software beyond 100 variables in MATLAB, but I could have in Python.

Regardless of what completes the phrase "Python vs ...", the answer is always going to be Python.

Very few people who are serious about using optimisation in production use MATLAB, and the ones who do can't wait to move away from it.

As to why, there are plenty of reasons. MATLAB is:

  • licensed

  • closed source

  • not object-oriented friendly

  • hard to distribute computations, and has a very expensive license for doing so

  • very hard to interface with

  • not scalable

  • nigh-impossible to hire professional programmers for

Seriously, if you want to be able to use your own code after your PhD, don't use commercial packages.

Regardless of what completes the phrase "Python vs ...", the answer is always going to be Python.

Very few people who are serious about using optimisation in production use MATLAB, and the ones who do can't wait to move away from it.

As to why, there are plenty of reasons. MATLAB is:

  • licensed

  • closed source

  • not object-oriented friendly, so it's a very bad choice for complex software

  • hard to distribute computations, and has a very expensive license for doing so

  • very hard to interface with

  • not scalable

  • nigh-impossible to hire professional programmers for

Seriously, if you want to be able to use your own code after your PhD, don't use commercial packages.

From a programming perspective, I have personal experience in the bottlenecks. I wrote the very first version of my solver in MATLAB, and I could solve problems of ~5 variables in reasonable time. Moving to C++ increased that to 200 variables. Rewriting the solver in C++ once I had experience increased that to 100,000 variables, and hiring professional developers increased that to >1,000,000 variables.

What's interesting here is that with the experience I have now, 10 years later, I know there's no way I could have ever scaled our software beyond 100 variables in MATLAB, but I could have in Python.

Source Link
Nikos Kazazakis
  • 12.3k
  • 18
  • 59

Regardless of what completes the phrase "Python vs ...", the answer is always going to be Python.

Very few people who are serious about using optimisation in production use MATLAB, and the ones who do can't wait to move away from it.

As to why, there are plenty of reasons. MATLAB is:

  • licensed

  • closed source

  • not object-oriented friendly

  • hard to distribute computations, and has a very expensive license for doing so

  • very hard to interface with

  • not scalable

  • nigh-impossible to hire professional programmers for

Seriously, if you want to be able to use your own code after your PhD, don't use commercial packages.