Michael Bentley wrote: > OK. In order to kill the-thread-that-would-not-die(tm), I think I know > what I must do. I'll print a correction: > > On Apr 19, 2007, at 2:22 AM, Michael Bentley wrote: >> ... I switched to PyObjC. The >> learning curve is rather steep IMO, but worth it. One thing I think >> I should mention though is that if you move to PyObjC -- do some >> projects in Objective C first. Otherwise your brain will implode. > > Should be changed to: > > .. I switched to PyObjC. The > learning-effort curve is rather steep IMO, but worth it. One thing I think > I should mention though is that if you move to PyObjC -- do some > projects in Objective C first. Otherwise your brain will implode. > > Hope this helps, > Michael ;-) >
I had originally thought that learning PyObjC might preclude me from having to learn Objective-C, but that seems not to be the case. I have previously found the same to be true with PyQt and wxPython--not knowing the toolkits as they are implemented in C++ is a serious handicap. I've even found this to be the case with Tkinter: understanding the Tcl implementation of Tk (which I do, because I am also a Tcl developer) is a huge advantage. Am I wrong to conclude that, if you want to do GUI programming in Python, then some level of proficiency with another language is not just recommended, but almost required? This is the case at least in my experience. When I first started learning Python a couple of years ago, I spun my wheels with it for months, because I couldn't figure out where to get started with GUI programming. Finally I set Python aside and took up Tcl/Tk for awhile--its simplicity in building GUI's is more beginner-friendly. (No "there's more than one way to do it"--there's only one way to do it, and that's Tk.) Now, coming back to Python with the Tk model of GUI development burned in my brain, I appreciate the breadth of functions that Python supports--but I still find myself "dropping down into Tcl" (!) to assemble elements of my GUI's--either to write a Python wrapper, or figure out how to implement something in pure Python. I understand the argument for Python having lots of bindings to different GUI toolkits. If you are already proficient with a GUI toolkit in a compiled language (Gtk, wxWidgets, Cocoa, Qt) then presumably switching to Python will speed up your development--learning Python is easy if you already know C++, for instance, and usually the Python bindings are just a "thin wrapper" over the compiled bits. But if you come to Python from the other direction--you're a relative beginner and you want to learn GUI programming without the complexities of compiled languages--then it's a lot harder to get started, ironically. Even Tkinter is a challenge for someone who doesn't know Tcl. The basics are easy enough--buttons, menus, labels, images--but doing anything sophisticated, such as trees, column views, drag-and-drop, and so on, requires extensions that may or may not be implemented in Python. -- Kevin Walzer Code by Kevin http://www.codebykevin.com -- http://mail.python.org/mailman/listinfo/python-list