C is also one of the hardest languages to master. It is dead simple to learn, but also hard to use the language to do any complex thing <i>on time</i>.<p>Should we factor in the additional energy and time of running the developer's machine just to implement some basic features built-in in languages such as Python?<p>I love writing C don't get me wrong. But it is a tricky language for modern software development, and a very big security liability.
Free Pascal/Lazarus is also near the top of that list, and it lacks a bunch of constructs that make handy footguns.<p><pre><code> It doesn't do macros.
It doesn't have all the .H files.
It doesn't default to null terminated strings
</code></pre>
It also has a lot of nice features<p><pre><code> Begin/End make it easy to see blocks
It has clear syntax for dealing with pointers. @P is the address of P, P^ is what the pointer P points to
It makes it easy to tell assignment := from equality tests =
It defaults to passing function parameters by value, but can also pass by reference, or pointer.
It does separate compilation (units)
Strings are memory managed for you, counted, and can even have nulls in them.
Identifiers aren't case sensitive.
It now supports for .. each in loops
</code></pre>
You can even participate in the Google Kickstart rounds in free pascal to hone your skills.
I don't see any mention of Forth there.<p><a href="https://www.youtube.com/watch?v=0PclgBd6_Zs" rel="nofollow">https://www.youtube.com/watch?v=0PclgBd6_Zs</a>
hackaday links to <a href="https://greenlab.di.uminho.pt/wp-content/uploads/2017/10/sleFinal.pdf" rel="nofollow">https://greenlab.di.uminho.pt/wp-content/uploads/2017/10/sle...</a><p>Seems there is an updated paper by same author: <a href="https://haslab.github.io/SAFER/scp21.pdf" rel="nofollow">https://haslab.github.io/SAFER/scp21.pdf</a><p>And results table: <a href="https://sites.google.com/view/energy-efficiency-languages/results" rel="nofollow">https://sites.google.com/view/energy-efficiency-languages/re...</a><p>And results charts: <a href="https://sites.google.com/view/energy-efficiency-languages/updated-functional-results-2020" rel="nofollow">https://sites.google.com/view/energy-efficiency-languages/up...</a>
Shouldn't the energy labels also account for build times? Surprising to see Rust and C++ occupying top positions, even though they're notorious for slow build times.
It helps that hardware vendors attempt to make their platforms run like a PDP...<p>C and hardware are a bit of a cyclic match of dependencies.<p>It doesn't have to stay this way, but it probably will.