Comparing scala, python and c++

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 much of 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.

Python

Things that are really cool about python

Unfortunately, some things are also really annoying about python.

C++

Some things are cool about C++.

Yet, C++ has a bunch of disadvantages.

Scala

I agree, scala is really awesome. In a way, it brings together the performance and multi-threading capabilities of C++ with the high-level thinking of the python world.

Turns out, the disadvantages of scala didn't immediately come to me. Here are some

Conclusion

Different programming languages have different strengths and weaknesses. Here I summarized some experiences that I had with Python, C++ and Scala. Scala is fairly new to me and I am positively surprised by it, but it certainly won't act as the glue that python is and it is more removed from low-level computing than C++.