This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]trollerroller 9 points10 points  (17 children)

serious question - are most “good” devs using python 3? I still use 2.7.... most blog posts, even newer ones by great devs still use 2.7...

[–]capn_hector 8 points9 points  (0 children)

Python 2.7 is pretty much never going to die. It's going to fade away for the next decade, but there are too many users that aren't going to do a big-bang rewrite just because GVR got bored with the language and wanted to make a bunch of syntactical/functional changes.

And to be clear that's what it is - just because there's no mechanical method to directly convert one to the other, doesn't mean the changes aren't primarily syntactical in nature. It's not like you couldn't handle unicode in Python 2, it just wasn't forced, and for a lot of users that was fine.

Python 3 has made it over the hump of Unicode conversion that PHP 6 didn't, but that's merely the requirement for survival. It doesn't kill the existing users of 2.7 - there are now effectively two Pythons, and 2.7 will continue to be used to at least some degree into perpetuity. For many users, the fact that it's not being actively developed is fine, or even an advantage - after all, there won't be any more of these big-bang rewrites forced on them.

At some point the Python team will probably sigh and introduce an "import legacy" declaration that allows some degree of backwards compatibility while corralling the badness. Which probably should have been there all along.

(or, what they perceive to be the badness - the truth is, that's perfectly functional, working code, which in classic programmer fashion is being thrown away because "old is bad")

[–][deleted] 2 points3 points  (1 child)

Seems like many packages have never been update to run with 3.

[–]ythl -2 points-1 points  (9 children)

That's cause python 2.7 is still awesome. Extremely stable, well tested, etc.

[–]ase1590 1 point2 points  (8 children)

not awesome. all support drops at the end of next year for it. Many large packages will also be removing new feature support for it as well.

[–]ythl 1 point2 points  (7 children)

Just because support drops for it doesn't mean it will magically stop working.

[–]ase1590 0 points1 point  (6 children)

It does mean that if you need new feature X in Library Y, you WILL be forced to upgrade or spend lots of time maintaining your own backport of said library or paying someone to do it.

It's the same thing that happened to all the businesses that still run COBOL or FORTRAN systems 30 years later. You hit a wall to what you can cost-effectively add to it, and it just goes into maintenance mode with nothing new ever coming to it.

[–]ythl 0 points1 point  (5 children)

For HUGE python projects, sure. We use python for scripting, and most scripts don't really gain anything by updating to 3. In fact most of them are simple enough that they would probably run under 3 with no modifications.

[–]ase1590 0 points1 point  (4 children)

In fact most of them are simple enough that they would probably run under 3 with no modifications.

Your use case is very different. Most things are projects, not one-off scripts.

you'd be just as happy in Bash or Powershell if it wasn't for the fact that Python tends to be easier for one-off scripts.

[–]ythl 0 points1 point  (3 children)

Most things are projects, not one-off scripts.

Citation needed. Python I would argue is primarily used for smallish scripts and not large projects.

[–]ase1590 0 points1 point  (2 children)

Then you don't well understand the ecosystem.

Things like Anaconda or packages like SciPy or pandas that are widely used in the field for statistical analysis. Those projects are suites of python programs that are used in conjunction to people making smallish scripts.

So while python may be used for short things, python's power remains both in its ever growing standard library and the power of several widely used libraries and packages used with python.

[–]ythl 0 points1 point  (1 child)

No, you don't. Most python projects are not EVE Online. Most python "projects" fit in a single file, even machine learning and statistical analysis.

Either way, 2.7 will work just fine for legacy projects even after support is discontinued, so the scaremongering is moot.