So, I've been doing a lot of programming with Python lately and I've come to really love it. I've always found it kind of interesting that it was strongly typed, compared to say PHP or JavaScript, but figured that was something that didn't matter much.
Today I was reminded of how helpful strong typing can be. I've been working on some JavaScript middleware for an IP TV set top box system for a while now, and I just wasted two hours trying to figure out why something wouldn't record correctly. It all came down to JavaScript's interpretation of 0 + '0', which is '00'. That caused the UNIX timestamp I was passing to the recording function to have an extra 0 at the end, and the set top box reasonably didn't want to schedule a recording a few hundred years into the future.
Yeah... with strong typing that wouldn't have been a problem, since it would have exploded on that line with a very clear indication of why.
Python isn't perfect of course. My biggest gripe with it so far is probably how verbose and complicated its module and import system can get, but that's probably my fault more than anything.
I've also really been annoyed at the fact that Windows is treated as a second class citizen for some Python packages, and Python 3 is also treated as a second class citizen. It took me a few hours last night to find and install a library to output BMP files from Python code, during which time I could have probably coded it the hard way. Some packages didn't install on Windows at all, and some either didn't work with Python 3 or misbehaved in poorly documented ways with it. I'm still absolutely stunned that the NLP library installed on Windows with Python 3, but I did have to locate some files and move them around to get Python 3 to work with all of its features, none of which was documented. Some kind of serialized object... a pickled egg I think Python calls it?
I still have so much to learn about Python. Frequently I learn that some overly verbose or complex thing I need to do is handled natively or using some simple construct.