Sunday, October 25, 2009

StackOverflow DevDays - (Talk 2 of 6) Python

Me again,

Since I didn't knew nothing about Python and there was a conference about it, I did my homework and tried to at least know what it is. Well... I always hated homework so I just read one thing about it:
Python is a programming language that lets you work more quickly and integrate your systems more effectively. You can learn to use Python and see almost immediate gains in productivity and lower maintenance costs.

The Talk

Now that I knew the language's mission and was all ears, let's see if Jordan Baker convinced me to try it or even use it!

Well he began the presentation with some characteristics and facts about Python:

  • It is an expressive language
  • You can augment what you're already doing with Python (Can be used as an extension language in existing applications or in other words, glue the language to another program)
  • It is used in more places than you know
  • It is highly object-oriented
  • It is a dynamically typed language
  • Less code clutter (No curly braces, no semicolons) that eliminates syntax errors
  • The code layout is consistent across everybody
  • Python has a shell (prompt), so you can try out things live

I found it interesting and was eager to see some code! Immediately after that, my will was fulfilled... and maybe too much.

We stepped into a great program written in Python by the Director of Research at Google, Peter Norvig. The program is a spell checker that represents 80-90% of what Google actually uses in their spell-checking tools today. You can see the source code here.

I won't go into much details, analyzing the program line by line was interesting. But in my opinion, Norvig's brilliant algorithm was more interesting than Python itself. The link to the source code provided above contains clear explanations of the algorithm used. Check it out!

The presentation reached its conclusion with a listing of answers to the question Why choose Python?. Here's the list:

  • It's elegant and readable
  • The standard libraries are "batteries included"... You already have modules to read CSV files, to manipulate audio files, to compress and uncompress files, etc.
  • The language includes high level data types. A Dictionary data type is built-in for example, it is not a class included by a library.
  • Dynamic Typing. Makes re-factoring easier, compilation faster and a lesser need for interfaces.
  • Last but not least... #1 It's fun!

Overall, I liked the presentation. I'm wondering what my co-workers have to say about it... Sorry for the short conclusion, but I got to go!

Feel free to leave your comments or questions below!

Related Articles

See ya


©2009-2011 Mike Gleason jr Couturier All Rights Reserved