Python and JVM

Like many others, my programming journey began with something that wasn’t even a ‘real’ programming language—HTML and CSS. By the time I started college, I hadn’t had much exposure to true programming, but I knew one thing: I wanted to be a software engineer.

After starting college, I began to hear about various programming languages and technologies. I discovered C, C++, and PHP in the very first few months of my college. Everything about programming was fascinating to me. I loved the idea of writing code and seeing it work. Although it seemed magical and interesting, it didn’t seem very easy. After all, the purpose of machines and computers was to make our lives easier. But, why programming/development didn’t seem that easy? I used to have these kinds of questions while I was still exploring various things in the programming and computer science world. I mean why should we have to write so much code to make a simple program work?

Then, I was introduced to Python.

It was like a breath of fresh air. Suddenly, the code was simple, clean, and beautiful. Tasks that once took dozens of lines in C or Java were now accomplished in a few elegant lines. For a student learning programming, this was nothing short of magic. It wasn’t just powerful—it was effortless. Of course, I fell in love.

I started to explore Python more and more. I started to write small scripts to automate things, did some web scraping, and did some other small projects. During my college days, I also learned JavaScript since it was the language of the web and tried some hands-on Java as well since Android/App development was the hot thing. So, by the end of college, I was a graduate who knew little bits of languages like Python, C, C++, PHP, Java, and JavaScript.

After college, I started my professional career as a Software Engineer. And that’s when the relationship with JVM languages started. My first job had the majority of the codebase in Java and Groovy, and thus I had to work with Java. It was my first experience being gently pulled away from Python. But, I didn’t mind it much.

I switched to another company where I got the chance to go back to Python. It was one of the best times of my professional career. Beyond working in Python, I also gained deep insights into broader aspects of software development.

But, then again, I had to switch to another company and things changed. Though, by this time, I had matured as a Software engineer and had learned about the shortcomings of Python and the power of other languages like Kotlin, Go, etc. So, I started to face situations where I had to choose between Python and JVM languages or some other tech stack. For example, I had to choose Java and Kotlin because I had to build a distributed system to process high volumes of data and concurrency power offered by JVM languages was of great help. Since then, it’s been a situation where you have some projects in Python but most of the active projects are in JVM languages. For example, at my current company, we have a monolith and few services in Python, but every new service is being written in Kotlin. And this is the case at many companies. This trend looks like to continue unless Python comes up with something that can compete with JVM languages in terms of performance, concurrency, and scalability. Or something else happens in the industry that is very heavily dependent on Python. Or If I get into something that uses Python heavily like data science.

So, while Python will always be my first love, my career commitments to JVM languages or any other tech stack are what keep the lights on. But maybe, just maybe, there will come a time when Python evolves, or I find a project that brings us back together full-time. Until then, I’ll cherish the moments we do get to spend together—writing a script here, automating a task there—and maybe, one day, we’ll rekindle that first spark.


Rohan Jaswal

Software Engineer at Udemy. Playing around with Python, Java and stuff!


Subscribe

Intuit Mailchimp