Hacker News new | ask | show | jobs
by gateorade 1239 days ago
MATLAB is ubiquitous in the aerospace industry. There probably isn’t an aircraft or spcecraft built in the west in the last twenty years where matlab wasn’t used.

The two big reasons are simulink and the availability of extremely domain-specific modules.

Simulink is a graphical modeling lanaguage for developing/simulating closed-loop control systems among other things. Flight controls people build aircraft controls in simulink and then the software engineers take it and use it to generate code that can be integrated into the rest of the flight software.

Then Mathworks builds and maintains a specific tool box for every niche engineering domain under the Sun. Need a set of simulink blocks and/or matlab functions for simulating phased-array radar systems? Mathworks has you covered, for an expensive license fee.

Both these things, IMO are ripe for replacement by open-sourced Python-based modules that do the same things, but it would take the right people with the right domain knowledge to have the incentive to do the work.

2 comments

Replacing Matlab with Python in engineering seems like a very bad idea, given Python's poor performance. Matlab (and most Python) packages get around this by coding everything in C++, then just having users call that C++ code. But then you have to code in C++, which is expensive.

Julia would probably be a better solution for this use case.

The performance of matlab/Python the traditional engineering world isn’t relevant though, its just for modeling/simulation, it never runs in live systems. It’s way cheaper to just buy a faster machine then to try and retrain a mechanical engineer who learned matlab in college on Julia, at least for now.
Matlab isn't exactly fast, and the same technique is used for python modules.

The problem isn't performance, it's that matlab is a single click install of everything and an ide that takes care of everything for you. By comparison, managing a python environment is a nightmare.

Your last paragraph is why that's never going to happen. You can make a lot more money using Matlab or making Matlab than replacing it just to give it away for free.
If this were true we wouldn't have Octave in the first place. People are motivated by other incentives besides money.
You can already find free and open source alternatives for just about everything in Matlab. And yet, even many companies that complain about the cost of Matlab don't use the Python and Octave alternatives. Seems like money is achieving something that other motivators aren't.

"Know your users". Something is preventing them from considering those alternatives as replacements.

There is high resistance to learning new tools in many environments, especially workplaces. Someone who learned a lot of Matlab will not easily be motivated to learn a better tool. And I would claim, that well supported non-proprietary tools like NumPy and other Python Libraries in the ecosystem, or Julia, are inherently better in the long run.

Some people in teaching roles will even further Matlab's spread irresponsibly out of not wanting to learn a new tool. I have seen this myself. A professor showed the students Matlab, instead of using non-proprietary alternatives. He also did not seem interested in learning about anything else, when I used Python + Numpy instead and showed him.

The alternative to Matlab is not necessarily another programming language. Often, it's a purpose-built tool with maybe some scripting built in.

That's what confuses software engineers about Matlab. They see code and think that the work is software engineering, but that's not always the case.

Imagine the reverse scenario. The professor sees you crunching numbers in Python and tries to convince you to switch to Matlab because it's "better". But you're a software engineer, and you still have to do all your software things that Matlab isn't great for. Why would you be interested in it?

Your previous comment suggested nobody will develop that software because it has poor financial outcomes, that was what I was responding to.

Of course you're right in this comment. Just because something exists doesn't mean people will know about it or trust it. Relationships, support, marketing etc that businesses provide go a long way to helping adoption.

Yeah I wasn't clear about "replacement" being a higher threshold than starting a project.

Btw, I don't think obscurity is a significant factor.