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
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to