Fortran is still a thing
FORTRAN has multidimensional arrays, and the compilers know about them and optimize aggressively. Most other languages don&#x27;t. C people just do not get multidimensional arrays. They think an array of arrays is good enough. I tried to convince the Go people to put in multidimensional arrays, with no success.<p>Years ago, I had an amusing fight with the C++ committee over this.<p>In C++, you can overload the &quot;[]&quot; operator:<p><pre><code>   int&amp; operator[] (int i) 
</code></pre>
But you can&#x27;t do that for multiple arguments.<p><pre><code>   int&amp; operator[] (int i, int j)
</code></pre>
Why?  An obscure feature of C and C++ is that the precedence of the comma is different for function argument lists and subscript lists. In<p><pre><code>   foo(a,b)
</code></pre>
is a function call with two arguments.<p><pre><code>   foo[a,b]
</code></pre>
is an invocation of the comma operator, which ignores the second operand. The syntax charts reflect this. So I proposed that the syntax for comma usage be the same in both 
&quot;()&quot; and &quot;[]&quot; forms. If you see &quot;foo[a,b]&quot; in a C&#x2F;C++ program, it&#x27;s almost certainly an error. I searched through large volumes of code and was unable to find a single use of the comma operator inside brackets.<p>But no, there&#x27;s a &quot;save the comma operator&quot; faction.<p>C people just do not get multidimensional arrays.