Static Types Are for Perfectionists

by PaulKeebleon 5/17/2025, 10:29 AMwith 128 comments

by Jtsummerson 5/19/2025, 4:41 PM

https://news.ycombinator.com/item?id=43966948

I'll make the same remark I did last time this was posted here (it's been submitted 3 times in one week):

The author starts with this:

> I conclude with two implications of this idea: the necessity to accept other people’s preferences without judgment and the importance of finding an environment rewarding your style.

And follows it with these two things:

> Type theory maximalists should give up their aura of moral and intellectual superiority and accept that they need therapy just as badly as everyone else in the industry (if not more).

>> Haskell will still be used in 20 years, because there will always be people looking for a productive way to weaponize their autism.

So much for "without judgement".

by edg5000on 5/19/2025, 4:31 PM

I wrote a large enterprise JavaScript application that was behind Apple/Google update approval, was used daily by businesses whose entire operation depended on it.

I will never touch loosely typed stuff again. I want every keystroke checked for errors. I want autocomplete to select from possible members/fields/variables/functions/classes rather than doing constant global find/replace operations and having the customer be the beta tester

by PaulKeebleon 5/17/2025, 10:39 AM

Despite the somewhat clickbait title this is quite interesting on technology preferences and the path to what makes us happy and productive.

The idea that our preferences in technology are driven by our path of learning seems relatively self evident, those that started with C/C++ verses Smalltalk verses Java verses Python as their first language likely have a very different perspective on the various trade offs of these languages. Given we don't usually learn every language and certainly not to a deep extent few have deep experiences in all the possibilities to grok the differences in practice on similar projects.

  "I need the right project and the right team to function well"
I really resonate with this, in the right environment I seem vastly more productive. I have a significant preference for low levels of control and oversight and in those environments I can take actions quickly with less discussion and often get to better answers quicker, but I hate not being able to do that and it impacts my performance disproportionately. Its one of those preferences for culture that seems vital to how I want to work and impacts productivity a great deal. Asking permission or high rigour for potentially "extra" work just grinds my gears!

by goda90on 5/19/2025, 4:46 PM

I work in software where bugs can be very disruptive for the end user's very important job. Typescript was a godsend over JavaScript. I've blamed issues on changes where the developer clearly didn't grok the area they were changing. And I've witnessed dependency hell slowing down the development process. I've come to the conclusions OP did from professional experience that provides negative feedback, not some past psychology from my personal life.

There are certainly cases where you wouldn't get that negative feedback for your software, so you would never feel the need for those things. And maybe in that case you can move faster without them, but you should be careful taking those beliefs into other domains.

by keithasauruson 5/19/2025, 4:46 PM

static types: here's what this piece of data is

dynamic types: go look through code, tests, comments and project history to try figure out what this data is supposed to be

dynamic types are exhausting

by parpfishon 5/19/2025, 4:29 PM

i like static code because a codebase that applies types well gives you the same benefits of writing lots of tests for free.

by bpshaveron 5/19/2025, 5:07 PM

I would love to read the steel man case for dynamic typing, but "static typing is for people who need therapy" isn't doing it for me. Anyone have something to recommend so I can understand the intended benefits of dynamic typing?

by dkarlon 5/19/2025, 5:43 PM

The author seems obsessed with what their code says about them personally, and only mentions other people to discuss other points of view on this question. At no point do they say anything about how working with other people influenced their thinking about programming or their technical preferences. In fact they only mention peers a single time:

> I met many people whose programming approach was my polar opposite.... I don’t have any issues with their way, as long as we don’t work on the same system

Being obsessed with what your code says about you is a concern that competes with and inevitably detracts from other desirable outcomes. This is true even when working by yourself, but it is especially true and especially obvious when working with other people.

by adamnemecekon 5/19/2025, 5:34 PM

Types give you speed, correctness and better tooling. Dynamic typing supposedly gives you "authentic self". I think I'll pick the former.

by alabhyajindalon 5/19/2025, 6:30 PM

So many comments about static vs dynamic typing whereas the article barely discusses that. I loved reading this - very well written!

by constantcryingon 5/19/2025, 4:31 PM

I think it is important to understand why you are doing what you are doing. Sure, enjoyment and "authenticity" can be part of it, but it clear that e.g. static vs. dynamic typing is an engineering tradeoff. Making a decision in either direction should be based on those tradeoffs.

One important consideration is the importance of the project, hobby projects are for enjoyment mostly, so there "authenticity" is really important. At the same time you shouldn't make decisions on how to develop aerospace software based on how "authentic" the development process feels.

by gejoseon 5/19/2025, 4:35 PM

Ragebait title

by declan_robertson 5/19/2025, 4:55 PM

The author is 100% right when he says that personality has a big affect on programming preferences.

I see this play out in language preferences every day, INTJ (haskell, rust) and ENTJ (Golang, Java, Python).

Giving a list of the "best 3" programming languages can probably map you very accurately to a Meyers-Briggs personality.

by 90s_devon 5/19/2025, 4:44 PM

> Give them time and relevant experience, and they will arrive at the same conclusions:

What does this say about DHH then? He's got decades of experience yet ripped TypeScript out of his codebase angrily, preferring the foggy mystery that is dynamic types. Is he a legitimate outlier? If not, then wouldn't you have to conclude he's just a really bad programmer?