I code both typescript and python professionally, and python is almost as much of a mess, just a different kind of mess. The package manager ecosystem is all over the place, nobody is agreeing on a build system, and the type system is still unable to represent fairly simple concepts when it comes to function typing. Also tons of libraries just ignore types altogether. I love it, but as a competitor to JavaScript in the messiness department it’s not a good horse.
Yeah, they’re useful when developing, which is why it’s so frustrating when libraries don’t implement types. I’m developing and I’m trying to use a tool that supposedly fits a use case I have, but the tool didn’t come with instructions so it’s practically useless to me. I could open the tool up and look at its guts to figure it out but are you kidding me no, I’m not going back to the stone age for your tool.
My biggest pet peeve is the complete inability to annotate a set of known exceptions that a function raises in a machine readable way. The discussion about it is quite heated.
Interesting. I’ve never felt a need for this, and as the other reply here said it was really unpopular in other languages.
I would have guessed you would have said something about how it’s annoying to type callable arguments, and how Protocol exists but doesn’t seem that widely known.
In fairness that approach hasn’t really worked in other languages. It was so unpopular in C++ that they actually removed the feature, which is almost unheard of. Java supports it too but it’s pretty rarely used in my experience. The only place I’ve seen it used is in Android. It’s unpopular enough there that Kotlin doesn’t support it.
Thank god, Javascript is a mess.
I’ll still plug Scala for having the beauty of Python, the ecosystem of Java, the correctness of Rust, the concurrency of Go, and the power of Lisp.
I code both typescript and python professionally, and python is almost as much of a mess, just a different kind of mess. The package manager ecosystem is all over the place, nobody is agreeing on a build system, and the type system is still unable to represent fairly simple concepts when it comes to function typing. Also tons of libraries just ignore types altogether. I love it, but as a competitor to JavaScript in the messiness department it’s not a good horse.
They ignore types all together because typing is optional in python.
types are always ignored at runtime, they’re only useful when developing
Yeah, they’re useful when developing, which is why it’s so frustrating when libraries don’t implement types. I’m developing and I’m trying to use a tool that supposedly fits a use case I have, but the tool didn’t come with instructions so it’s practically useless to me. I could open the tool up and look at its guts to figure it out but are you kidding me no, I’m not going back to the stone age for your tool.
basically sums up the opencv experience in Python.
great lib, very mediocre Python wrapper.
what do you mean by this?
My biggest pet peeve is the complete inability to annotate a set of known exceptions that a function raises in a machine readable way. The discussion about it is quite heated.
Interesting. I’ve never felt a need for this, and as the other reply here said it was really unpopular in other languages.
I would have guessed you would have said something about how it’s annoying to type callable arguments, and how
Protocol
exists but doesn’t seem that widely known.In fairness that approach hasn’t really worked in other languages. It was so unpopular in C++ that they actually removed the feature, which is almost unheard of. Java supports it too but it’s pretty rarely used in my experience. The only place I’ve seen it used is in Android. It’s unpopular enough there that Kotlin doesn’t support it.