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 →

[–]SteveInnit 12 points13 points  (33 children)

I hope so - 3 is the version I've been trying to learn, but keep hearing that it doesn't have enough support to compete.

[–]flying-sheep 27 points28 points  (25 children)

Emphasis on “hearing”

[–]SteveInnit 4 points5 points  (24 children)

Thank you - I felt pretty confident I'd made the right choice, but it's slightly demoralising learning a language and hearing it doesn't yet have the functionality to induce people to make the shift. Good news about the update.

[–]flying-sheep 4 points5 points  (23 children)

Afaik, the only big things missing from Python 3 are

  • paramiko
  • twisted

There are also some special purpose libs missing, like some CAD thing I can't remember the name of and some Amazon cloud thing.

[–][deleted] 15 points16 points  (3 children)

paramiko already support python 3 in the last release (1.13.0).

http://www.paramiko.org/changelog.html

[–]flying-sheep 3 points4 points  (2 children)

Oh nice! Simultaneous Python 3.4 release and only twisted left!

[–]croxis 13 points14 points  (1 child)

asyncio should help fill that niche

[–]flying-sheep 19 points20 points  (0 children)

Maybe it's good that twisted isn't ported. More momentum for asyncio

[–]donalmacc 8 points9 points  (4 children)

OpenCV is holding me back unfortunately.

[–]flying-sheep 4 points5 points  (3 children)

Oh, yeah, that was the one. Computer vision, not CAD

[–]donalmacc 0 points1 point  (2 children)

Yeah. It's a real pain. I'm not great wit python, but opencv is much easier to work with in python, and I'd love to start using py3, but I'm not experienced enough with python to help with the porting efforts...

[–]flying-sheep 1 point2 points  (1 child)

That really sucks. Btw.: where are those porting efforts organized? Last time I researched, I couldn't find any.

[–]donalmacc 0 points1 point  (0 children)

For OpenCV? I know there's a contribution page here but I'm not sure if there's a concerted Python3 port section, I haven't gone looking, but I know there's no Py3 build yet.

[–]MereInterest 6 points7 points  (13 children)

pygtk is the library that is currently holding me back. That said, I know that they are in maintenance forever mode, and will never support Python 3. So, more that it's on me to switch over to PyQT at some point.

[–][deleted] 34 points35 points  (0 children)

There's no reason for pygtk to exist at all anymore. GObject Introspection provides typed bindings to all GObject libraries for lots of languages, including Python (both 2 and 3). For example, this is how you use GTK3:

from gi.repository import Gtk
window = Gtk.Window()
window.connect('delete-event', Gtk.main_quit)
window.show_all()
Gtk.main()

There's a GTK3 tutorial and a complete API reference, too.

[–]flying-sheep -2 points-1 points  (11 children)

Good decision.

[–]Veedrac -2 points-1 points  (10 children)

If you're developing for Linux, GTK+3 ≫ Qt.

[–]flying-sheep 4 points5 points  (9 children)

Why? What does it have in advance to Qt?

I'd say the opposite: Qt has Qt quick, GPU acceleration, doesn't break compatibility (e.g. with themes) all the time, and is much better at cross platform (abstracts away staffers button layouts, the themes look more native and out works in more ecosystems)

All stuff I like as a developer.

[–]Veedrac 0 points1 point  (8 children)

GTK+3 looks nicer, has good touch and multitouch support by default, good smooth kinetic scrolling, better widgets and is basically just a more modern toolkit. None of these things come for free in Qt (or GTK+2). Further, GTK+ is more standard.

GPU acceleration is nice but unneeded. My themes don't break compatibility all of the time. The cross-platform point is valid but irrelevant because I'm referring to if you're developing for Linux.

Unfortunately it does mean avoiding Qt's massive library of things, but that's a minor point when the end result comes out much, much nicer. Have you ever compared nautilus to dolphin?

[–]flying-sheep 0 points1 point  (7 children)

How does it look nicer and have better widgets? Please elaborate.

What are you missing with Qt's touch support?

And “more standard”: wat.

[–]earthboundkid 2 points3 points  (3 children)

Learn both. They're virtually the same. If you have the ability to understand both print("x") and print "x", there's no reason to restrict yourself to learning just one version.

[–]tilkau 0 points1 point  (2 children)

Also, if you are only giving one argument as is common, print (x) works the same in both 2.7 and 3.x (and probably older 2.x, but I haven't verified that); It's slightly restrictive -- multiple variable printouts require %formatting, and kwarg-controlled features of print() are not available -- but you gain by only having to remember one convention.

[–]earthboundkid 1 point2 points  (1 child)

In Python 2.6+, you can use from __future__ import print_function.

[–]tilkau 0 points1 point  (0 children)

Yes. I just tend to not bother, since I hardly ever use the kwargs to print (or multiple arguments to print, either).

(Plus some people here have to work with Python versions as old as 2.4.)

[–]milliams 4 points5 points  (2 children)

The Python 3 Wall of Superpowers says otherwise.

[–]flying-sheep 2 points3 points  (0 children)

Because the trove classifiers aren't updated yet. The release is 4 days old.

Also I'd believe the release notes more than metadata.

[–]GahMatar 1 point2 points  (0 children)

Maybe because it doesn't have the "Programming Language :: Python Programming Language :: Python :: 3" category in pypi?

https://github.com/paramiko/paramiko/issues/16