I hate statically typed languages because it’s like
look - compiler. we both know this code will run. but I don’t know how to explain to you that this code will run. so can you please just take my word for it?
but with that said I’ve experienced type systems in maybe the worst order possible:
so my understanding of them is deeply fucked up
@kasdeya yeah . . . the thing about type annotations vs an actual compiled language's type system is that the compiler might not actually know that the code will run
like in python and TS . . . the interpreter would probably try to make a guess about how to convert types, but in C# or rust it's not confident about what the code actually means until you explicitly resolve all the ambiguity
@kasdeya so like, languages with automatic type inference are like having a conversation with a neurotypical person — there's a lot of unstated convention that they'll fall back on to read between the lines, and this means if you know all of that context you can get by with saying less, but if not you might be surprised by what they come away from the conversation assuming you wanted
working with a strongly statically typed language (particularly those without much automatic type conversion) are like conversations with an anxious autistic person — they ask you to clarify a lot, and it might sometimes take longer, but they hope you can trust that they mean well and just want to make sure you're on the same page
@kasdeya "I don't understand what you want" is like 90% of our experience with C#, Java, and Rust yeah
on the whole we find this less frustrating than C/C++ though, where it'd just happy compile our nonsense and then crash at runtime