As part of my job I sometimes have to write code. I am not a Software Engineer – lucky me! – so I am not always coding, though. But when I do, I try to make my code efficient and fast, but if it was a web server or something, anyone could hack it in two minutes. Lucky me my code is just to run simulations, so I don’t have to worry about that.

Until now, I knew C, C++, Java, VHDL and Matlab. I haven’t used Java in a while, but I only use it when I have to code things that run online (now that I am thinking, I do code servers sometimes… oh well, they are in an internal network with no external access). I don’t use C anymore and C++ is what I must use when I code the USRP.

VHDL is what I used when I worked in California implementing a 802.11n wireless channel emulator for MIMO/OFDM indoor channels. I remember having literal headaches after work from forcing my mind to not think sequentially. In VHDL code executes “in parallel”, not sequentially. Someday I will write a post on the frustrations I once had with VHDL…

For anything else I use Matlab. I love it. I know many people hate it, but I love it. It’s easy, intuitive and I yet to find something I cannot do with Matlab and a couple of hours. However, I am now being challenged with a specific system/server on which I can only run… Python. I keep hearing friends, coworkers, etc. talking great things about Python but, until now, I didn’t need it so I just ignored it.

Yesterday I sat with zero knowledge of Python with the goal to make a decently complex program and make it work. One day and a half later, I can say I have defeated Python. The feeling of seeing the code work was worth the terrible headache I had yesterday. Now I’ll take a break, I’ll go for a run in Central Park and tomorrow more. I will be working with Python on and off over the next few months…

A couple of thoughts on Python: Yes, it looks nice and it is sort of intuitive. However, the way Python handles arrays, vectors and matrixes is confusing, counter-intuitive and, in my opinion, stupid, very stupid. I get it, a matrix is a vector of vectors now. But I have nightmares just to think about the day I will need structs and arrays of complex structures with Python.

To finish this post, I will just suggest the tools I like to use to code:

That’s it for today. I hope I won’t have to learn any new programming language anytime soon.