Well OK. I’m going to mark this as complete. Not that anybody ever finishes learning a language but I’m pretty compotent in Python now. Maybe an intermediate programmer at this point. I don’t have to look things up alot these days and have written a couple of applications including ones that make use of thing like list comprehensions and introspection. To be honest I still find a number of things in the language annoying, but that it actually does the things it says it’ll do makes in a marked improvement over PHP for web programming and it’s easier to read that Perl for everything else.
Spent some time with Turbo Gears and Django. They both do some amazingly stupid things the prohibit them from being useful for advanced applicaitons but I really like Django for whipping up quick applicaitons and it solves the needs of most of my clients. I just couldn’t get into Turbo Gears. I was more comfortable using it’s components namely Cherrypy and SQLObject than actually using the complete framework.
Python… hmmm weird. Been reading through the Dive into Python book and trying out some of the examples. Also wrote a couple of simple webapps using CherrPy. Python looks like it’s really good at a couple of things; managing lists, and doing math.
I can’t believe how “All over the Place” the community is. It feels like a Perl with no CPAN. One big HackerFest. I don’t think I’ve ever seen anything this disorganized. Perl, JAVA, PHP, and Ruby all have their acts way more together. One really gets a good sense of the language by visiting the www.python.org website. Recognize the style? Looks like something from 1998? This is very represenative of Python Culture in general. I’m thinking it hasn’t really evolved in years. Now weather they’ve just been to busy coding killer stuff… well we’ll see.
On the webfront. CherryPy is pretty much the starting point. Will probably move on to TurboGears latter but one doesn’t learn how a language interacts in a problem domain by using a full stack framework to solve all their problems.
There is a plethora well written modules for Python ( once you figure out which one isn’t a hack abandoned years ago ). It has excellent Obj-C and Java integration which is plus for me as I dig JAVA and love OS X. Two of my favorite companies ( places I hope to work someday ) use it extensively, Google and Apple.
So aside from a really fragmented hacker culture Python is looking pretty cool.
I’ve always found the best way to learn something is to learn it in a way that you will use it. So I’m starting off with Python using the TurboGears web framework. To be honest I’m not sure that Python will be the language I adopt. I’m currently looking at both it and Ruby. Rails is an extremely well thought out framework and Ruby is a nice language, if not a little odd. Python on the other hand has a larger community and many more modules. TurboGears unfortunately, as I’m seeing it now, is quite weak when put head to head with Rails. Anyway back to work… peace.
Why do this. Well because I like to keep a scripting language and a programming language in my bag o’ tricks. Current scripting language is PHP. Current programming Language is Java. PHP, to be quite frank, sucks giant donkey balls. So I’m looking at Ruby and Python to replace it. We’ll see which wins out.
This one is on hold until Turbo Gears gets a little further along. In the mean time I’m working Ruby on Rails. Once I’ve got my head around that it’ll be Python time. To be honest at first glance Python looks more promising than Ruby, but only time will tell.