←back to thread

Type checking is a symptom, not a solution

(programmingsimplicity.substack.com)
67 points mpweiher | 2 comments | | HN request time: 0s | source
1. DarkNova6 ◴[] No.45142279[source]
Ahahahahaha.

Remember when the world went insane and wanted JS (not TS) to run literally everywhere?

Now we live in a world where TS, Python and even PHP admitted the mistake of unrestrained types. People who didn’t get the memo are highly questionable, probably facing solo-dev hacker mindset syndrome.

I am not sorry for having strong opinions.

replies(1): >>45146923 #
2. maxuser ◴[] No.45146923[source]
Exactly. I do plenty of non-hygienic solo-dev hacker stuff for personal hobby projects, cutting through all sorts "red tape" like not being rigorous about unittest coverage, because I'm (a) programming for fun, (b) not required to communicate constraints/contracts with other devs, and (c) working on a codebase small enough (~30K loc) that I can keep all of it paged into my head. Sure, I could do away with static typing too and still make sense of my code, but only if it were well-documented. But why merely document requirements in comments when you can embed those requirements directly in the code and have the compiler/tools check those requirements for you?

The lax attitude that's passable for small hobby projects would be an utterly disastrous Tower of Babel if applied to real-world large-scale projects like at my job where hundreds of us are actively contributing at any given time (thousands over time) to a multi-million-line server. Developing software at that scale, in terms of developers and lines of code, would not be remotely feasible without type systems or equivalent systems that automatically check invariants statically.

To suggest that the elegance of Unix pipes extends to large-scale software development betrays a lack of experience with the complexity of real-world large-scale software systems.