Published July 13th, 2004

Having been introduced to Python years ago, I keep coming back to it.

For webpages, I used to prefer PHP, but increasingly I am writing native Apache modules and using XSLT output filters to generate my presentation layer. Writing pages in XML and C can still be painful. Far too painful for most people to use.

For Desktop Applications, I have always advocated C/C++ over Java or anything else. Its just the best way to make a fast and clean end user application. But this takes time. Far too much time for most people.

For Shell Scripts, I used to prefer Perl. But honestly, I don’t know perl like I used to, and trying to hack around with all those symbols is painful for me.

Some would suggest I should use C#/.NET. While I think the language and the platfrom are interesting, they still are not good for most Linux/BSD applications.

So, since I hate everything else, it leaves me with Python. The weird language that actualy cares about whitespace. I think that python does not improve code quality like some assert. There are still plenty of badly designed OOP interfaces in Python. Even Python has its faults. The Global Interpreter Lock still plauges multi-threaded Python enviroments. While Boost::Python isn’t Python, it is seriously flawed. I just spent hours today waiting for those huge C++ templates to compile.

Where does this leave me? There is no prefect language. They all have flaws. Perhaps Python is the least flawed of them all, if you don’t embed it in your game engine. That is about the only conclusion that I can make. Is there a vast world of alterantive languages that are perfect? How does everyone else deal with all these seriously flawed languages? Why does everyone need to know 5 different scripting languages?

Written by Paul Querna, CTO @ ScaleFT. @pquerna