>
> One thought: No.
>

I was still typing out my last reply when you wrote this Guido. With that I
think I will officially retract the entire suggestion.

Though I'm disappointed because casing-consistency is one of those things I
care about far more than I probably should (I couldn't explain the why, I
just do), I respect your opinion massively as I'm sure most of our
community does, so I don't see any benefit in continuing the discussion if
you're soundly against it.

Thanks to everyone who chimed in with their opinions, have a good rest of
your day :)

On Thu, Nov 11, 2021 at 7:53 PM Guido van Rossum <gu...@python.org> wrote:

> One thought: No.
>
> On Thu, Nov 11, 2021 at 05:41 Matt del Valle <matthew...@gmail.com> wrote:
>
>> So I was reading the docs for the `threading` module and I stumbled upon
>> this little note:
>>
>> Note:
>>
>> In the Python 2.x series, this module contained camelCase names for some
>> methods and functions. These are deprecated as of Python 3.10, but they are
>> still supported for compatibility with Python 2.5 and lower.
>>
>>
>> And it got me thinking.
>>
>> Given that there is some precedent, would it be feasible to make a
>> concerted effort to add aliases across the board for all public-facing
>> stdlib types and functions that don't follow pep8-recommended casing?
>>
>> I realize that large chunks of the stdlib predates pep8 and therefore use
>> various non-uniform conventions. For example, the logging module is fully
>> camelCased, and many core types like `str` and `list` don't use PascalCase
>> as pep8 recommends. The `collections` module is a veritable mosaic of
>> casing conventions, with some types like `deque` and `namedtuple` being
>> fully lowercased while others like `Counter` and `ChainMap` are PascalCased.
>>
>>
>> My motivation for this twofold:
>>
>> 1) I'll confess that this has just always been a wart that has bothered
>> me way more than it has any right to. I just *hate* it. Somewhere deep
>> inside my lizard-brain it makes me unhappy to have disparate naming
>> conventions in my code. I realize this isn't a good reason in and of itself
>> but I wonder if this might not be the case for others as well. While I've
>> come to accept it because that's just how it is, maybe it doesn't have to
>> be this way?
>>
>> 2) It's always been an extra thing to explain when teaching python to
>> someone. I always try to cover pep8 very early to discourage people I'm
>> training from internalizing bad habits, and it means you have to explain
>> that the very standard library itself contains style violations that would
>> get flagged in most modern code reviews, and that they just have to keep in
>> mind that despite the fact that the core language does it, they should not.
>>
>>
>> So the scope of my suggestion is as follows:
>>
>> - lowercase types become PascalCase (e.g., `str` -> `Str`,
>> `collections.defaultdict` -> `collections.DefaultDict`)
>>
>> - lowercase attributes/functions/methods become snake_case (no changes
>> for names that only contain a single word, so `str.lower()` would be
>> unaffected, but `str.removeprefix()` would get the alias
>> `str.remove_prefix()`)
>>
>> - pep8 and the python docs are updated to state that the pep8-compliant
>> forms of stdlib names should be strongly preferred over the legacy names,
>> and that IDEs and linters should include (configurable?) weak warnings to
>> discourage the use of legacy-cased stdlib names
>>
>> - `help()` would be special-cased for builtin types to no longer display
>> any current non-pep8-compliant names, and the python docs would also no
>> longer show them, instead only making a note at the top of the page as with
>> the `threading` module.
>>
>>
>> Given the horrors of the python 2.7 schism I don't think there's any rush
>> to officially deprecate or remove the current non-pep8 names at all. I
>> think that's the sort of thing that can happily and fully be kicked down
>> the road.
>>
>> If we add aliases and they see widespread adoption to the point where the
>> non-pep8 forms are barely ever even seen out in the wild then maybe in 10
>> or 20 years time when the steering council is deliberating on a new major
>> python version they can consider rolling the removal of legacy badly-cased
>> names into it. And if not then no big deal.
>>
>> So yeah, thoughts?
>> _______________________________________________
>> Python-ideas mailing list -- python-ideas@python.org
>> To unsubscribe send an email to python-ideas-le...@python.org
>> https://mail.python.org/mailman3/lists/python-ideas.python.org/
>> Message archived at
>> https://mail.python.org/archives/list/python-ideas@python.org/message/4MRTK7XL7LUJ3YAZ4UXEEUTM3LS4TMER/
>> Code of Conduct: http://python.org/psf/codeofconduct/
>>
> --
> --Guido (mobile)
>
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/UISOU3G4S75RNP37LNINB4ALTC2S5UG7/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to