Rambly introductory
Until recently, I had no reason to code something in Python, as I had all my bases covered by C/C++, ObjectPascal, and PHP.
Lately work has had me pottering with some utilities written in Python, and even though I don't "know" Python, I could read the code just fine (as I guess is the case with most coders), and it seemed like something that would be good for quick prototypes (especially as my main development machine is now a Mac - it comes with Python pre-installed).
So I set myself the task of re-creating
HelperMonkeyBot in Python.
Things I used
Having had some frustrations with getting an XMPP library and its dependencies set up and working with cross-platform C++ compilers, I was delighted to find
SleekXMPP, which is easily installed by typing:
python setup.py install
I had
Python 2.7 on OSX and Linux, and Python 3.2 on Windows.
I figured this would let me target the two different versions (and -hey-, how different could they be? More on that later, SIGH).
As before, I used
SQLite for the database, using the full-text-search capability it provides.
This seems to be enabled in the OSX and Linux distributions I was using (10.7 and 11.10, respectively), but not on Windows Python 3.2.
The easy fix is to go the SQLite website and download a new sqlite3.dll and plonk it in the Python32\DLL folder.
Well, it WOULD be, but I guess the API has changed (or something, I didn't have the patience to check)... so I did what any impatient prototyper would have done (just me?) and uninstalled Python 3.2, and installed Python 2.7, replaced the DLL as before, and et voila, success!
For an editor/IDE, I initially just edited the code in
Xcode, but that provided very little other than syntax highlighting.
So then I tried
SPE, which was great, I could debug code, set breakpoints, do all the things I'm used to with compiled code... buuut it would sometimes crash, or just act weirdly. Nothing deal-breakery, but my lust for shiny new things had to be met, and it was the perfect to excuse to look for MOOORE.
I then used
Aptana Studio 3, which has PyDev support built in, and worked pretty well (apart from the eye mangling default theme)... but still didn't feel quite right.
After much elimination and many crying supermodels, I finally chose
Python Tools for Visual Studio... what can I say? I absolutely adore that IDE.
All the shortcuts I know, incredibly quick stepping through code (with Python 2.7 anyway), easy process killing, warnings in the IDE about mismatched white-spacing... it just felt right for me.
The story so far...
Despite the warnings and dismissals from internet experts and people I know, my opinion is that Python doesn't suck too bad.
I know my opinion is worth as much as the rest of the experts, but it boils down to this:
Bad code is bad code, how bad it is depends on how much you let yourself abuse the available functionality.
This initial code for HelperMonkeyBot must be horrendous to seasoned (hmm, salty) Python coders, but it's a stepping stone for me, and one I am proud of.
Not because I learnt a new language, not because I think it's great code, but simply because I didn't abuse it too much.
I think the thing I like most about Python is the same thing that has me liking Pascal/Delphi still:
people who provide examples in Python/Pascal provide code that is understandable, and seemingly want to explain things more than C/++ coders.
For years I would search for things like "avi player delphi" because the code would be easy to read, and there would normally be an accompanying article.
The great thing is that Python seems way more popular than Delphi, so a whole new world of easy-to-understand code has opened up to me, huzzah!
So, soon I will provide an updated HelperMonkeyBot (I'm testing it at the moment) which -thanks to being in Python with some easy to use helper libraries- sends mail reminders.
Not the world's most amazing feature, but considering the C code I'd have to do for that... YAY!