C Is Not a Low-Level Language
It is correct that C is not <i>really</i> a low level language, but the points about how C limits the processor doesn&#x27;t make much sense.<p>It uses UltraSPARC T1 and above processors as an example for a &quot;better&quot; processor &quot;not made for C&quot;, but this argument makes no sense at all. The &quot;unique&quot; approach in the UltraSPARC T1 was to aim for many simple cores rather than few large cores.<p>This is simply about prioritizing silicon. Huge cores, many cores, small&#x2F;cheap&#x2F;simple&#x2F;efficient die. Pick two. I&#x27;m sure Sun would have <i>loved</i> to cram huge caches in there, as it would benefit everything, but budgets, deadlines and target prices must be met.<p>Furthermore, the UltraSPARC T1 was designed to support existing C and Java applications (this was Sun, remember?), despite the claim that this was a processor &quot;not designed for traditional C&quot;.<p>There are very few hardware features that one can add to a conventional CPU (which even includes things like the Mill architecture) that would not benefit C as well, and I cannot possibly imagine a feature that would benefit other languages that would be <i>harmful</i> to C. The example of loop count inference for use of ARM SVE being hard in C is particularly bad It is certainly no harder in the common use of a for loop than it is to deduce the length of an array on which a map function is applied.<p>I cannot imagine a single compromise done on a CPU as a result of conventional programming&#x2F;C. That is, short of replacing the CPU with an entirely different device type, such as a GPU or FPGA.