[Python-Dev] Type hints -- a mediocre programmer's reaction

Harry Percival harry.percival at gmail.com
Mon Apr 20 23:00:57 CEST 2015


@Lukasz:

Of course you're right, ugly is a matter of perspective, and I'm sure I
could grow to love them, and they might evolve into a more polished
direction

> "they start to read more transparently after a while."

But I'm still worried about beginners, and I'm even worried about me.  I
like to be able to scan through some code and see the essence of it.   I
learned Java at school, and I got it figured out, but i'm glad I left it
behind. Every so often I read a TDD book and the examples are all in java
and it just feels like obfuscation -- public void static private String[]
class blabla... so many keywords and types getting in the way of *what the
code is actually doing*.  That's what's so appealing about Python, it
strips it down to just the basics.  And, to me, type hints are always going
to be some unnecessary chaff that gets in the way of my understanding --
not useless, not that they don't have a purpose or that we should remove
them completely.  But if there was a way of just hiding them, so that I
don't have to think about them, as a beginner, or as a normal programmer,
most of the time, in the 90% of cases where I don't need to see them, I
shouldn't have to...  that's why i'm so keen on this stub files idea.

One thing I don't understand is this "local variable inference" thing --
can that not be made to work in stub files?



On 20 April 2015 at 21:50, Harry Percival <harry.percival at gmail.com> wrote:

> > stub files are only used to type-check *users* of a module. If you want
> a module itself to be type-checked you have to use inline type hints
>
> is this a fundamental limitation, or just the current state of tooling?
>
> On 20 April 2015 at 21:48, Harry Percival <harry.percival at gmail.com>
> wrote:
>
>> > "I hate stub files. [...] in my opinion, [it] just about guarantees a
>> maintenance burden that will fall by the side of the road.
>>
>> I'm not so pessimistic.  It's not like documentation or docstrings or
>> comments -- the whole point is that it should be very easy to have an
>> automated check for whether your stubs are in sync with your source,
>> because both are in code.  Unlike docs or comments which can easily become
>> out of date, because there's no automated process to tell you they need
>> updating...  I'm thinking of it as a thing your editor will warn you of.
>> Like pyflakes warnings about unused variables & co, I'm never happy until
>> I've silenced them all in a file, and similarly, your editor will keep
>> bugging you until you've got your stubs inline with your code...
>>
>>
>> On 20 April 2015 at 20:37, Isaac Morland <ijmorlan at uwaterloo.ca> wrote:
>>
>>> On Mon, 20 Apr 2015, Paul Moore wrote:
>>>
>>>  On 20 April 2015 at 19:41, Barry Warsaw <barry at python.org> wrote:
>>>>
>>>>> tldr; type hints in python source are scary. Would reserving them for
>>>>>> stub
>>>>>> files be better?
>>>>>>
>>>>>
>>>>> I think so.  I think PEP 8 should require stub files for stdlib
>>>>> modules and
>>>>> strongly encourage them for 3rd party code.
>>>>>
>>>>
>>>> Agreed. I have many of the same concerns as Harry, but I wouldn't have
>>>> expressed them quite as well. I'm not too worried about actually
>>>> removing annotations from the core language, but I agree that we
>>>> should create a strong culture of "type hints go in stub files" to
>>>> keep source files readable and clean.
>>>>
>>>> On that note, I'm not sure "stub" files is a particularly good name.
>>>> Maybe "type files" would be better? Something that emphasises that
>>>> they are the correct place to put type hints, not a workaround.
>>>>
>>>
>>> How about "header" files?
>>>
>>> (ducks...)
>>>
>>> Isaac Morland           CSCF Web Guru
>>> DC 2619, x36650         WWW Software Specialist
>>>
>>> _______________________________________________
>>> Python-Dev mailing list
>>> Python-Dev at python.org
>>> https://mail.python.org/mailman/listinfo/python-dev
>>> Unsubscribe:
>>> https://mail.python.org/mailman/options/python-dev/hjwp2%40cantab.net
>>>
>>
>>
>>
>> --
>> ------------------------------
>> Harry J.W. Percival
>> ------------------------------
>> Twitter: @hjwp
>> Mobile:  +44 (0) 78877 02511
>> Skype:         harry.percival
>>
>
>
>
> --
> ------------------------------
> Harry J.W. Percival
> ------------------------------
> Twitter: @hjwp
> Mobile:  +44 (0) 78877 02511
> Skype:         harry.percival
>



-- 
------------------------------
Harry J.W. Percival
------------------------------
Twitter: @hjwp
Mobile:  +44 (0) 78877 02511
Skype:         harry.percival
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20150420/971a3e43/attachment-0001.html>


More information about the Python-Dev mailing list