Performance comparison: counting words in Python, C/C++, Awk, Rust, and more
How about extending this to comparing programming language efficiency from a developer&#x27;s standpoint, looking at bytes of code, versus the execution time?<p>I took the source code file size from the repository, and the runtime from the blog post.<p>Then I made an arbitrary overall &quot;PAIN SCORE&quot; (lower is better) by multiplying code size * runtime. I suggest this is a worthwhile metric simply because lower is better on both axes, but of course, in the &quot;real world&quot; there will be different economic costs to CPU time and developer time depending on the use case. Here&#x27;s the sorted results, from least &quot;pain&quot; to most:<p><pre><code>    LANGUAGE   FILENAME        CODE SIZE      RUNTIME     PAIN SCORE (LOWER IS BETTER)
    Shell      optimized.sh      75 bytes      1.83 s      137.25
    Crystal    simple.cr        240 bytes      1.29 s      309.6
    Nim        simple.nim       424 bytes      0.77 s      326.48
    Python     simple.py        208 bytes      2.21 s      459.68
    Ruby       simple.rb        175 bytes      3.17 s      554.75
    Go         optimized.go    1514 bytes      0.40 s      605.6
    Python     optimized.py     464 bytes      1.33 s      617.12
    Zig        optimized.zig   2688 bytes      0.24 s      645.12
    Go         simple.go        688 bytes      1.12 s      770.56
    Zig        simple.zig      1394 bytes      0.55 s      766.7
    Nim        optimized.nim   1683 bytes      0.49 s      824.67
    Shell      simple.sh         60 bytes     14.81 s      888.6
    Ruby       optimized.rb     401 bytes      2.47 s      990.47
    JavaScript simple.js        532 bytes      1.88 s     1000.16
    C          optimized.c     4360 bytes      0.23 s     1002.80
    Rust       optimized.rs    3065 bytes      0.43 s     1317.95
    Swift      simple.swift     317 bytes      4.23 s     1340.91
    JavaScript optimized.js    1501 bytes      1.10 s     1651.1
    C          simple.c        2735 bytes      0.96 s     2625.6
    Rust       simple.rs       2239 bytes      1.38 s     3089.82
</code></pre>
Sorting only by code size, the most concise implementations are: Shell, Ruby, Python, Crystal. Nobody was aiming to play code golf (i.e. minimize source code size), so these are fairly straightforward, idiomatic, readable implementations.<p>I am definitely a Crystal fan, in fact this afternoon I&#x27;m continuing to implement suggestions from my recent Show HN <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=32081943" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=32081943</a> comments. :)