This is my follow-up opinion regarding a poll I posted on Mastodon recently.
To answer the straightforward question, my vote would be for “Python”. But, I’d like to give a quick history of my background with both languages, which I hope will explain my position.
Python was my first language, and I’ve continued to write Python here and there since ~2012 (holy shit, really?). After using it as my “learning language” I had a spell where I kind of hated it. The syntax bugged me and I had this thought, “Why would you write in a dumb slow interpreted language like Python when you can write in a superior fast compiled language like C”?
I think a lot of my negative attitude towards Python came from a genuine desire to be a really good programmer and thought that I should only focus on learning “the best” languages. I actually spent a lot of time this year trying to find that “best language”–and it actually led to depression and lack of motivation, but that’s a story for another time.
Now, within the past couple of years I’ve learned Pandas, worked on more data-science projects, and spent more time learning how to properly document and package Python projects. I’ve come to appreciate Python for what it can do, and to understand its limitations. I now understand it better and I have become more able to know when to reach for it, depending on the job I have to complete.
My feelings are ultimately “Python is okay sometimes, use it when it makes sense.”
During my first 2 years of projects at my first (and current) job, I wrote almost exclusively in C#. It wasn’t the C++ systems programming position I really wanted, but I was happy. C# had a static type system, what I considered to be a sensible syntax, and, heck, I actually really enjoyed writing in it.
But our API was written in Java, the evil illegitimate father of C#, and I harboured a dislike for it that caused me to frown every time I had to work with it. I realize now that my ill will towards Java was probably more a result of having to deal with the framework we used rather than the language itself, but after 2 years I decided to make my first big proposal at work and say, “This Java API has to go. Let’s throw it out and grab an intern to rewrite the whole thing.”