What types of bugs are you speaking of? Can you share an example?
Remember about constructive feedback method - what, why and how.
What types of bugs are you speaking of? Can you share an example?
Remember about constructive feedback method - what, why and how.
PyCharm did static analysis and caught a lot of these, but it wasn't always that obvious. With a type hint, it's easy for the IDE to spot things. It's easy to integrate mypy into the CI process, etc.
We inherited a py2.7 codebase, written by one dev. It uses a library written also by that dev. We had absolutely no idea what worked how. Sure, looking at the code gave us a very rough big picture, but adding typing helps with the details.
I see how this could be helpful for legacy codebase - add typings, run mypy and see if it breaks. Good point - thanks.
How many lines of code that inherited codebase had btw?
account = queryDatabase(email)
updatedUser = update(account)
ping(account)
queryDatabase returns a dictionary. Later on, someone decides that a single username can have multiple accounts, so someone changes queryDatabase to return a list of dictionaries instead of a single dictionary. Now the above code is broken, since update expects a single dictionary. Of course, you could grep through the whole codebase to try and find all the problems, but it would be easier and less prone to human error to rely on the type system to fail, especially if the change was something less contrived, and if changes like this were happening all the time.
The effect of this could be limited by other means (e.g. naming the function better) but type systems are just another way of adding robustness to a program.
You are making it personal (well, actually trying to insult), where I was asking you to provide more value.