| Someone needs to design a programming language and an IDE (and possibly a new OS too) with great debugging as the primary goal. Debugger and IDE support is always just thrown on later in every new language these days. "Omniscient debugging" as seen in https://pernos.co/ is the holy grail. Time-travel debugging would also be great. People are far too obsessed with static type checking. A lot of this time would be better spent invested in live debugging tools. When I'm editing my code I want to see exactly what _value_ each variable contains, the type really doesn't matter so much. Wallaby.js/Console.ninja is a great example of this. Good debugging, especially deterministic record/replay is usually complicated by the OS. I often wonder what an OS would look like if designed with debugging as a top priority. |
I mean.. the two are tightly related. The type represents the outer bounds of values possible. Types will give you as much utility as you put into them (or as the language allows).
I agree in general, i just think you massively undersell types haha. It's not either or, it's AND. Always AND.