James Gough

Distinguished Engineer, Java Champion, Speaker and Author
JDConf Day 2: Keynote: Microsoft, Java and you!

28 Oct 2020

Keynote by @karianna and @gdams_.

Visual J++, we are sorry about that, looked like Java but was not the right approach. We want to convince you that is not the Microsoft of today.

Building the Team

“We are all in on open source”
[Satya Nadella, 2018]

jClarity was acquired about a year ago bringing Martijn, Kirk and George along with them. This was the beginning of the Java team at Microsoft. Behind the Scenes Microsoft wanted to pull together a diverse and distributed team. The Microsoft Java team went out and hired key industry experts and also internal experts. Culture is important to Microsoft and to the team.

Usage of Java at Microsoft

Behind the Scenes

Behind the scenes there is a huge amount of java running at Microsoft and it’s acquisitions. Upstreaming everything is a key aspect of the team and the approach. Since the team formed Developer Outreach has been a key, and the team have spoken at many major conferences.

Microsoft signed the Oracle Contributor Agreement OCA in October 2019, which is a huge milestone for a large company with IP and legal concerns. The OCA allows Microsoft to be able to contribute to Java. Behind the scenes Microsoft has been starting to join key communities such as the OpenJDK, AdoptOpenJDK and are now looking to get involved with the JCP.

Examples of Contributions

Have worked on some key performance enhancement. One example of those is MD5 hashing, which was written in Java and therefore always interpreted. The contribution creates native code boosting the performance of MD5 hashing by about 15%.

MD5 Hash Patch

Another example is Stack Allocation alleviating GC Pressure by allocating an object on the heap instead of on the stack. Work on escape analysis and looking to increase the coverage on what is covered by the compiler.

Partnerships and Java Relevance

Azul is the default supplier of the JVM for Azure. Web containers and other platforms have been brought in to improve the deployment options for Azure users.

Java is still extremely relevant and this is clear in many of the statistics.

Java Relevance

Windows Arm64 Port

In June 2020 Microsoft contributed an Arm64 port for Windows to OpenJDK. RedHat owned the Arm64 port and quickly agreed to partner and collaborate. Monica is going to give a more detailed talk on the Arm64 port later in the conference. This feature will be available in Java 16 early access now and GA in March.

To be Java compliant you need to comply with the TCK. In order to access the TCK you need to sign the OCTLA. Microsoft managed to sign this in July 2020 and are now working on improving the devops and build times around the TCK to run these tests.

AdoptOpenJDK

Sponsoring infrastructure on Azure for three years! The project is moving more towards scale and elastic compute and away from VMs. The build and test pipeline looks like this:

Build Pipeline

Many of the providers of OpenJDK builds are utilizing the build infrastructure. AdoptOpenJDK just hit 200,000,000+ total downloads. AdoptOpenJDK is a community effort and has no vendor lock in. Microsoft is collaborating with competitors on the build infrastructure. The Eclipse Foundation is taking on the responsibility of the AdoptOpenJDK environment. The platform outgrew the London Java Community and it was natural for this to move to the Eclipse Foundation.

Java on Azure

The Java team has also been working on helping to deliver Java to Azure. Azure Spring Cloud has moved to GA, and we saw a great demonstration of this yesterday. It helps abstract the management and deployment best practices needed to run a great application.

Microsoft has the belief that instead of changing your application to work on Azure, Microsoft will provide the options for you. JavaEE partnerships are also in place, so you can use any of the major application services + Spring. Visual Studio Code also supports lightweight code editing for Java and Cloud Native Development.

The Future of Java Engineering Group

The team plans to continue to contribute to OpenJDK. Arm64 backport to Java 11 and advocate the move from Java 8 to Java 11. The team is open to feedback and wants to hear about pain points. Microsoft is committed to Java.