Hey, friends, did you know
Microsoft has over 2 million
JVMs running
behind the scenes for things
that you know and love,
like Minecraft, LinkedIn, Azure
itself, MSN, Bing, and more.
That's made possible
by thousands of Java developers
just like you.
Bruno Borges is here to show me
how that enables Microsoft
to build the best tools
and services for you.
The Java developer today on Azure Friday
Hey, friends,
I'm Scott
Hanselman, and it's Azure Friday.
I'm here with Bruno,
who's going to get me up to speed
on Java development at Microsoft.
How are you? I'm doing well.
How are you?
I'm pretty good, man.
I'm doing all right.
I'm appreciating
being to talk to you
because it's been a while
since I've done Java, but
you you're like you love it.
Like I'm the C-sharp person.
You're the Java person.
And now we've got the best
of both worlds, right?
Peanut butter and chocolate together
on Azure Friday.
It seems like it seems like
it's Microsoft to Brad.
That's a good partner.
Yeah,
I was thinking more Reese's
Peanut Butter Cups,
but if there's bread involved,
I'll be there as well.
So is it true that there's 2 million
jobs running
behind the scenes at Microsoft?
That is true, yeah.
Last year,
we first of all, thanks for having me.
I've been watching you
all over the place, and I'm like,
when I'm going to have a chance
to talk about Java with Scott.
So this is.
This is it.
This is the moment, right? Let's do it.
So we have to your question.
Last year we did some assessment
inside a company,
and we identified
about half a million jobs.
But those were mostly me
and LinkedIn and Yammer and Minecraft,
which are
very well known inside,
at least inside the company.
Quite Java shop, right?
LinkedIn was even before LinkedIn.
And for those who don't know,
I created a patch of it.
Right, years ago.
And the use of Kafka inside Microsoft,
not on LinkedIn is huge.
Yammer also created a framework
called Trump
Wizard years ago, and it's still in use.
And then of course, Minecraft,
when you have job additions on the client
and there is a service called
Minecraft Realms
where we host the servers for the players
and all of that is backed by Java.
And at that
first assessment,
we identified about 500,000 jobs.
And then it started dig in and dig in.
And we continue to find even more jobs.
And eventually we realized,
oh, actually
we have in the order of millions of jobs.
And that's
where we are
counting today, about 2 million jobs
across the company
just for internal purposes.
This does not include
all of the customers on Azure.
That sounds like that would actually
qualify Microsoft as a Java shop, right?
I mean, there's thousands of engineers
that are using Java.
There's millions of jobs,
probably a ton of data as well.
So not not just a dot net shop,
not a Python shop, also a java shop,
you know, at its core.
Yeah.
I mean, we we like to show this
slide here
to people to get an idea like why
why is Microsoft using Java?
And I mean, it is LinkedIn.
It is an infrastructure at Yammer.
There's also many craft.
But we also
we also have an Android development.
Right? And Microsoft develops
a lot of Android applications.
And some of those applications
are written in Java,
sometimes even calling
sometimes cross-platform
technologies with Xamarin
but eventually there is a need for Java.
And we have thousands of Java developers
across the company.
And then also being in Amazon
that I mentioned here.
But yeah, 2000, sorry, 2 million VMs.
It's quite big for dot net company,
you know. Yes. Well.
I think it's interesting here
is that I'm also seeing
that little little star in the corner
there that says internal usage.
That's not customer workloads,
that's just internal
Java used at Microsoft,
which is a bigger number
than I would have guessed.
And certainly many many,
many more
when you bring customers into it.
So yeah, that,
that's a surprise
I think for some people,
but hopefully a welcome surprise
to the Java shops
and the Java folks that are
that are hopefully
watching this right now.
Yeah, and exactly.
I mean,
this usage of of Java inside
the company does
bring us to a point where
we have to engage with the community.
You have to engage
with open source projects,
and this is for the benefit of,
of our internal needs
and into the benefit
of our Azure customers. Right.
When we make those investments,
when we make those contributions,
everybody wins,
our internal Java developers
win, our internal businesses
win, and our Azure customers
also win from that.
So that's why it's important
that we have this community
engagement across the Open Julie Care
Project, the Eclipse Foundation,
and other projects
that developers know and love.
Mm hmm.
Now, I know that you've got
and you work on a lot of tools
and services
that are specially designed
for Java developers.
Maybe you can run me through
like a flow
of how you make things and what you use
and the tools you use to, to
use Javadoc Yeah.
I mean, we can get started
first with the beauty of open JDK.
I mean, this is
this is a major milestone for Microsoft.
Last year, we released a build
a binary off the Open
Decay Open Source project.
Open JDK is
just the reference implementation
of the Java platform.
Which includes
the Java language specification
and the Java Virtual
Machine specification.
And Open JDK is a GPL project
led by Oracle primarily,
but with contributions
from several companies
RedHat, ACP, Alibaba as all systems
and many others that some of them are
even our partners
in our commercial businesses.
So there's a lot of synergy
there and a lot of work
that happens behind the scenes.
Developers don't realize
we exchange a lot of information.
We contribute a lot in the project.
One of the things that we did
last year was bring support for open
free turkey on Windows on Arm,
which is
and some of the advancements
that we are doing
in our hardware and windows align.
So that contribution to the Open
JDK project actually enabled
other contributors
of the Open UK projects
to support those changes and enable
the Mac OS M1 support.
So in a way,
we can say that
we contributed to the open
tree to keep fighting to be better ported
or ported to
Apple and one devices,
which to some developers
it's mind blowing.
Well, it's exactly
what people wanted, right?
So you're giving the people
what they want,
which is great,
and they can take check it all out,
of course, at Microsoft.com slash
open JDK.
So that sounds like that's
where you start
your work in Java, is there?
Yeah, exactly.
And
what happened last year,
we released initially Java 11,
Opportunity 11,
and then by the end of 2001
2021, sorry I'm getting lost in that
2021. Geez.
Well just. We just very recently.
And recently we released Java 17
and one of the cool
things that people don't realize
Java 17 is today
the latest Lotus version of Java
and it is actually available already
online itself.
Java Edition.
So developers
that are running Minecraft Generation,
they are running
one of the latest
and greatest versions of Java today.
And that is that does not come as a small
initiative that
required a lot of work
from our engineering
team, the Minecraft team
and also the community of Minecraft
also builds
on top of a lot of open source projects,
so on.
So when we talk about
Java 17, we'd love to like to talk about
that Microsoft believes in modern job.
So in the same way that we are using
these latest versions of Java 11 and 17
inside a company,
we really want customers
to also see that,
see those benefits
and apply that to their cloud
developments
in their business applications
because there are lots of benefits.
So if even one generation,
if you're
sounding daughter are using Java
17 at home playing Minecraft
Java Edition,
why aren't you using that at work.
Right there's a lot of benefits for that.
That is a bit of pressure a
bit of pressure
to upgrade my Java services to 17
since my my
my kids are already doing
that themselves. Exactly.
Let's put some fresh of it
there
and the benefits do come to productivity.
Lots of changes in the Java language
the runtime got a lot smaller
and performance
in awareness of container deployments
deduce strengths,
which reduces the amount of memory
consumed by your job application
and faster startup time
and of course, memory management.
There are
some things that people don't
realize are like five garbage
collectors inside the JVM
that you can choose from
based on a top of your workload.
So once you monitor
your workload in production
or your own performance load tasks,
you can identify what is the best,
what are the right,
not that you need to tune in or JVM
to got the the best performance possible
very cool.
So one thing that I would like to explain
a little bit
is what you were asking before.
Like what
what are the tools for
Java developer that Microsoft provides
so we have Microsoft's beautiful JDK,
which is like very generic,
and we provide commercial spot on Azure.
So if you're running down on Azure
and you have an issue or problem
you can open a support ticket
and we're going to help you
with that one.
When it comes to developing applications,
you want people,
especially Java, that may not realize
that it is
a lot of tools
that we provide that
come with Java support.
We can suddenly playwriting,
vision certificate
or writing your job application,
you need an attitude.
Maybe
and of course,
there are lots of choices out there,
but we also have some views of city code
in partnership with Red Hat
and a VM refer to spring support.
And then once you have your code of
your microservice or web application
played right
can allow you to run an end to end
testing of your navigation
for all of your other applications
and it does come without supporting Java.
You can record
navigation flow in the browser
and generates a Java code
that you just can copy
and paste and put into a J unit
class.
And that becomes
part of your task
flow of your application.
Whenever you build it,
it will test your application.
When it comes to GitHub, GitHub Copilot
is this amazing thing that just realizes
what we are thinking.
I mean, you've tried pilot before, right?
God, it's
it's something that I mean, for,
for developers,
it's the next it's the evolution of the
they copy and paste, right?
We are so used to going to StackOverflow
or Googling and just you just want
you actually got that piece of code
and go copilots does that for you.
Yeah, I wouldn't even say I would
I wouldn't call it the evolution of copy and paste.
I think about it
more as a straighter line from my intent
to the computer's language expression.
So I intend to do something
I can express
that in my language of choice,
which is in fact English,
and then it'll express it in Java
and it jumpstarts my whole experience.
So it's great that we have support
for Java with GitHub copilot.
Yeah, and I think it's for,
for developers who want to
give it a try
right now, if
you are watching this video,
it probably air.
There is a wait list
to get access to the feature, but as soon
maybe we are what you are
watching is in the future
and that is already available.
But got you this URL
and you can find how to get access to it.
And then when it comes to building
and deploying your application
or actually building it
and doing like the psychology
of all GitHub actions
is, is the way to go
for lots of projects there there, there
there's plenty of documentation
about Maven and Gradle and end
which is these are the three build tools
most use actually Maven and great
or the most used ones
but aren't is still out there
and that's why
there is also documentation for that.
And finally the thing that,
the thing that I, I do realize is
the amount of job
applications that are deployed
to production on Linux servers is huge.
There are applications
that are deployed on Windows servers.
I did a survey on Twitter a while ago
and they found lots of stories
when it comes to production of job
applications. It's quite common.
It's Linux,
but developers do like to use
Windows for, for, for development
and also for gaming and other things.
So they kind of like this
single environment.
But we know subsystem for Linux allows
Java developers
to have this Linux environment
use it to access integrate.
And we just see the code
on their local computer
without having to switch
between Linux and Windows
in other operating systems.
So much easier.
And pretty much everything
that you do for Java,
at least server side,
it will work just fine over there
because it's Linux at the end of the day.
So these all these five things combined
plus open JDK
and of course plus of job
ecosystem gives a powerful environment
development environment
for Java developers
with Microsoft Technologies but you know,
you can build with Microsoft Tools,
but you can also build
with whatever you prefer,
whatever you're familiar with.
Developers have experience
with other tools.
The job ecosystem has been there
for decades, right?
So it's really about allowing them
to continue,
allowing them developing
whatever tools they prefer.
And you're familiar with
so that's why we invested
in a lot of plug ins
and things
to integrate with these existing tools
so they can get those benefits
for a cloud development.
And Java development.
But within the space
that you feel comfortable
with, but, you know, providing some value
as much as possible.
Right.
People don't want to change
their entire development workflow
just because they want to use Azure,
just because they want to use this code.
So you're meeting developers
where they are
and you're letting them use
the tools that make them happy,
which I think is really cool. Exactly.
Yeah,
you just said a code is interesting
because, you know, it's
this lightweight editor
but powerful with lots of extensions
that bring features that developers
actually look for.
But, you know, a job developer
may as well just use Vasco
as truly an editor
and just using Maven
from the command line
or greater from the command line,
if that is what they prefer.
So there's a lot of choice there as well.
But once developers
have those applications ready, they
they've developed a big task
that they've built.
They've collaborated
with other developers
through GitHub
discussions and issues and pull requests.
It really comes about,
OK, where do I apply this?
So Microsoft helped me
with all these tools,
but now I want to put these application
in the cloud.
And I mean, there's plenty of
options as well
for services
depending on the needs of the business,
depending on the needs of the developer
of the application
and all the way from VMs to containers
to pass services and very much like that.
Now, everything
that a Java developer can do here
but not developer can do.
And that is, I think,
what's the beauty of cloud development?
Because developers
from all different languages,
they meet right together
in the same place.
You know, it's so nice.
I mentioned at the beginning
that I you know, I did
I did Java
as many, many years ago,
but I'm looking here
and I'm seeing Tomcat
and I'm like, Oh, that's great.
And I'm seeing Spring Cloud.
I'm seeing things that are familiar.
While other developers might be looking
and saying, Oh, containers,
you can use that in communities.
That's great.
Oh, OpenShift,
I didn't know we had OpenShift.
We've actually got Azure Fridays on that.
So Java developers
should see themselves
reflected in this in this slide.
Yeah. I mean, don't count out.
Funny fact,
I saw this this morning, today
or this week during those recording
is the 18th birthday of Spring Framework.
So 18 years,
I mean, not now to celebrate it.
How many years? Just recently.
Yeah,
we got nuts on 20,
we had our 20 year
and then Visual Studio had 2525.
Visual Studio
pretty much was pretty much born
at the same time as Java and then
Dot Net
is born 20 years ago,
18 years ago is spring.
So all of these technologies
continue to evolve, continue
to learn from each other
and all to the benefit of developers
no matter what,
what choice they have, right?
I mean they can choose
whatever they want.
I'm realizing I was doing work in Java
20 plus
25 years ago in VI against a mainframe.
But yes.
And you could be doing
that today as well.
So yeah, any, any
Java developer
can use any tool that they want
and they're going to find a home
and a community on Azure,
which I think is pretty cool.
Yeah.
And I mean, I don't want you,
I don't want to be rude here
and just finished this presentation
without a demo,
but there's so much
that we want to talk about
and there's so much that we can like,
hey, here's how we do voice code
and then play it right.
And then Maven and then GitHub
and then Azure.
There's so much
that we have been working
on to integrate. And
so I have an idea, I have an idea,
let's do this.
So friends
who are watching Azure Friday,
this is part
one, part
one of Java development with Microsoft.
Stay tuned.
Coming up right
next is going to be part two,
and we're going to see all demos
in Visual Studio Code and lots more.
And I'm learning a lot today on Friday.
Hey, thanks for watching
this episode of Azure Friday.
Now I need you to like it, comment on it,
tell your friends retweeted.
Watch more Azure Friday.