"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.
The Case Against Python 3
171–180 of 281 posts
Re: The Case Against Python 3
#172Re: The Case Against Python 3
#173The 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…
Plus native code depends on particulars of CPython VM quite often.
Re: The Case Against Python 3
#174As 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
#175Earlier 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.
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> 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.
Re: The Case Against Python 3
#177On 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.
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> 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
#179Earlier 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…
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
#180A 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…
Port to Python 3 is almost never a rewrite.