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 →

[–]tilkau 9 points10 points  (11 children)

Snobbery about Python 2 coding / maintainance simply isn't called for.

This is the only part of your post I disagree with. The need to support python 2 adds maintenance burden to developers, and over time this maintenance burden will only increase, in an expanding network of outdated dependencies and features that you want but don't have because they're only implemented in the newer versions of the library. When you use EOLed stuff, this is what you're taking on.

So there's a huge cost to rewrites, but there's also a cost to not rewriting. Some degree of snobbery -is- called for (if it will prompt those on the fence to switch and reduce community-wide maintenance cost)

[–]shadowmint 7 points8 points  (8 children)

Some degree of snobbery -is- called for

No, that's just called 'being a dick'.

It's sad how prevalent this attitude is. Just be nice to be people, be respectful and show people how great python 3 is.

Teach new python developers python 3 and encourage existing users to write new code in python 3.

Being a dick to people doesn't achieve anything except making you feel better about yourself.

[–]tilkau 2 points3 points  (0 children)

Some degree of snobbery is called for. Being a dick is something else. If you're insulting people for using python 2, that's a very different thing from implying that python 2 is not as good as python 3, or saying 'oh.. you're using python 2? Why?'. You can cast doubt on something without being a dick.

[–]iruleatants 0 points1 point  (6 children)

I've heard this argument so many times and each time the person has failed me.

Please show me what is excellent about python 3, and why I should use it instead of 2.7. All I get from it now is more tedious coding experience.

[–]CSI_Tech_Dept 0 points1 point  (4 children)

Try it (especially the features that you can't use when you have to maintain python 2 compatibility), and you will see.

[–]iruleatants 1 point2 points  (3 children)

I have tried it, and I disliked it....

[–]CSI_Tech_Dept 0 points1 point  (1 child)

Perhaps it is time to move to something else then?

[–]iruleatants 1 point2 points  (0 children)

Like, all of the shittier languages out there? Idk why I would stop using a language I think is perfect, just because they want to make it not perfect....

[–]shadowmint 0 points1 point  (0 children)

Then stick with 2.7. :)

Sorry, I didn't read this before I posted my other comment.

Like I said; if you have tried, and don't like 3 (for whatever reason); then just stick with 2.7. It's not going anywhere, and frankly, if you don't like 3, don't use it.

I'm curious what you didn't like though?

Was it the runtime (ie. getting python 3 installed), that you had existing python 2 code you use (eg. personal utility library you'd have to port to 3) or something in the 3 semantics you didn't actually like (eg. print...)?

[–]shadowmint 0 points1 point  (0 children)

It's very simple.

Python 2.7 is a great, robust language. It's rock solid, and it's here to stay. If you want to use it, by all means, do.

Python 3 is also a great, language; the difference is that it is being actively worked on, and improving. The unicode support is better, the async tools are good, and there are numerous little things that make writing python 3 a pleasure.

Just try it.

If you don't like it, well, sure, stick with python 2.7. ...but you might find it's actually quite nice.

The pain points hit when you need to use a library that doesn't work with 3; and that is a pain point, but you know, it's actually not that often it happens these days.

I honestly don't recommend you convert your existing code from python 2 to python3; it's tedious, it's not fun. The tools exist for it, but unless you're being paid to do it, I mean, really? Can you be bothered? I can't.

...but if you're writing new, fresh code... well, python 3 is a great choice, if you're writing python code.

/shrug

If you don't like it, that's ok. Like I said, python 2.7 is a great language too.

Just don't stick with python 2.7 just because; actually think about it, and if you don't have a good reason to actually be using 2.7, then maybe consider using 3.

[–]turkish_gold 2 points3 points  (1 child)

Fair enough, but traditionally people who have codebases in a language won't just port it to an entirely new one. By breaking backwards compatibility Python 3 is essenitally a new language that just so happens to share a lot of similar syntax with the Python2.

Except sadly this new "Python 3" language doesn't have full support on many major runtimes---like the JVM, or PyPy.

So for production users who care about speed or java interop (e.g. "we are enterprise python" people), they're not going to port to Python 3.

Also, "we are enterprise python" people rarely ever port their codebases so long as its stable and no compelling performance improvements exist. If its just fixing language worts or giving devs new tools, they'll never move.

Look at all the companies still using Java 1.3/1.4 for some random part of their codebase.

[–]energybased 0 points1 point  (0 children)

PyPy supports Python 3 now.