Programmer-Wanna-Be (Is Python for me?)

Niklas Frykholm r2d2 at acc.umu.se
Thu Oct 12 03:02:40 EDT 2000


>First let me say that I'm
>looking for a (relatively) EASY-TO-LEARN language with which I can also
>learn programming in general.  But I also want to be able to do more as
>I become more experienced. I have considerable experience hand-coding
>HTML (using notepad only on my Windows 98 platform), but I have no true
>programming experience.  Despite my aversion to WYSIWYG HTML-editors
>such as Frontpage, I beleive that any help I can get in programming more
>complex GUI Windows applications would be a blessing.

It depends a bit on what you want to do. Python is a great language.
Not only is it simple to learn, but it also teaches you good 
programming methodology. I find Python helps me to think about
my problems in a clear and structured way much easier than languages
such as C++, Java, VB or Perl. To anyone who wants to learn programming
I'd recommend Python.

BUT, if what you want to do is create Windows shareware or something
similar, Python has, in my view, two clear disadvantages

* NO CANONIZED GUI

If you want to make a GUI with Python you have to use an add-on product
such as Tk or wxPyhton, which means you have to install and learn
one of these packages as well as Python. And while I wouldn't go so
far as to call them un-pythonic, they are not completely pythonic
either... so you need to learn to think a little differently.

Also, there are no canonized GUI builders. Sure, there are some, but
you have to download and evaluate them yourselves. Many are in beta
and may behave unexpectedly, etc.

All in all, this means that it is not easy to whip up a GUI in
Python. 

Personally I think this is a disadvantage. Not because GUIs are
everything. Many people argue that it is better to learn how
to program first --- build functions and datastructures, and then
you can worry about GUIs and I agree with that in many ways,
but it can also be a bit BORING. Budding programmers want to
see results of their work and a GUI program shows it better
than a console application. The GUI will stimulate and motivate,
and when we are stimulated and motivated we learn much better.

I wish there was a simple and good looking GUI built into Python.
It didn't have to do be able to do everything, you could use
Tk or wxPython if you needed more power. (Take a look at the Rebol
GUI for example.)

To summarize. If you are patient, start working with Python and
learn how to program. Once you have learned that, you can go on
to learn Tk or wxPython or antoher language (don't be afraid to
learn more than one langauge). If you are impatient, you should
perhaps start with a language where you can get GUI results 
quicker.

* COMPLICATED DISTRIBUTION

Distributing a Python application can be complicated. If you say:
"This is a great program, but to use it, you must first install
Python, PIL and Tk and set up the following environment
variables..." you have already lost 95 % of your potential users.

There are methods of packing everything you need to run the
program into a single executable, for example "Gordon's installer"
but... if you are a beginning programmer it will take some time
to learn how to use them. (Someone really needs to write an
installer that is easier to use.)

// Niklas 



More information about the Python-list mailing list