MATLAB is the Apple of Programming
A framework to understand why most engineers swear by it and developers swear at it
Over two years ago, I quit programming in MATLAB.
For most software developers, this sounds cringey, but for many engineers like me, this sounds like blasphemy.
The break-up started when I was analysing data containing a datetime array. Most commands were readily available, but eventually, I encountered specific commands that were unavailable unless I had MATLAB’s financial toolbox.
Depending on the commercial license, it costs between $870 and $2,175.
There was no chance I was going to request such an expensive non-engineering-related toolbox for a minor project. So I stuck to coding my way around it. However, these notices kept coming up for subsequent projects.
After receiving four notices to get a toolbox in a single day, I snapped; how could such basic actions be behind a paywall?
Then I remembered Python. I had briefly used it before and knew it could solve my data analysis problems because it had similar tools and was open-source.
So I channelled my anger to begin the onerous process of converting all my major MATLAB scripts to Python scripts over the next few months.
No ChatGPT to help, just online tutorials, dense Python documentation and answers to whatever questions the gods of Stackoverflow didn’t think were stupid. Later on, my software engineering coworker helped me out as well.
It was painful, but it has worked out, and I have never looked back. Operations involving datetime arrays in Pandas are free.
My deeper exposure to Python and its various libraries introduced me to the broader world of programming. I got to dip my toes into web scraping, explore data visualisation, and get into data science/machine learning/AI/*insert future tech buzzword here*.
This exposure came primarily through programming-related courses, blogs, YouTube channels, troubleshooting websites and most importantly, memes (as you can tell, I am a big fan).
A notable meme that I came across in the community was the programming tier list. People would rank their favourite programs from S tier (best) to F tier (worst). Of course, many opinionated lists were put out, but what wasn’t controversial was how low or absent MATLAB was in most people’s lists.
The few times it was mentioned, it was mocked for its speed, syntax, closed-source ecosystem or expensive price, then promptly placed in the F tier.

Given how poorly people described MATLAB, I wondered how it remained such a widely used language in engineering despite the crowd of open-source programs available in 2025.
And after discovering that MATLAB's parent company, Mathworks, reported an annual revenue of $1.25 billion in 2024, I became even more confused (these numbers are privately reported).

However, as I delved even deeper into online forums and spoke with more computer programmers and engineers in the physical sciences, things became clearer.
MATLAB makes money because Mathworks has created a programming ecosystem that solves problems in a way many engineers, scientists and mathematicians love, but most developers hate.
The more I analysed Mathworks’ business model, the more it reminded me of Apple’s.
1. Get them early
The average American child receives their first smartphone around the age of 12. Like the average American teen signing up for student loans for college, these children don’t know that they are signing up for something that may stick with them for the rest of their lives.
Once people adopt a technology that functions adequately, they’re unlikely to switch. This behaviour is called the default bias: our preference to do nothing instead of something, and our tendency to stick with choices we’ve already made.
With the iPhone, this manifests with a deep level of brand loyalty. According to Consumer Intelligence Research Partners, around 94% of iPhone users will opt for another iPhone. The younger Apple captures this audience, the more solidified their long-term market share will be.
In addition, due to the widespread adoption of iPhones in the US, there is massive peer pressure that nudges young people to switch to it as well. Numerous stories emerge every year of Gen Z Android users getting bullied for not having an iPhone. According to a 2023 study by Piper Sandler, ~90% of teens in the US use iPhones.
Between its early adoption, branding, and social pressure, Apple’s iPhone continues to corner the US smartphone market. You can see this trend in the graph below.
A similar phenomenon occurs with programming and engineers in academia. Most engineers in STEM are formally introduced to programming in college, and for many, this is where they meet MATLAB. Mathworks touts that 89% of the global top 300 ranked universities have a MATLAB license.
The other 11% likely do not have an engineering department or money.
Ok, I’m kidding. This license is highly subsidised for universities.
It makes sense that MATLAB dominates academia, given that it was initially a matrix calculator created by Cleve Moler for his students at the University of New Mexico. When he developed this tool to help them avoid the tediousness of compiling in Fortran, I doubt he knew how widely it would later be adopted.
During my engineering studies, there was only one class dedicated to programming called Simulation Methods. It was taught entirely in MATLAB. The professor who taught us at the time had the catchphrase “if you can do it in MATLAB, you can do it in Fortran”.
This statement did not teach me anything.
In addition, virtually all textbooks in subsequent major courses, like heat transfer, controls, and aerodynamics, implemented examples in MATLAB. These were implemented with the enhanced student version of MATLAB, i.e including many toolboxes. (This is likely why I encountered so many toolbox notices when working with the base license for the first time.)
In my further studies, I eventually got exposed to engineering software, like SolidWorks, AutoCAD, and LabVIEW, as well as programming languages like Python and Fortran. But MATLAB was the default.
Like Apple’s iPhone among the younger generation, MATLAB has positioned itself as the first exposure for many engineers entering the programming world.
MATLAB’s entrenchment extends not only from universities but to major engineering companies. Existing engineers want to continue using their current MATLAB code, and newer engineers will want to work within the existing code their colleagues use - basic peer pressure.
In addition, the cost-benefit analysis of what language to use continuously tilts in MATLAB’s favour when you account for the time and effort it would cost to switch entire codebases to another.
The partial list of customers MATLAB provides below says it all:
2. Get them in the ecosystem
Once a user has an iPhone, the product serves as a gateway to Apple’s ecosystem of related products and services.
I myself am an example. After I got an iPhone and was gifted a MacBook and Apple Watch, it was over. I later upgraded my iPhone and MacBook, bought an AirTag, but am currently resisting the urge to buy AirPods.
In addition, Apple makes a profit from licensing fees to accessory companies I buy from, like my case and screen protector.
Then there are the digital services. Since Apple’s devices tend to have limited storage, I have an iCloud subscription. After Apple gave me a free 6-month subscription to Apple+, I watched Ted Lasso and Severance.
I eventually renewed my subscription when each show’s second season came out. In addition, Apple gets a cut out of every in-app purchase or subscription I make.
Apple’s non-iPhone revenue continues to expand, especially with its services
Every year Apple releases an iPhone, despite it being marginally different from the last version it often completes its mission of acting as an invitation to get sucked into or further entrenched in Apple’s ecosystem. A similar theme plays out with MATLAB.
Many MATLAB users only deploy the language to code simple programs, but a significant proportion make use of its various toolboxes (paid for separately). These toolboxes contain functions and processes that provide support for a specific field of study.
To those familiar with Python, these are equivalent to the libraries you import at the start of your terribly planned, half-baked side project.
What separates MATLAB’s toolboxes from most open-source languages is their specialisation in broad scientific fields and presence in niche scientific ones.
The most prominent of these toolboxes is Simulink, which is used to simulate dynamic systems (kind of a big deal in engineering).
Instead of lines of code, it uses a drag-and-drop interface (similar to LabVIEW), which makes modelling extensive systems surprisingly easy.
I remember using it in my systems dynamics class and marvelling at how seamlessly it worked in modelling the responses of electrical, mechanical, and thermal systems.
This explains why it is used extensively by aerospace, automotive, and industrial engineering companies (even the US Department of Defence). If you have a decently analogous model to your physical system, you can save millions in R&D by simulating it in Simulink before investing time and money in hardware.
In addition, Simulink Coder can generate C and C++ code directly for real-time applications and embedded systems. The code output has built-in compliance and testing support for industry standards in automobile (MISRA C & ISO 26262), automation (ASAP2), aerospace (DO-178) and electrical (IEC 61508) applications.
Interestingly, this came before the recent AI boom and questions about whether it will eliminate developers. Last I checked, these engineering companies still hire them.
I also came across numerous posts and forums in more specialised scientific fields, like wireless communication systems, digital signal processing, biomedical engineering and neuroscience, which explained how a particular MATLAB toolbox was extremely useful in their field and often part of their daily workflow.
In my layperson's opinion, some communities are too small for an open-source project to reach similar levels of support without individuals with significant personal determination.
But those people do exist.
Python's premier plotting library, Matplotlib, was created in 2003 by American neurobiologist John D. Hunter. This was after he grew frustrated with using MATLAB to interact with databases and manipulate complex data structures.
He decided to move his project to Python as he was developing an EEG analysis application, and then proceeded to build the library. Despite this, he loved MATLAB’s plots so much that he decided to emulate its implementation while developing Matplotlib.
That’s why it’s called Matplotlib: MATLAB, plot, and library.
Unlike our dear friend John, most will stick with MATLAB, especially if it is on their company's or university’s dime. And like me, with Apple, these institutions will continue to be in Mathworks’ pocket through its main and side products.
3. Get them comfortable with closed-source
Android users consistently make fun of Apple users' closed ecosystem, but what these people fail to understand is that most iPhone users simply don’t care. Apple's customer base largely consists of users who value simplicity and reliability over customisation and technical control.
Unlike many tech enthusiasts, the average consumer only wants a phone that can reliably take good pictures, send messages/email, scroll through TikTok, stream Netflix, search on Google or ChatGPT, and possibly play phone games.
Broadly, the tech community that evangelises open-source —desktops, Linux, and Android — enjoy the control of customising their setup and optimising its usage. However, most people just want their technology to work seamlessly and reliably.
iOS tends to support more software upgrades for older phones compared to Android. MacBooks tend to have a longer shelf life compared to most PC’s. And Apple have pioneered the ecosystem that allows their devices to work seamlessly with each other.
This could have only been accomplished through its rigid control of both hardware and software. People value this integration and its benefits over the downsides of a closed-source ecosystem.
Similar to programmers who make fun of MATLAB users, they too do not care. Their market of engineers, mathematicians, and scientists has found a simple and reliable tool for them.
The accursed 1-based indexing that irks programmers makes sense to many mathematicians in the context of matrix multiplication (almost like MATLAB is short for matrix laboratory).
MATLAB receives a lot of criticism for this, but other languages like Fortran, R, Mathematica, and Julia also use one-based indexing. This system makes intuitive sense in more math-intensive fields.
A similar story plays out for engineers. The typical engineer's programming involves rapid prototyping with relatively little data and benefits from easy visualisation. For many engineers, the aforementioned toolboxes, along with aesthetic plotting and decent implementation speed, more than suffice for most use cases.
Additionally, what many MATLAB bashers don’t understand is that many engineers already work in ecosystems where expensive software is the norm.
From a rough google search, tools like ANSYS ($10-15k/user/yr), Siemens NX($2292/user/yr), SolidWorks ($2820/user/yr), AutoCAD ($2095/user/yr), and LabVIEW ($560/user/yr) are widely used in both industry and academia.
From an individual perspective, they may seem expensive, but compared to the profits from some of the aforementioned institutions, the cost of these and/or MATLAB is negligible. This comes with certain benefits and expectations.
Unlike Python, which often requires juggling packages, environments, and compatibility issues, MATLAB’s closed ecosystem handles its multiple toolboxes natively and more seamlessly.
Another major strength of MATLAB is its robust documentation and dedicated support system. It’s one of the few programming environments where you can call a support line and get live assistance with debugging your code.
Compared to the trenches of online debug forums, it is much more reliable (wish I knew this when I was having problems)
Free engineering alternatives to all the engineering software I mentioned exist. For MATLAB, there are fairly similar alternatives, like Scilab, Octave and Julia. For its premier toolbox, Simulink, alternatives like OpenModelica and Scilab XCOS exist.
While these tools have seen some use in the hobbyist community, engineers (who often work at companies) have not yet widely adopted them. Aside from the factors mentioned above, this is primarily because these programs and their tools are not as seamless, specialised or optimised as MATLAB’s.
Additionally, I believe this is also due to a lack of trust. Unlike in developer circles, engineering companies are not as embracing of open source.
Why would somebody develop something for free? And even if they shared it for free, what incentive do they have to maintain it? Said the paranoid engineering manager.
This is where money comes in. At the very least, when you give someone money, you have certain expectations and anticipate your seller to continue to work towards them if they want more of your money in the future. This is a much more reliable software model from the perspective of an engineering company.
In addition, because of the fields’ higher exposure to life-and-death situations, having a dependable software partner seems like a more prudent choice.
What you’re paying for with MATLAB and Apple isn’t just convenience, it’s also trust in a brand. Apple, with its reliability, “privacy” and “innovation”, and MATLAB, with its trust and reliability to keep improving and expanding its offerings.
These brands are not perfect, but unlike other programming languages, they exist.
Despite these factors, actions from the general and open-source market are putting pressure on them.
4. When you can't beat them, join them.
Although Apple is a leading tech company, it is not always at the helm of progress. So, like many other tech companies, when you can’t compete, you acquire. Following the 2020 pandemic, this trend slowed down but is now back on the rise.
This has led to some antitrust lawsuits against Apple in the past and present, but even money could not solve its AI problem. According to most analysts, Apple is currently behind in the AI race compared to other tech competitors like Google.
As an Apple user, I agree. I use ChatGPT, Google, and Amazon's voice AI assistants way more than Apple’s Siri.
Apple is aware of this reality. So, instead of improving Siri, they took the unprecedented step of integrating ChatGPT into it. It will run on the device or Apple Silicon servers, but ultimately, it relies on ChatGPT.
This is not the only area in which Apple collaborates with its competitors. A lot of Apple fanboys are surprised when they learn that Samsung is the major supplier of OLED displays for iPhones.
Similarly, MATLAB has faced some antitrust allegations and settlements and now has to break bread with its competition. With MATLAB, this has squarely been with Python.
When it comes to general-purpose programming and running open-source ML programs, Python is currently king. I doubt that MATLAB’s AI/ML toolboxes can keep up with the pace of developments emerging in the open-source community and imported into Python libraries.
In some ways, even MATLAB acknowledges this. In a very patronising article from MATLAB that compares the two, the article cites cherry-picked Reddit forums and lands in the middle, advising the use of both.
How convenient.
In 2014, MATLAB embraced this paradigm by natively supporting Python code. This integration became more solidified in 2021 with pyrunfile, which improved data type support and operations between the two languages. In 2021, they also introduced the ability to call MATLAB functions from Python, further ensuring the tools’ co-existence.
MATLAB is further embracing its role as one of many tools in the developer community by creating a VS Code extension in 2023. VSCode is a popular development environment used to create software across Windows, Linux, macOS, and even in web browsers. Previously, an unofficial version was maintained by Jay Dhameliya.
Like Apple, MATLAB is adapting to external pressure through collaboration instead of competition.
5. Get it over with
Takeaway 1: A developer complaining about MATLAB is like a carpenter complaining that his hammer doesn't cut through wood as easily as his saw.
MATLAB is built for engineers, mathematicians and researchers, not for developers. Here are the best Reddit threads (A & B) and Hacker News threads with further discussion. Unfortunately, the cartoonish hatred for it has become memetic. An ignorant circle jerk. A cheap applause line.
If you’re a developer who still hates it despite all this, please constructively channel your hate (like I did) to create or support a language enough to supplant MATLAB.
While you are at it, please do the same for other closed-source languages like SAS.
Takeaway 2. Getting the base version of MATLAB is like getting the base version of an iPhone, overpriced for minimal utility.
For general data analysis, MATLAB is “expensively mid”. For its niche and deeply specialised scientific toolboxes (especially Simulink), its reliability and convenience are currently unmatched. In the future, that could change (to some it already is). For now, if you don't need one of its toolboxes, consider making the switch to Octave. If you don't have too much legacy code, consider switching to another language.
Currently, I’d recommend Python. For most general-purpose programming, data analysis and ML/AI, it is currently king. The libraries are unmatched. It's open, free, and relatively easy to learn. If you want more classical statistical analysis and richer visualisation, R might be a better bet.
Here is an excellent article in the Journal of Science that compares MATLAB vs Python vs R much more competently and deeply than I could.
Takeaway 3: Use whatever language fits your use case, in life and in programming.
With all this talk about programming languages, let’s not miss the forest for the trees. Languages are tools that developed around a particular use case. People have complaints about every single one of them.
Understand your field and its specific needs. I’m not going to tell an embedded systems programmer to learn Java, just like I wouldn’t ask a game developer to pick up Assembly.
Even within a field, specific nuances apply. Depending on the job, some engineers don’t even use MATLAB. I’ve met some who use Excel for all their data analysis, and it works for them (I do keep them in my prayers). On occasion, people even make entire games in Microsoft Excel.
Takeaway 4: Learn languages & have fun, download Duolingo today ! (not sponsored)
This deep dive has inspired me to venture beyond Python and MATLAB and explore languages like R, C and JavaScript in the future. More statistical, embedded and web-based programming skills sound useful.
I’m sure the communities around those will be much more positive than the general programming community that hates MATLAB.
Related articles:
The Dataset has been Stalking me on LinkedIn - Datasaurus Dozen
I’ve seen it, you’ve seen it and we all will probably continue to see this GIF on Linkedin till the heat death of the universe.
I will be the first person to dance on MATLABs grave when it happens