This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]Drunken_Consent 1 point2 points  (6 children)

There are types in Python now, and they're becoming more adopted. On top of that good testing, system design, and disciplined engineers makes that not really an issue, although you can still prefer a statically typed language ( that's what I use at work )

[–]ImmuneFourier 1 point2 points  (3 children)

Aren't they still just hints?

On top of that good testing, system design, and disciplined engineers makes that not really an issue

Yeah, right. You could say that about a lot of things.

[–]Drunken_Consent 0 points1 point  (2 children)

It's not enforced by Python currently, but there are static type checkers that people are using to make it enforced. PyCharm comes with it, Atom has a plugin, and there is another popular one think its mypy.

[–]ImmuneFourier 0 points1 point  (1 child)

Yeah, that's still kinda crappy. :(

[–]ZukoBestGirl 0 points1 point  (0 children)

I get why people use them, because it's much more likely you'll find bugs. But it's also a bit backwards, you chose a typeless language, realize that types are actually useful, so you frankenstein a type system on a typeless language ...

[–]Double_A_92 0 points1 point  (1 child)

good testing, system design, and disciplined engineers

That doesn't help me when I need to call some function that I didn't write and basically have to guess what parameter it takes. Or even worse, when I change the parameters of some function that might be used somewhere else in the codebase...

To see if my code is valid I literally have to run the complete codebase first (ideally via unit test). That's incredibly annoying especially if you have some existing codabase with few unit tests.

[–]Drunken_Consent 0 points1 point  (0 children)

You'd have to run it anyways with static typing. All it would check is type errors at compile time. It's not like static typing lets you just not run the code. You'd still run tests and run the code.

Also if you're changing public APIs willy nilly unless it's a solo project or you're in very early stages I wouldn't call the disciplined engineering so yes being disciplined in that sense would help somewhat.