<story><title>Cold Showers</title><url>https://github.com/hwayne/awesome-cold-showers</url></story><parent_chain><item><author>cloogshicer</author><text>&amp;gt; Static Typing reduces bugs.&lt;p&gt;At least to me, the big advantage of static typing is not that it (allegedly) reduces bugs, but that it aids my understanding and helps in navigating the program. It&amp;#x27;s a tool for thinking and communicating.</text></item></parent_chain><comment><author>fifticon</author><text>I&amp;#x27;m not against studies and research - I have a computer science degree myself - but I&amp;#x27;m a little tired of being told my personal anecdotal evidence is not sufficient to conclude that water is wet.
  As a professional software developer of 30+ years, the doubts on static types puzzle me.
  8 years ago, I started dabbling more in javascript, for one of my continuous pet projects. I had it running and grew it to a considerable size, but after a year or two, I lost patience with debugging runtime issues, hunting for where I had forgot to update or initialize or remove stuff, during refactoring. I swore an oath never to use raw javascript again, and rewrote it from scratch in typescript. I am still working on it to this day, and I don&amp;#x27;t remember being angry at typescript a single day in the intervening 7 years.&lt;p&gt;My working day jobs have been mostly C++, and these days C#.
Periodically, I will temporarily inherit some of my younger colleagues&amp;#x27; projects, if they move on to greener pastures in different companies, with the charter of &amp;quot;can you do something about the long-running issues this software has been having?&amp;quot;
   My go-to solution is to go through their typescript and add return types to their functions, and replace their anys with interfaces.
   After having done that, I fix the bugs that revealed,
and then I&amp;#x27;m usually done.
   Recently when I did that, I came across a central class&amp;#x2F;data structure, which turned out to exist in no less than 5 slightly different variants. i.e. different parts of their code adhered to 5 different assumptions about what fields would exist and be populated (but all expressed on the blank canvas of &amp;#x27;any&amp;#x27;).</text></comment>
<story><title>Cold Showers</title><url>https://github.com/hwayne/awesome-cold-showers</url></story><parent_chain><item><author>cloogshicer</author><text>&amp;gt; Static Typing reduces bugs.&lt;p&gt;At least to me, the big advantage of static typing is not that it (allegedly) reduces bugs, but that it aids my understanding and helps in navigating the program. It&amp;#x27;s a tool for thinking and communicating.</text></item></parent_chain><comment><author>OJFord</author><text>Allegedly? Have you ever written code in a dynamically typed language? I&amp;#x27;m forever fixing TypeErrors and AttributeErrors and the like.&lt;p&gt;I suppose it&amp;#x27;s not even necessary to argue about experience fixing them or not, just the fact that those are runtime errors rather than compile-time (and so we presume not shipped) shows it reduces bugs doesn&amp;#x27;t it?</text></comment>