Beginning with Python; the right choice?

Kee Nethery kee at kagi.com
Sat Jun 27 19:35:03 CEST 2009


I'll give you the same advice I used to give to people when they  
wanted to decide whether to get a Mac or a PC, go with what your local  
group of friends is using.

In general, if you have a local friend who can come over weekly (or  
you can visit weekly) and have them help you with the stumbling  
blocks, that is way more important than whether one language is better  
than another. If there is someone at work who can stop by your desk on  
a daily basis, that is even better.

All computer languages have a learning curve and a whole set of quirks  
that are things that "everyone knows" (-: unless you are new to the  
language). Eventually you will grok the language and know all the  
weird gotchas that make no sense to a new person and from that point  
forward the documentation will make sense and you'll be able to go  
very far without having to ask others for help. Until that time,  
something as simple as the use of a colon instead of a semi-colon can  
halt your project for weeks. Having someone who can look at your code  
and say "there's your problem ..." is way more important than the  
language itself.

With all that background, here are my personal choices.

I started a long time ago with FORTRAN, BASIC, assembly language for  
single chip micros, and ultimately Hypercard and AppleScript (on the  
Mac), and finally the language used by the Arduino micros.

I've built a ton of code using Hypercard all the way from web server  
CGIs to standalone user applications, to unattended code that runs  
forever doing a task when needed. Hypercard is no longer a viable  
coding platform so I had to find alternatives.

For GUI stuff on a Mac or PC, I use RunRev.

For all the Hypercard stuff I've built in the past I migrated to  
Runtime Revolution (RunRev) which can be described as a multi-platform  
Hypercard on steroids. The workflow is similar to Cocoa on the Mac.  
You first create the user interface by dragging buttons and fields and  
controllers and such onto windows and then when you like the way the  
user interface works, you write code to have the various interface  
elements do what they are supposed to when a user interacts with them.  
For GUI type applications, things that run on a user's computer,  
sometimes referred to as a heavy client, I find Runtime Revolution to  
be extremely easy and I'm very productive in that environment. I have  
web CGIs built in RunRev and it works quite well but ... it is a  
single threaded system so a web site with tons simultaneous hits will  
have scaling up problems. That said, high traffic web sites do use  
RunRev but I wanted something that was not single threaded for web  
stuff.

For web stuff I have used RunRev but am moving towards Python.

I went with Python mostly because a friend of mine who knows me and  
who writes in many languages, thought it was the best fit for the way  
my mind works, and he volunteered to help me when I get stuck on  
stuff. He helped me find the Komodo IDE and got me set up to where I  
had a very simple hello world CGI that I could expand upon.

Python has a proven ability to scale up and support more users than I  
will ever need to support. It is what Google and many others run on.  
The philosophy is for there to be only one way to perform a function.  
A competent Python programmer can follow the code written by another  
because there is only one dialect of Python (unlike Perl). These are  
things I like about Python.

I'm using Python 2.6.2 with the Komodo IDE and I'm limiting myself to  
the packages that come with the standard install of Python. So I'm not  
using TurboGears or Django or WSGI or any of those, I just use cgi and  
urllib (and urllib2). Until I know enough to really understand what my  
code is doing, and more importantly what those packages are doing or  
not, I'm not going to use add-on packages. So far I have not needed  
them.

All that said, right now I am extremely inefficient in Python as  
compared to RunRev. I can build a fairly complex CGI in RunRev in a  
day, with Python, it takes me a month. Much of that has to do with  
RunRev being a variation of Hypercard (both use a HyperTalk style  
language) and I'm way past the 10,000 hour usage level on the  
HyperTalk language. I'm barely at 100 hours with Python so right now  
everything is a struggle. But I like Python and plan to stick with it.

Kee Nethery



More information about the Python-list mailing list