> There are no build time issues at all. Life in a dynamically typed world is fundamentally simpler.
Yeah this is something I take huge issue with. There's always a tradeoff: less comptime issues means more runtime issues.
Comptime issues are predictable and deterministic. Runtime issues may depend on inputs, or external factors like memory constraints, so they're way harder to identify and solve.
Static types are like eating your vegetables. You might get more instant gratification from eating cakes, but it's going to come back to bite you later.
I have that weird conspiracy theory in my head that the agile/OO/whatever movement emerged from developers that were terrified that development was becoming too simple, and wanted a way to ensure their future. Thus all the things about design patterns, extreme programming, pair programming, TDD, BDD, Clean code, etc. This would also explain why everything from before the 90's has been forgotten (static typing can be good actually!). Another explanation would be the exponential growth of the number of developers though.
Idk my tin-hat theory is a bit different. I agree with some of it - I think TDD, reactive programming and to some extent Rust is about job security, but I think Agile and code review is all about taking code ownership away from developers and commodifying programming.
I think Rust solves a real problem personally. TDD is honestly a bit too much, but testing is good. Reactive programming I don't know much about. For agile, I always thought of it as a way of putting the responsibility of projects back into the clients hands. Since you're always following what he's telling you each week/two weeks, if he's unsatisfied at the end, it's easy to gently tell him that you only did what he asked for, compared to the more "waterfall" where he could argue that you didn't meet the requirements. Code review I'm not sure, I haven't experienced it much.
Yeah this is something I take huge issue with. There's always a tradeoff: less comptime issues means more runtime issues.
Comptime issues are predictable and deterministic. Runtime issues may depend on inputs, or external factors like memory constraints, so they're way harder to identify and solve.
Static types are like eating your vegetables. You might get more instant gratification from eating cakes, but it's going to come back to bite you later.