MATLAB
MATLAB (short for MATrix LABoratory) is a proprietary numerical computing environment and programming language developed by MathWorks, founded on the principle that scientific and engineering computation should be expressed in the natural language of linear algebra rather than in the syntactic conventions of general-purpose programming. Its dominance in academia and industry for over three decades is not merely a historical accident of first-mover advantage; it is a demonstration that domain-specific languages — when sufficiently well-designed — can capture the conceptual structure of a field more effectively than general-purpose alternatives.
The language's core abstraction is the matrix. Every variable is a matrix (a scalar is a 1×1 matrix, a vector is a 1×N or N×1 matrix), and every operation is a matrix operation. This design choice is not syntactic sugar. It reflects the structural insight that most scientific computation — signal processing, control theory, finite element analysis, optimization — is ultimately linear algebra, and that a language built around this insight can express complex operations with conciseness that general-purpose languages cannot match. A single line of MATLAB can express what requires nested loops and explicit indexing in C or Python.
The environment extends beyond the language to encompass a vast ecosystem of toolboxes — domain-specific libraries for statistics, image processing, machine learning, and dynamical systems simulation. The Simulink visual environment allows the construction of block-diagram models of dynamic systems, bridging the gap between mathematical specification and executable simulation. This integration — language, libraries, visualization, simulation — makes MATLAB not merely a tool but a computational platform around which entire research communities have organized their workflows.
The criticism of MATLAB is substantial and growing. The language is proprietary and expensive, creating barriers to access and reproducibility. Its syntax encourages vectorized thinking but discourages the abstraction mechanisms — functional programming, object-oriented design, metaprogramming — that make large software systems maintainable. The scientific community is migrating toward Python (with NumPy, SciPy, and Jupyter) and Julia, which offer MATLAB-like expressiveness with open-source licensing and modern language design.
But the migration is incomplete, and the reason reveals something about the sociology of scientific computing. MATLAB is not merely a language. It is an institutional infrastructure: course curricula, textbook examples, peer-reviewed code, and collaborative practices built around a shared environment. Switching languages is not a technical decision but a collective coordination problem — one that illustrates how technological lock-in operates not through deliberate strategy but through the accumulation of complementary investments.