A few quick notes. Python, so far, is really a neat language. It’s fast to write in, it’s easy to do unit tests and using pydev made the transition to python a lot easier from Java. I’m not nearly a professional python developer by any stretch, but I can bang out python code pretty quickly now, and I’m pretty happy.
Duck-typing does annoy the heck out of me still, because I know things will crash at run time instead of easily caught errors being flagged while writing the code or while compiling, but I’m sure I’ll get over that, and unit tests do compensate for it.
I’ve also picked up Egit for version control, and that has been a bit confusing – not because it’s git, but because the git model of software development doesn’t provide an external backup for your repository unless you push it to the server. Somehow, I hadn’t actually realized that until I started playing with it. It simply means pushing to a branch at the end of the day for a backup, or at stable points, which isn’t a bad idea, really. Once I get more comfortable with the system, I’m sure it’ll work far better than SVN ever did for me.
Beyond that, I’m also pretty impressed with the libraries available for python. I’ve played a little with Pysam, and have been reasonably impressed with the results. I haven’t done any benchmarks on it yet, but I’m ok with it so far. It did take me a while to realize that an aligned read’s “.aend” property is the 3′ end and the “.pos” is the 5′ end on the positive strand… and I’m not convinced that I haven’t somehow introduced an off-by one error in the code, but these things will be sorted out in time.
Otherwise, I think I can say I’m reasonably happy with the choice of python. I’m looking forward to playing with a few other libraries, like matplotlib, and scientific python, as well as Tkinter, and – although I know there will be a learning curve on it – I think there are more than sufficient python tutorials and forums to help make it reasonably easy to get through.
Ok, time for some more coding. (-: