Back to JVM

Story or reasons why I am back to JVM after venturing through different programming languages.

I am an avid programmer and like to try out every new programming languages and environments that comes out. I started programming when I was in class 5, that’s around 2005 with my first programming language C. At that time I had no idea that my life will be this programming but I liked when computer first returned traditional ‘Hello World’.

I had no idea what’s dynamic and statically typed languages are but thanks to my computer teacher and my school which included computer as a subject I came to know about compilers and interpreters, i.e., approach to a problem in two different ways. If you don’t know the difference it’s simply as I was taught as a student of class 5, compiler converts whole source code into machine language in one go and interpreter does it line by line.

Compiler converts whole source code in one go to machnine code while Interpreter does the same line by line.

In class 8, that’s around 2008 I came to know about Java not as course subject but a growing interest in programming. I can write code in Java but I had no idea why I am writing that long code which includes class name with accessors, methods (even I don’t know what’s difference between functions and methods), simply I had no idea about OOP (Object Oriented Programming) concept but as begineeer it was hard for me to do coding in java as there was no internet availible and only source of softwares I had was a friend with crappy BSNL connection and Digit magazine and environment setup was hectic for java.

Statically typed languages are those in which programmer has to define type of variable when defining a new varibale like C, C++, Java etc.

In class 11th, I opted for computer science as my fifth subject and there I was introduced to another programming language which I am still fond of C++ which introduced me to OOP concept even not being a strong OOP lanaguage and C++11 was released. There I learned about classes, objects, instances, polymorphism, encapsulation etc. but still Java was under my radar. From magazines and friends I came to know about frameworks and libraries used to make web applications (web backends) using Java and at end ot class 12 I was introduced to new world of programming that’s dynamic languages.

Dynamically typed languages are those in which programmer has not to define type of variable like Python, Ruby, Javascript etc

I learned Python and it was cake walk for me to complete basics as I already know basics of 3 statically typed languages and I joined engineering in Computer Science and Engineering stream and my second dynamic language Ruby but my 3 old statically typed langauages are still under radar. I my second year of college I had high speed internet connection and suddenly a huge update in Java was released Java 8 and I came to know about ‘JVM’ and it’s internal working and second language to run on JVM and my third dynamic language, Groovy. By this time was hearing about a third JVM based language which was easy and interoperable with Java named Kotlin with another language named Scala which gaining popularity in field of machine learning.

By this time, I got out of Java, I don’t why but I didn’t liked it by heart I was more into web development and dynamic languages like Python and Ruby seems promising to me with there frameworks like Django and Rails. I know Spring and Grails were availible but lost interest in Java and I had just written only hello world in Groovy. About Spring Framework,it was just a mess and too complicated to set up for me.

2015 I was bed ridden and as having no work to do I just started reading articles, books and research paper related to computer science and I came across Node.JS. Node.JS is one of favourite and I think it will remain favourite for me for long time, it will take other article why. After venturing whole Node world in 2015 and 2016 I came across another statically typed language Go or Golang (for your knowledge framework I am using to write this blog using Golang) and suddenly news came in 2017, ‘Kotlin is now first class citizen for Android Development’. So, I thought it to try out and started developing apps in Kotlin in parallel to Javascript frameworks for mobile and Flutter.

Flutter is a cross-platform mobile app development framework by Google which uses Dart programming language.

I started gaining interest in Java again with functional programming languages which I am still trying to master basics, I started researching again about this language and I came to know that it came too far from where I left it, with Lambda expressions in Java 8 to REPL/JShell and modularity in Java 9. A huge improvement in startup time of JVM Hotspot and alternate options of JVM and native compilation of Java code. Biggest one for me was Spring Boot and Spring Cloud.

Java and JVM is around 23 years old which means companies like Oracle/Sun, Google, Pivotal etc has invested last many years in developing and optimising this language with large support from companies like Netflix.

At this moment I can say I am back to JVM not particularly Java but JVM with more core computer science knowledge and experince in working with different languages and appoarching same problem in different ways. I always had and will have a love-hate relationship with Java.

More aricles to come related to my story and ventures in programming and this field I passionate about.