Hacker News new | ask | show | jobs
by ReflectedImage 1275 days ago
I have developed in a lot of Python houses.

Given that type hints are a new language feature in Python, please explain to me how these Python houses used static typing when type hints didn't exist?

I'm all ears.

1 comments

> Given that type hints are a new language feature in Python, please explain to me how these Python houses used static typing when type hints didn't exist?

They've existed since 2015… please explain me how 2015 is "new"?

Python has been around since 1991. I'm little bit more experienced than you.
You seem to have no experience with type hints… You could have acquired this experience but didn't.

No shame, but you are not the most qualified person to comment on typing.

Also python3 is from 2008, and it's effectively a different programming language.

I have experience in working on statically typed Python codebases, it's just obviously inferior.

I'll go further and tell you the most common reason for using static typing is to allow the codebase to be a monolith like it's still the 90s. You shouldn't be trying to build a monolith in a scripting language it's a recipe for disaster.

I'm a polyglot, I'm exactly the sort of person who should be commenting.

Does it surprise you that static typing is often a poor choice?

Static typing is something to be used when the performance of your code is important. I've done 40 Gbits/sec network traffic processing, certainly static typing is used for that.

Your standard business CRUD app? Usually dynamic is the better choice.

> I have experience in working on statically typed Python codebases, it's just obviously inferior.

Maybe they just were inferior projects?

I've used a library where every function just accepted "args, *kwargs" and no documentation was given. In that case it's not really the fault of the language that it sucks. It could be a similar case for you.

> I'm a polyglot, I'm exactly the sort of person who should be commenting.

Ok I speak 3 languages fluently and 1 more so-so… But what does this have to do with python typing????

In fact most people who study literature and languages don't know much about python types.

> Does it surprise you that static typing is often a poor choice?

No because it isn't true.

> Static typing is something to be used when the performance of your code is important.

We can all agree that python isn't something to use when performances are very important.

> Your standard business CRUD app? Usually dynamic is the better choice.

Ok. That's not what I do though.

Have you done any C and C++? You know how people prefer doing a list in C++ with a template rather than a list of void in C? Same thing in python. But perhaps you haven't experience in this field either?

It's called reading the libraries documentation.

Polyglot as in multiple programming languages.

I'm afraid it is true. Knowing the limitations of the tools you use is important. And you clearly do not.

Yes, I've done programing expensive networking hardware in C. I think you are missing that I know a lot more than you.

Tagged values aka dynamic typing is an excellent approach to doing a list from the developer's perspective.

If you think dynamic typing is like using void pointer in C you are very much mistaken.

> most common reason for using static typing is to allow the codebase to be a monolith like it's still the 90s

This is so true. Static typing shines when you have a very complicated deeply nested system. And that's what most teams are naturally end up creating.

But how about not building the complicated system in the first place? Most of complexity in modern software is accidental.

> But how about not building the complicated system in the first place?

"For every complex problem, there's a solution that is simple, neat, and wrong."