Advice requested: GUI project beginning

gregj at ancor.com gregj at ancor.com
Thu Mar 30 20:21:32 EST 2000


On Thu, 30 Mar 2000 12:35:09 -0800, "Russell E. Owen"
<owen at astroNOJNK.washington.edu.invalid> wrote:

>I am starting work on a telescope remote control user interface. It's a 
>big program with lots of windows and controls and display graphics 
>supporting the telescope and numerous instruments.

Sounds like a fun project!

>Python is a leading contender because I'd like a system that offers:
>- rapid development/change/test
>- robust
>- safe (automatic garbage collection and bounds checking)
>- runs under both unix and MacOS, if possible (windows wouldn't hurt, 
>either)
>- will probably be around in 10 years

Yup...Python is guilty on all counts.

>
>My development platform is Mac. I'd like to stick to that, but fear it's 
>not reasonable with Python because:
>- No threads on the Mac. (yet)
>- Tkinter is flaky on the Mac. For instance it doesn't run in the IDL 
>and it doesn't fully quit.

<sigh> Ain't cross-platform GUI a bitch? 

>
>Any comments? If I do switch, is Python development or support notably 
>superior under unix or windows -- aside from OS preferences? (Please no 
>OS flame wars.)

If switching is an option it would certainly give you better Python
support _now_. As for your platform question, various flavors of Unix
seem to be the best platform, but that distinction is getting to be
less and less relevant. The win32 & com extensions by Mark Hammond, et
al, work wonderfully.

*nix support still has the edge, though. Hell, it's a standard part of
many Linux distros, and easilly added to FreeBSD via the ports
collectioin.

In addition, Linux might possibly give you the option of staying on
your current machine(s) with the use of Yellow Dog Linux or other
LinuxPPC ports. I believe NetBSD has a PPC port as well,  and both
have 68K ports if you have an older Mac.

>What Python windowing environment do you recommend for a new project? 
>wxPython? Tkinter? Java (via JPython)? (Is there anything else?). I'd 
>prefer something that is easy to use and scalable.

I've mostly used Tkinter, because there is a decent knowledge base out
there, given its de facto standard status. The main platforms I use
(SUN, Win32 & Linux) all either come with tcl/tk as an (optional) part
of the OS distribution or, in the case of Win32, as part of the Python
install. Makes for one less thing I have to get the user to install to
use my code.

I've grabbed copies of wxPython/wxWindows and FLTK with its Python
interface. You might want to check them out as well.

As you've noticed, cross platform GUI isn't very smooth today. I'd
submit that this is true using *any* language system today, thought.
Java/Swing is often touted as the 'silver bullet', but experience here
at work tells me that it ain't. It does have the advantage of using
the vast Java hype flow as lubricant for getting the infrastructure
for your program installed on your customer's computers, tho.



>-- Russell
>
>P.S. I am also considering Smalltalk (superb language, but ugly GUI and 
>hard to sell to folks used to C/tcl/perl) and Java (reasonable Mac 
>support and long-term prospects, but not very malleable). Are there any 
>other languages I should consider?

No opinion on that here. Of late the only languages I tend to consider
for use are Perl if I need a quick one-off, C if I need to hit the
metal or for performance reasons, Java if I need to fix or modify a
project that was already written in Java and Python for everything
else. 

-- 
"If your map and the terrain differ...trust the terrain." -- unknown




More information about the Python-list mailing list