Live data from Hacker News

The Case Against Python 3

learnpythonthehardway.org

171–180 of 281 posts

Re: The Case Against Python 3

#171
post #13

"Python 3 Is Not Turing Complete" ... Not only is this blatantly false, but the author acknowledges it as such and seems to think that it is still OK to write this sort of sentence. Backing a pure falsehood with anecdotal support from "actual Python project developers" does nothing to change its veracity. I can't respect anything else in this article after seeing this kind of sensationalism. Perhaps the author doesn'…

Why the hell even bring that up. Not a very good tutorial in any way when the writer starts throwing around unrelated terms they don't grok.

It is also wrong, as PyPy interpreting Python 2.7 runs well in Python 3.

Re: The Case Against Python 3

#173

The author completely misunderstands the following: - The concept of Turing completeness - What static typing is - Why strings are not the same thing as byte arrays - That the distinction between strings/bytes is a fix for a problem exists with Python 2, not something that's "broken" in Python 3. I understand why people might still use Python 2 if they have a legacy codebase to maintain, or need certain libraries tha…

This kind of compatibility is what stifles Java and C# to virtually death.

Plus native code depends on particulars of CPython VM quite often.

Re: The Case Against Python 3

#174
As someone who has been extremely critical of the Python 3 debacle, even I think this is overdone. Yes, the transition was totally botched, and 8 years in, Python 3 still has less production usage than Python 3. But by now, at least, enough libraries have been ported or replaced that you can actually use Python 3. This was not true three years ago. Porting remains painful. I ported a medium-sized web backend system about two years ago. I found lots of bugs which should have been found and fixed long before, indicating that some standard packages were not being used much.

As for "Machiavellian Python maintainers", that's real. There have been explicit attempts to apply pain to Python 2.7 users. This has decreased since von Rossum got stuck maintaining Python 2.7 code at Dropbox as his day job.

Re: The Case Against Python 3

#175

Earlier quoted context omitted.

Even C has to deal with this. But is there any C11 compiler out there that will refuse to compile C99?

Python is an interpreted language, so the comparison is meaningless. It is cheap to deal with the ambiguity in the compiler using compile options. You could go the Java way and have separate class path (e.g. In PyPy, as CPython 2.x is dead). But this does not allow you to mix and match code for older version anyway. Java was designed from start to allow this and it is why it's so stagnant.

Python is an interpreted language, so the comparison is meaningless.

Bash has no problem running old Bourne shell scripts from ancient history. Browsers have no problem running JavaScript from the mid-90s. I fail to see how being an interpreted language is a valid reason for breaking backwards compatibility.

Re: The Case Against Python 3

#176
post #2

> Currently you cannot run Python 2 inside the Python 3 virtual machine. Since I cannot, that means Python 3 is not Turing Complete and should not be used by anyone. I stopped there.

Same. That's when I came back for the comments on HN

Re: The Case Against Python 3

#177
post #78
post #5

On the other hand, I never suggest Learn Python The Hard Way or Codecademy to any new programmer, because I don't want them to ask me down the line "why you directed me to an obsolete Python course?". I think I'm not the only one. So I'm not sure what's the net result of those decisions made by the two sites, do they really help in keeping Python 2 alive?

I attended a few newbie classes at pycon2016. A few of them suggested Learn Python The Hard Way, to which I pointed out how the author states to never try installing python 3 on the first page.

The author should essentially be banned from community and his book no longer recommended after that lest someone believes him.

You're essentially giving up great features like async keyword and proper encoding handling getting nothing in return. The few libraries that are still Python 2 only should be ignored.

Re: The Case Against Python 3

#178
FUD, really:

> This document serves as a collection of reasons why beginners should avoid Python 3

> The Most Important Reason Aledged 30% adoption. No sources for this really, just a number out of the blue. In me experience, most companies have migrated their internal software to python3, or are doing so. A great deal of desktop apps are already there too.

> You Should Be Able to Run 2 and 3 Like so many other languages/libraries, a major breaks compatibility. But hey, guess what? Python actually allows you to install and run python2 and python3 at the same time - most distros actually do this!

> No Working Translator Newbies have no legacy codebase no migrate. This is really off-topic. New devs can use code that is compatible with both, or just plain python3

> Difficult To Use Strings Only if you're coming from python2, but definitely not for new users, who have no background as to "how it was before".

I got bored of refuting the invalid points by this, but none of them have any validity, especially for beginners.

Also, I work at a university where we teach python to new students. They've generally had a much easier time learning algorithms and THEM migrating to C in the second semester (and actually tend to understand everything clearer) than using C as a starter. I've also never seen any of the above mentioned items being an issue.

Re: The Case Against Python 3

#179

Earlier quoted context omitted.

I feel like I'm the only one who learned Python from the official site's tutorial page: https://docs.python.org/3/tutorial/index.html I found it really helpful.

"I feel like I'm the only one who learned Python from the official site's tutorial page" From Py1.52 I've done the same. I wish every language was as well documented (Perl6 is pretty good) [0] as Py, especially the changes b/w versions. Rough order of reading: What's new, Tutorial, PEPs, Library references. Why is it good? It is canonical, pushed out as a release is done, comes with the install (cf: $ pydoc foo) and…

Same here.

Python is also rather outstanding in the sense that there are tons of good recordings of PyCon talks that explain almost every language feature in very approachable ways.

The quality of those talks is usually great too, it seems that PyCon consistently hosts very good speakers.

Re: The Case Against Python 3

#180

A lot of people seem to be confused by his Turing completeness argument. I think it's misleading and the phrase 'Turing complete' is a red herring. My guess is that what he was getting at was that other languages use 'compiler-mode' switches for compatibility-breaking upgrades so that you can use older code with newer code. For example, you can write a program in the latest dialect of Free Pascal that includes a unit…

There was no way to keep the compatibility given the string change anyway, as the literal is changed.

Port to Python 3 is almost never a rewrite.

Post reply on HN