Would the Java platform be a technology resistant to the different economic cycles that have occurred since its release in 1995?
Firstly, in order to understand the reasoning behind this article, we must define what economic cycles are and what it means to be resistant to them.
Note: This article may be especially important for those planning to focus their studies on a programming language and considering Java. The goal is to show how relevant the platform is in the current and future technology market.
Economic Cycles: In a very simple way, since this is not the focus of this article, economic cycles are the set of different phases of economic activity that can be specific to a particular country or even related to global economic activity. They are moments of expansion, slowdown, stagnation, recession, and recovery. There may be some variation in the definition/nomenclature of these phases, but the essential idea is that cycles are distinct phases of the economy within a period of time.
Depending on specific actions of each government, central banks, or other variables, the phases of these cycles may not follow exactly this order; a country may, for example, go through a period of stagnation and then move to a period of recovery without necessarily going through a recession. However, cycles tend to occur one way or another. Generally, the economy expands when individuals, families, and businesses consume more, leading to more demand for products and services and thus a “heated” economy. After a while, there is a slowdown and possible stagnation (which can also be considered in many cases as “financial crises”) and eventually a recession, and finally recovery, when the cycle is ready to start again.
Resistance to economic cycles: Products, services, companies, families, and individuals go through the phases of economic cycles in different ways. Some are more fragile and exposed while others are more resistant. A classic example that can serve as an analogy to the reasoning of this article is the automotive industry.
In the phase of economic expansion and high consumption, automobile brands tend to make good sales of all or almost all the models launched, and some bring good profits for short periods of time. In the phase of economic slowdown, some vehicle models maintain stronger sales, while others have a decrease in sales. Finally, in economic crises, models of vehicles that are already consolidated in the market and approved by a portion of consumers, with upgrades and evolution in the latest versions, end up maintaining sales while many others do not. We can say that the vehicle models that sell (even if less) even in financial crises are resistant to economic cycles.
How do the paragraphs above relate to Java as a platform?
Programming languages are technological tools created with the goal of developing software. There is a wide range of programming languages, and usually they are created to meet specific needs. In the case of Java, the main motivation behind its creation in the 90s was the need to run the same source code on different platforms and/or operating systems (OS) such as Windows, Linux, Unix, MacOS, etc. All the OS needs is the JVM (Java Virtual Machine), and the “magic” happens.
“Write once, run anywhere.”
This was the launch slogan of the Java platform.
But this was in the 90s when we did not yet have advanced computer virtualization technologies or the concept of containers such as Docker.
If today (March/2023) we have already advanced significantly in tools that allow executing isolated code in containers, why did Java continue and still continues to be a widely used platform for maintaining projects and also for creating new software projects?
Java as a programming language and platform performed very well in its main objective in the 90s and therefore gained a very large share in the market of applications of all kinds that needed to run on different platforms.
It can be considered that this advantage (running on the JVM) allowed the Java platform to be inserted into small, medium, and large projects of large companies worldwide very quickly. However, Java went further because it consolidated itself as a well-architected object-oriented language and despite the fact that the JVM consumed too many hardware resources from servers, the final result when the application architecture was well designed and the code was well written, were high-performance and reliable corporate applications.
Obstacles in the way
The 90s were an interesting time for the Java platform, but it grew even more in the 2000s. However, it’s worth noting that in the years 2000/2001, the internet bubble burst, which became known as the “internet bubble” or the “.com bubble”.
The Java platform, along with others such as PHP, sought to keep up with the growth of the then-recent internet. The novelty and potential of the internet caused investors to inject high financial volumes into all kinds of “innovative” projects for the new era of the web.
As in any financial bubble, the fact is that many of the companies did not have truly solid businesses, and when the investor market of Nasdaq (the US technology exchange) realized that many of the supposed technology companies were not viable, projects were canceled and companies were closed. The Java platform and others implemented support for web development in their structure. Around 1997, Java Servlet Specification version 1.0 was implemented, which allowed the creation of dynamic web applications with support for the HTTP protocol. Certainly, many of the companies whose projects were terminated due to the internet companies’ crisis in 2000 and 2001 used Java among other technologies to develop their products.
The fact that a huge financial crisis shook projects did not stop the evolution of technological platforms thinking about the future and growth of the web, including, of course, the Java platform. Companies that remained solid in the market (whether or not in the technology industry) continued to need more and more applications that ran on servers connected in different geographical regions, Java already had a large market and ended up being the natural choice for new projects and challenges in many cases. Since 1998, the Java developer community has had the JCP (Java Community Process), which is a community-led collaboration process to develop technical standards for the Java platform.
JCP members include companies, organizations, and individuals who want to contribute to the development of the Java platform. Anyone can become a JCP member, and there are different levels of membership available. It’s important to note that different companies have always had a significant contribution to this process, and among them, we can mention IBM, Nokia, Oracle, Microsoft, SAP, Fujitsu, among many others. The giants who have always contributed to the world of software development hold the Java platform in high esteem.
Year 2008, new global financial crisis followed by changes in the technology industry
In 2008, a new financial crisis erupted (the subprime crisis in the USA), which initially involved large investment banks. This time, the crisis was more severe because the markets were already more interconnected, and the effects were felt globally. One of the ways found by government authorities and central banks worldwide was to save the banks from bankruptcy by injecting money into them. In the decades that followed, Quantitative Easing(QE) was implemented, which was the act of flooding the economy with money while reducing the reference interest rate to avoid a general recession in the economy. Yes, it was an attempt to try to control the economic cycle or at least avoid the most painful part, which in this case would be truly painful globally.
Through QE initiated by several central banks in response to the 2008 financial crisis, especially the US Federal Reserve and the European Central Bank, credit became increasingly accessible, encouraging more and more risky projects and ventures. Investors had access to low-interest credit and returned to investing heavily in the new era of startups. The rule was no longer exactly to create a proven profitable business, but rather a business that would scale, grow rapidly, and dominate as much of the market as possible. Talented and not so talented entrepreneurs entered the race to “prove” that their company was the next one to be valued at $1 billion and thus attract heavy rounds of investment. Uber, Netflix, WeWork, and Spotify are some of the fruits of this era, but the market was flooded with many supposedly innovative new companies with different cultures from the old technology companies.
On the technological side, the Java platform remained strong but saw its space rapidly decrease. In the new world of innovation race, the area of software development and engineering saw the emergence of new types of architectures, evolution of some existing ones, and spectacular tools that allowed projects to scale quickly and efficiently.
One thing that cannot be denied is that cheap credit and the frenzied culture of fast-growing startups without profitability guarantees brought various technical challenges to software engineering teams worldwide. Java no longer reigned supreme in the new world; on the contrary, it now had new competitors (NodeJS, Golang) and some old ones (.Net framework, Python), while others like PHP, although still active, lost ground.
Year 2022 and 2023 — Inflation and credit crisis
Some economists and people who had been following the financial market since before 2008 had continuously warned that the injection of money into the economy from central banks and the low interest rate maintained for so long would probably culminate in inflation that would be difficult to control. To make things more dramatic, the world experienced a global pandemic in 2020 and the beginning of a war involving a nuclear power nation (Russia) and Ukraine in 2022. Boom!
To contain the inflation that took hold of the globe from 2021, the same central banks that allowed cheap credit and money injection into the economy began to “turn off the tap” and gradually and continuously raise interest rates.
The mass of startups that only thought about growing fast seeking new rounds of investments and never discovered how the business would give solid profit, began to see their investors abandon the risk of investing in “super innovative projects”. Without the money from investors, even consolidated companies like Google, Amazon, Microsoft, and others began to reduce expenses, cancel projects, and … lay off employees. What about startups that did not have cash flow as powerful as the Big Techs? Layoffs and more layoffs everywhere.
Legacy of an era
The Java platform saw Spring Boot dominate development with this stack and recently has seen Quarkus grow and gain a lot of market share, all in response to technical challenges related to business challenges. The software industry as a whole gained a lot, but what now? What to expect from 2023 onwards?
The legacy can be the seed of a future
I believe that the hype of new languages and frameworks in the visualization layer of applications (frontend), whether web or mobile, created the expectation that the future of software development passed by quickly learning and mastering such technologies since there were indeed many vacancies, especially in startups.
Now, with the market correction in a scenario where all companies go through some financial difficulty, it is realized that solid companies with business models already consolidated for a long time need to continue evolving and investing in technology and guess what, many of them never abandoned the Java platform. The community knows the legacy of what was done in the project that started led by James Gosling in the 90s. Some companies did adopt the new programming languages of the moment in some projects, and many of them heavily invested in hype technologies, but the corporate applications that are essential to keep the operations of large businesses worldwide tend to be maintained and updated with Java, C#, and technologies that for many of the new generation were considered “extinct languages.”
Obviously, many new projects will not use Java and new technologies have emerged, proven to be efficient and will also have a chance to consolidate themselves.
Startups that had a solid business with real potential for profitability should remain, and many of them also bet on the Java platform. The economy itself, at some point, should enter the recovery phase and new projects that will emerge when the economy heats up again will certainly consider the maturity and evolution of the technological platforms available.
The Java platform, considering the core of the programming language, has received great attention from both Oracle and the Eclipse Foundation. The platform has been constantly updated with new features that demonstrate a concern for keeping Java language modern, reliable, productive, and flexible without losing its robust architecture and already attested for over 20 years of use in the market.
RedHat has been doing a spectacular job with the Quarkus Framework, making Java a friendly, flexible, and economical alternative for cloud environments. VMware maintains the excellent quality of the Spring Boot Framework.
While software engineering is still mostly a field where people (and not AIs) define the best tools to maintain or start new projects, the Java platform will certainly remain strong in the software industry. If you already have a certain level of mastery of the Java platform, it is more than important to learn new technologies and evolve professionally. However, if you are thinking of starting to study or even deepen your knowledge in a programming language considering the job market, I believe this article can be useful in demonstrating that a well-built legacy based on solid foundations is generally resilient and long-lasting, and in this case, Java can be an interesting choice, although later on, career evolution may bring challenges of learning new and different technologies.
I hope the article has been useful, and thank you for reading.