Ask HN: Let's build Checkstyle for Bash?
I&#x27;ve always been confused that in ${current_year} people are still directly writing huge + complex shell scripts.<p>Compare&#x2F;contrast Javascript, another language we&#x27;re &quot;stuck with&quot;: while you <i>can</i> still directly write it, many people don&#x27;t, instead using transpilers to <i>target</i> Javascript as an &quot;object code&quot; from some other, stricter language (e.g. TypeScript, ClojureScript, arbitrary native languages via Emscripten &#x2F; WASM compiler targets, etc.) Via these languages&#x2F;compilers, everybody who wants compile-time strictness can have it. And you can even get <i>runtime</i> strictness that Javascript itself doesn&#x27;t have, as the checked semantics of these languages will often be &quot;lowered&quot; into the resulting Javascript by generating explicit assertions (usually this is on by default, unless you ask for an optimized build.) But the output is still just &quot;Javascript&quot;, that any browser can run.<p>Why hasn&#x27;t a similar thing happened for POSIX-standard Bourne shell? Why are we seemingly &quot;satisfied&quot; with writing + maintaining 5000-line install.sh scripts in our codebases, with a bunch of extra mental overhead &#x2F; tooling required to keep the code sane and clean; when we could just be writing in a sane and clean language to begin with?<p>Is it just that nobody&#x27;s bothered to create such a language&#x2F;compiler? Do I need to be the one to step up, here?