Things I Hate About MATLAB

Functions Organization One-function-per-file is, quite possibly, the only thing worse than header files for making code available. The overhead of making a new function (create a new file, name it, name the function identically, realize the file is in the wrong spot, move it, …) applies tremendous pressure against making small helper functions. Even if functions are closely related, you still have to open multiple files to engage with them. Touching every file on the path to build a cache is apt to cause slowdowns, especially where latency matters (network filesystems). This also makes for interesting times when you e.g. delete a file. Your choices are: MATLAB periodically rescan everything to refresh the cache (slow), or you trigger a cache update manually (annoying). Evaluation In their infinite wisdom, MathWorks has elected to treat a function’s name as equivalent to a function-evaluated-with-no-arguments. This is a parsing nightmare that makes it impossible to do any sort of meaningful term rewriting, and it results in the following…strange behavior: ...

November 7, 2025 Â· Edited March 7, 2026 Â· 3 min