I am a forgetful guy. I really don’t remember certain things, but others I don’t forget. Once, back in the late 90s, I forgot what year it was… a college friend mentioned a language called “Python”. He said it was super practical, very good, even being a scripting language.

At the time, I was already working with Linux, and anything to help was welcome. I downloaded Python and did the traditional print the primes, using lists, of course! Then I created an application to find duplicate files on the hard drive. That was enough to free me from Perl, which until then was the best scripting thing in the world for me.

I spent some time without using the language. I think until 2002, when a group of friends at work started a discussion about computer games. Since everyone was technical, the subject wasn’t the game itself, but the technology behind a game. Specifically, what interested the group the most was choosing the best language to code a game. Since this kind of thing is as exact as religion or politics… I decided to suggest that each one try to make a simple game with the language they thought was best.

I didn’t like Java, and I’ll explain why later. I started playing with Delphi, which was handy at the time. I had always programmed in C and didn’t need another test to know what I already knew: C is good, but there are better things nowadays. I remembered that snake language, Python (according to the creator of the language, Guido van Rossum, it is pronounced “Paiton”video subtitle).

Using Python and Pygame, I started a small “shoot them up”, like Space Invaders, after all, it was supposed to be a simple game. And if the original Space Invaders ran on an Atari with 1 MHz… it would run in any serious scripting language.

I started suspicious, testing the performance of the little monster I was creating. I was surprised to find that the performance was more than sufficient for what I wanted.

The language is really interesting: easy to learn, cross-platform, with access to all kinds of system libraries, databases, and even games! I continued making the small game. Graphics, sounds, joystick support, dynamic resolution changes, and support for multiple languages. A really simple game. You can see what I created at http://invasores.sourceforge.net/.

As for the other colleagues, one started a game in Java, I think it was even in J2ME… but it didn’t have colors. Other attempts left no traces. Now I had proof that Python was good, not because of the pure and simple superiority of its simplicity, but because with it I could do more in less time. Productivity at last.

Before, I had used Python to convert databases and perform operations with files. Since the experience with the game, I use Python for every small utility I need. And I am not surprised when I find other very good programs written in the language. Just the other day, I wrote utilities to load CSV files into a MySQL database and generate tables in LaTeX.

Besides the power of the language, its clarity is truly impressive. The so-called blocks by indentation met a desire I had for a long time. Mixing tabs and spaces is complicated, I know, but when you manage to do it right… you can achieve a clean and easy-to-read program. If you can read it, you can learn.

I taught programming logic to high school students and to some people in college. It was terrible to read a “toothless” program. Even harder to convince the creatures of the importance of clean code. This problem does not exist with Python. It will execute as it is written, or rather, as it is seen. I really like the language.

In addition to all this, the language comes with all the accessories, including an active Lusophone community at PythonBrasil. Only those who don’t want to learn won’t.

I continue programming in C++ and Java, but the other is Python.

Everyone knows where their shoe pinches. Python is not a silver bullet. But since there is no werewolf… Python your life!