In an ancient time, I wrote code in C++ (see here for a now dead project I was involved in). Since then, python has clearly dominated my programming and I came to really love it: Python is concise, readable and easy to learn (and teach). And I really liked python's duck typing approach, which basically meant that you never really had to worry about types. Then, over the past maybe 5 years, a number of different people kept praising the elegance and power of scala and they often highlighted one particular strength of scala: static types. What!? Wasn't that something that I had never liked about C++ and that I was glad to leave behind?
In the past couple of weeks, I made it a point to do a number coding katas in all three of these languages. Not surprisingly, all three of them have their advantages.