[Python-Dev] Type hints -- a mediocre programmer's reaction (original) (raw)
Chris Angelico rosuav at gmail.com
Tue Apr 21 02:45:47 CEST 2015
- Previous message (by thread): [Python-Dev] Type hints -- a mediocre programmer's reaction
- Next message (by thread): [Python-Dev] Type hints -- a mediocre programmer's reaction
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Tue, Apr 21, 2015 at 9:41 AM, Jack Diederich <jackdied at gmail.com> wrote:
* It is not optional. Please stop saying that. The people promoting it would prefer that everyone use it. If it is approved it will be optional in the way that PEP8 is optional. If I'm reading your annotated code it is certainly /not/ optional that I understand the annotations.
* The cognitive load is very high. The average function signature will double in length. This is not a small cost and telling me it is "optional" to pretend that every other word on the line doesn't exist is a farce. * Every company's style guide is about to get much longer. That in itself is an indicator that this is a MAJOR language change and not just some "optional" add-on.
Maybe I'm completely misreading everything here, but I would have thought that there are two completely different use-cases here:
- Library authors
- Application authors
When you're writing a library, it can be a great help to provide type annotations, because every application that uses your library can benefit. When you're writing an application, you can completely ignore them, but still get the benefit of everyone else's.
Most company style guides are going to spend most of their time dealing with application code. Maybe you'd put a few type annotations on some of your internal library-like routines, but you certainly don't need to adorn every single function parameter and return value in code that's called only from elsewhere. Say you have an application framework like Flask - you're going to be writing a bunch of functions that you never call from your own code, but which get called by the framework. Annotating their return values is almost completely useless
- you're not going to be checking Flask itself for type errors! And the benefit of annotating their parameters is constrained to the functions themselves, so you can take your pick whether or not you annotate any particular function.
Type hints are on par with all those other structured function signature tidbits - formatted docstrings, autodoc comments, etc, etc, etc. Has any one of those become mandatory for all code? Nope. And possibly the best answer to anyone who tries to demand type hints for all code is TheDailyWTF, where you can find JavaDoc like this:
http://thedailywtf.com/articles/If_At_First_You_Don_0x27_t_Succeed http://thedailywtf.com/articles/SelfDocumenting
I have no fears for my own code. Are you afraid for yours?
ChrisA
- Previous message (by thread): [Python-Dev] Type hints -- a mediocre programmer's reaction
- Next message (by thread): [Python-Dev] Type hints -- a mediocre programmer's reaction
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]