A year ago, I never envisaged myself writing this kind of an article. However, any state in life is temporary and opinions change, positions can change, relationships can change, and so perspectives on programming language can change. An avid computer expert, I have coded in different higher level programming languages such as C, C++, Python, Java, Scala, JavaScript, and now Golang. Even though there was a time when I used low level programming languages (assembly languages), I never felt a propensity towards them. When I started using Java, it just clicked. It started with Java 1.2 and continued till Java 1.8. That remained the impression for many years of my life and throughout these years somehow I made a formidable opinion that Java is the best language for enterprise level applications.

The use of concurrent processes that communicate by message-passing has its roots in operating system architectures studied in the 1960s. The first widespread distributed systems were local-area networks such as Ethernet, which was invented in the 1970s. I have witnessed the change in era from monolithic architectures to microservices architectures and now to serverless architecture. A decade and half ago, a monolithic architecture was the key to make enterprise level applications. Distributed systems made their way to the market with the advent of AWS, Hadoop, and Facebook-type applications. Yes, Google and a few organizations were already there as page rank algorithm was already in production. However, distributed systems in enterprise level applications were not that common. Then there was an era of service oriented architecture and component-based architecture. ESB was a buzz during that time. During all of these years, Java’s market increased significantly and many enterprise applications preferred Java as the primary programming language. Obviously, other languages like Python, C++, and Ruby were always there and were significant enough to capture the remaining market share. As Python and Ruby could not really address the system performance issues, many enterprises migrated their code base to Java, which was performance centric and addressed aspects like concurrency and parallelism. The advent of the multi-core processor also helped Java, as Java made itself a front runner for the enterprise level system. For those who could not find the preferable language, the JVM-based languages such Scala, Kotlin, Groovy, and Clojure were chosen as alternatives.

A year ago, I never envisaged myself writing this kind of an article. However, any state in life is temporary and opinions change, positions can change, relationships can change, and so perspectives on programming language can change. An avid computer expert, I have coded in different higher level programming languages such as C, C++, Python, Java, Scala, JavaScript, and now Golang. Even though there was a time when I used low level programming languages (assembly languages), I never felt a propensity towards them. When I started using Java, it just clicked. It started with Java 1.2 and continued till Java 1.8. That remained the impression for many years of my life and throughout these years somehow I made a formidable opinion that Java is the best language for enterprise level applications.
The use of concurrent processes that communicate by message-passing has its roots in operating system architectures studied in the 1960s. The first widespread distributed systems were local-area networks such as Ethernet, which was invented in the 1970s. I have witnessed the change in era from monolithic architectures to microservices architectures and now to serverless architecture. A decade and half ago, a monolithic architecture was the key to make enterprise level applications. Distributed systems made their way to the market with the advent of AWS, Hadoop, and Facebook-type applications. Yes, Google and a few organizations were already there as page rank algorithm was already in production. However, distributed systems in enterprise level applications were not that common. Then there was an era of service oriented architecture and component-based architecture. ESB was a buzz during that time. During all of these years, Java’s market increased significantly and many enterprise applications preferred Java as the primary programming language. Obviously, other languages like Python, C++, and Ruby were always there and were significant enough to capture the remaining market share. As Python and Ruby could not really address the system performance issues, many enterprises migrated their code base to Java, which was performance centric and addressed aspects like concurrency and parallelism. The advent of the multi-core processor also helped Java, as Java made itself a front runner for the enterprise level system. For those who could not find the preferable language, the JVM-based languages such Scala, Kotlin, Groovy, and Clojure were chosen as alternatives. […]