Python2 demotion (moving from main to universe) in progress

Xen list at xenhideout.nl
Fri Dec 15 09:42:22 UTC 2017


Daniel Watkins schreef op 15-12-2017 0:05:
> On Thu, Dec 14, 2017 at 11:45:23PM +0100, Xen wrote:
>> The move towards Python 3 was forced, it didn't come natural for 
>> anyone.
> 
> Nope, I have preferred Python 3 since ~3.3, and the transition has
> happened over _more than a decade_.

So you waited till 3.3 until the language was "better" for you, that 
means at that point it was marginally better, with more to come later 
down the road.

It took 4 years for a version to arise that you liked better.

But there are 3 aspects here:

- self-convincing because you see no future in the alternative 
(self-deluding)
- lack of context for proper comparison (newcomers)
- technical reasons.

I argue that for the old established programmers now moving to, or 
"liking", python 3, nr. 1 is a larger component than technical reasons.

I don't know if the community is split around the lowlevel part, where 
those who have to write lowlevel libraries hate on (or hate) python 3, 
and those that don't have to love it because they only benefit from the 
new features.

The Tauthon guy actually professes to favour Python 3 technically.

Not practically, but ideally.

I don't know his reasons, but let's just believe him for a second.

   Let's believe he likes the str/bytes thing better because that's the 
only significant
   difference between his Tauthon and Python 3.

There are computer games in which you see the same thing.

Starcraft II is a game that superseded Starcraft I but the interesting 
part is money.

The professionals moved to SC II because that's where the tournaments 
were.

After a while they all got bored and the viewers also got bored because 
it was a game that was boring to watch, so they went back to SC I, but 
they really can't, because there are no tournaments anymore for it.

The "future" is SC II but for them it is empty, and the past is hard to 
revive.

This then finds a lot of people complaining about those "Korean gamers" 
who "refuse to move on" despite "SC II being a better game".

New people however are appalled by the amount of _work_ you have to do 
to play the game, in the sense of micro-management and keyboard use (the 
old game).

So *new people* are biased to like SC I ... I mean II, because they are 
lazy and spoiled and don't know better but these are also the people 
that more easily get bored.

The game means much less to them etc.

Their love is superficial. They are the smartphone generation.

Back in the 90s my friend who was into BSD liked to complain about 
Windows lovers who professed "It just works!" -- but he knew that for 
his use case, it limited him.

He knew that it would someday bite them.

If you always have your food handed to you, you don't need to know how 
to grow it yourself.
But when the time comes that you may want to move somewhere where you 
need to do this, your lack of experience will keep you immobile and 
paralyzed because you can only operate in a world where everything is 
done for you.

Some of Python 3's improvements fall into that category, "It works" but 
you don't know how and you don't need to do anything for it, and only 
later down the road you find that you are limited in what you can do (as 
a newcomer) because you don't have the expertise to work around the 
difficulties in getting "ordinary" stuff to work.

You, as a seasoned programmer, knows how to do this. The new generation 
will be clueless.

You only have this frame of reference because you experienced the old; 
you have the knowhow that comes with it.

New people will find barriers in their use of the system that does not 
impede them as long as they are doing their "walled garden thing" and 
actually, perhaps greatly, increases their productivity as long as they 
stick within that garden.

But stepping outside of that, it's impossible for them.

(I experience plenty of young people who are _afraid_ of computers, even 
those that are interested in becoming more experts).

I have a friend who is afraid to open a PuTTY session.

He thinks the world will explode if he does something like that.

Back in my day, this _never_ happened.

These people only know Windows or the Mac and have no way to look into 
system internals.

They barely know DOS of course, and have no reason to ever have learned 
BAT shell scripting.

PowerShell is even more a threatening thing. (Bash is more accessible 
than PowerShell imo).

If they program it is Python or PHP; with PHP still being reasonably 
raw, but Python 3 an abstraction.

I learned Turbo Assembler on a 80286. I am not that old.

But most people experience a mental block these days because they are 
only used to their walled gardens.

Python 3 is a step up in walled-gardenness from Python 2.

Now personally I am not completely anathema to *learning* Python 3.

Now for instance I ran into Python 3's "UserDict" and then found to my 
slight dismay that it didn't exist in Python 2.

Now I am actually happy about that in the sense that I wrote it myself 
using a MutableMapping and learned some language internals this way.

I *like* to get down and dirty sometimes.

I like to see the rough plumbing.

With OpenWRT "UCI" I had to dive into the generated rules because I 
couldn't figure out how to do something using the abstraction.

If the abstraction is faulty, failed or limited, it increases the 
difficulty in understanding the system and then you *still* need to get 
down and dirty in order to understand it.

I am not satisfied with a superficial knowing.

I immediately feel the walls of the walled garden, having lived outside 
of it.

But I have no reason to convince myself that "python 3 is better" just 
because python 2 is EOL, which is a *real* defense mechanic the mind has

in order to survive in a world where that which we depend on, no longer 
exists.


It is better to convince yourself you like it, than to live in 
unhappiness about something you can't change.




Personally I get nauseous when I see people proclaiming their love for 
Python 3.

It is a love devoid of love.

I am not fully convinced Python 3 is "dead" like this guy [1] but this 
is absolutely true:

"Ultimately though, if Python 3 were good they wouldn't need to do any 
convincing to get you to use it. It would just naturally work for you 
and you wouldn't have any problems. Instead, there are serious issues 
with Python 3 for beginners, and rather than fix those issues the Python 
project uses propaganda, social pressure, and marketing to convince you 
to use it. In the world of technology using marketing and propaganda is 
immediately a sign that the technology is defective in some obvious 
way."

"This use of social pressure and propaganda to convince you to use 
Python 3 despite its problems, in an attempt to benefit the Python 
project, is morally unconscionable to me."

[1] https://learnpythonthehardway.org/book/nopython3.html

I don't even want to read on because I don't want it to ruin what I 
think is still good about Python 3.

Yes, also a defense mechanism.

I think you can say that the Python 3 unicode implementation is arguably 
the worst out there, without even knowing all the others.

So you say you prefer Python 3.3 (and 3.4) (and 3.5).

I venture that not being stuck in a decaying technology is a large part 
of that.

I venture that most (but not all) other improvements are actually 
improvements.

Or at least a lot of them could be, and there is no reason to not 
incorporate "improvements" that are arguably likeable, even if you don't 
like the complete package.

I venture that without those improvements you might actually think 
differently,



but the biggest defect of Python 3 seems to be its unicode handling and 
the arrogance of its designers,

and I just think there can be no denial that they have used social 
pressure of all sorts, including the explicit impossibility to even run 
Python 2.7 code, in order to further their agenda.

Why you would want to have anything to do with that is beyond me.

"The Python project decided to make it impossible to run legacy Python 2 
code under Python 3. They even go so far as to claim this is 
"impossible" when basic computer science says this is very possible and 
done all the time. Given they controlled both language implementations 
and purposefully decided to prevent Python 3 from running legacy code, I 
have to conclude that Python 3 is defective on purpose.  [[ he means 
that that part is defective ]]. The end result of this defect is that 
most people will not bother switching to Python 3 as rewriting Python 2 
code is the same switching costs as just using a totally different 
language completely."

This is the author of a python book.

Apart from his pessimistic outlook, I second his statements completely.


>>   Lists became iterables. That is one glaring thing, even though I am 
>> novice
>> in Python, that
>>   appalled me.
> 
> Nope:
> 
> In [1]: type([x for x in range(3)])
> Out[1]: list
> 
> In [2]: type(x for x in range(3))
> Out[2]: generator

Sir, you have even no clue what I am talking about.

If you are so unimaginative that, even though you have a good grasp of 
the language (and the changes), you still don't know what I could be 
implying, maybe you should not enter a discussion.

> % python3 -c"print(list(filter(lambda x: x == 'b', ['a', 'b', 'c'])))"
> ['b']

I meant reduce, sorry.

Instead of being so clever to rush to the easy hits and then letting it 
follow at the end with your learned clever pun that you copy from other 
people.

> Please stop.

This ^^.

Maybe you should think about what someone could mean first.

The reason reduce was moved to functools was because the devs considered 
a for loop to be "cleaner code".

So they do it to force you to write their style of preference.

You are not given the choice here.

They decide for you what's best.

As said, Second System Syndrome.

"The second-system effect (also known as second-system syndrome) is the 
tendency of small, elegant, and successful systems, to be succeeded by 
over-engineered, bloated systems, due to inflated expectations and 
overconfidence."

You can read "overconfidence" as "arrogance".




More information about the Ubuntu-devel-discuss mailing list