Although Microsoft has been using the Java language in many of its products, a recent announcement on its website, “Microsoft is committed to the success of Java developers”, has officially sounded the call for Microsoft to fully embrace Java.
NET, TypeScript, Visual BASIC, JScript and so on, why did Microsoft go to the trouble of going deeper into Java?
Microsoft’s Latest Moves for Java
In this announcement, Julia Liuson, President of Microsoft Developer Division, said, “As a company, we are committed to making Java developers as efficient and productive as possible. This commitment means that developers can use any tool, framework and application server on any operating system.”
To that end, Microsoft has launched a new website dedicated to all things Java-related (developer.microsoft.com/java), which provides the latest content from Microsoft’s Java cloud development team as well as technical documentation, tools, resources, tutorials, videos and code examples.
In addition, Microsoft has also added a lot of support for Java in the direction of tools, including more Spring-related updates in the new version of VS Code, such as
- For one, it adds the ability to view Spring bean properties in live processes.
Without IDE support, developers would have to write code to get the ApplicationContext and call .getBeanDefinitionNames() to get the same result. For example
With this added, VS Code can present information about a bean’s properties, i.e. whether they are singleton, prototype, etc., and also mark its own beans with “defined” to keep things organized.
- Second, a better Spring starter experience.
By having the IDE automatically load Initializr’s HELP.md file, it provides a better startup experience for projects initialized with Spring Initializr. In fact, HELP.md contains useful information that most developers have overlooked in the past, and now with this improved feature, it is easy for developers to get started.
- Third, Java Project Explorer integrates with Maven and Gradle
Somewhat like Intellij, Microsoft has enhanced VS Code to make it easier to access the most frequent build operations, such as accessing the access POM or calling Maven.
At the same time, Microsoft has not limited its support for Java and Spring to VSCode; it has also enhanced its support for Intellij and Azure.
Microsoft’s Love-Hate Relationship with Java
Of course, the above are just some of the things Microsoft has done in recent times to expand its Java ecosystem. In fact, Microsoft’s “ambition” to take over Java developers is not just a day or two away.
If Microsoft, which once relied on Windows to build up its ecological empire, was unbeatable and went from despising open source and disliking Linux to “Microsoft loves Linux” under the wave of open source and digitization, and was on the top of the list of open source contributions, then its attitude toward Java has also undergone such a transformation process.
In the second year of Java’s existence, a group of forward-thinking people discovered the potential of the language, including experts from Microsoft. Bill Gates, then CEO of Microsoft, also commented, “Java is the best programming language in a long time.”
In response to this trend, Microsoft signed a Java license agreement with Sun Microsystems, which had not yet been acquired by Oracle, in March 1996. It can be said that this move by Microsoft to adopt Java also greatly contributed to the popularity and development of Java itself. However, the good times did not last long.
One day in September 1996, the head of Microsoft’s browser division explained in detail to Bill Gates, then CEO of Microsoft, the threat that Java posed to Microsoft and warned earnestly: “Java is not just a language, it is a replacement for COM (COM is the Componet Object Model, a programming model used extensively in Windows)! It is a replacement for COM (COM is the Componet Object Model, a programming model used extensively in Windows)!”
Immediately, Bill Gates sent an email to Nathan Myhrvold, then CTO of Microsoft, with the subject line “Java Runtime Becomes Operating System” and said “I’m worried about what Java/Javabean and its runtime will become and how many people will be excited about it. How many people will be excited about it. I’m really losing sleep over this issue because with the move to more server-based applications, it seems to make it easy for people to use our competitors’ operating systems.”
To reduce such anxiety, Microsoft has developed a Java integrated development environment, using the language J++. To some extent, J++ can be thought of as a variant of Java, with a syntax, keywords, and other similarities to Java.
Such a somewhat “marginal” behavior aroused the attention of Sun. Sun amended its lawsuit in May 1998 to include allegations of unfair competition and copyright infringement.
Sun argued in court that Microsoft viewed Java’s “write once, run anywhere” feature as a threat to Windows because Java reduced the incentive for software developers to write programs for Microsoft’s operating systems. According to Sun, Microsoft releases versions of Java that work better with its Windows software, a move that Sun’s lawyers say threatens Java’s ability to provide a cross-platform development environment.
Microsoft strongly denies any wrongdoing and maintains that it stands by its licensing agreement with Sun. The company argued that any changes Microsoft made to Java would simply allow developers to take advantage of Windows-specific features.
After three years, in January 2001, the two companies reached a settlement that ended with Microsoft agreeing to pay Sun Microsystems $20 million and a permanent ban on the use of the “Java-compatible” trademark on its products. At this point, however, Microsoft could continue to offer existing products using Java technology developed by Sun, but the lawsuit also gave Microsoft other ideas.
In July of that year, Microsoft announced that it would begin to discontinue support for Sun’s JVM in Windows XP, thus enabling its own .
**Why did Microsoft go on the offensive against Java at this time? **Why did Microsoft go after Java at this time?
So why is Microsoft embracing Java again at this time? According to Microsoft’s official explanation, “Today, more and more Java developers are considering how to migrate their existing Java applications to the cloud, or how to build new cloud-native applications. We’ve been working hard to make it easier for you to migrate your Java applications to the cloud using your favorite tools and frameworks. You can then easily deploy and scale using the same application servers and open source technologies you already know and trust.”
Over the years, Java has amassed a large developer community with tens of thousands of devices using Java, and in the cloud era, Microsoft has added a high level of support for Java to its product development process.
In addition to VS Code, mentioned above, Microsoft has Java in tools such as Intellij IDEA, GitHub, Playwright, Apache Maven, Gradle, and in some products.
For example, Microsoft’s support for search in the Windows Start menu in its search engine, Bing, uses Java to perform indexing-related functions, while Bing has hundreds of thousands of JVMs across more than 50,000 servers.
In August 2019, Microsoft acquired jClarity, a Java performance optimization company. 2021, somewhat coincidentally, on April 5, the U.S. Supreme Court ruled against Google in a lawsuit between Google and Oracle over the use of Java in Android. On April 5, the U.S. Supreme Court, in a lawsuit between Google and Oracle over the use of Java in Android, finally ruled that Google’s development of Java API code for Android was reasonable. The next day, Microsoft, a technology giant that had nothing to do with the matter, launched its own version of the Microsoft Build of OpenJDK, a JDK project.
Overall, Microsoft’s move is partly a move to get a foothold in the Java market, and partly a move to use Java heavily in its own infrastructure, especially its Azure ecosystem (Azure Spring Cloud, Azure App Service, Azure Functions, Azure Kubernetes), for which it needs to have its own unified and common way of building.
Further, as i-programmer commented, “Microsoft’s move also has the promotional motive of pushing Azure to Java developers, whom Microsoft is trying to lure, even by offering free courses to help them migrate their applications.”
Ultimately, though, it’s also good news for developers.