Archive for 2017年10月4日
JavaOne Keynote Subtitle
I made following subtitle for JavaOne 2017 keynote which used Microsoft Cognitive Services.
Following is the all conversation, the bottom is first, the top is the last message from George.
**********************************************************************
Thanks everyone and enjoy Java one.
One of these things I will mention tomorrow. There is the oracle code keynote. It’s 4:15 at the marriott marquis. He won’t want to miss this after the wall is generally regarded as one of the founders of modern dev ops and Bust Benson is from slack please go and check it out. It’s free for all job one attendees.
It’s promised got see a lot of interesting things today. And there’s a lot more interesting stuff to happen at the conference.
Alright Thanks Mark Brian.
One example of the long term investments were making in Java there other larger projects. Not just the ones listed here but many others there’s a continuous pipeline of smaller peters that are smaller but no less important than all of this work was not just keep moving forward faster.
Amber is just one of.
Be sure that we’re laying the foundation for the thing we don’t really want to do. Yes. We did all right. Thank you very much Brian. Thanks marks.
So I don’t know. Let’s you expressed this in the sort of direct way that you want to in the first place. So, you know what we’re saying is worse we switch on the shape, and we’re saying is it a circle is so Casagemas circle extract its center and radius rep properties and then use that to compute an expression for. The area of the circle and simply for the square in similar rectangle. So, it’s kind of saying what you mean without all of these layers of a boiler plate very nice, now that now that’s up that much bigger thing they did on this far, right? So it’s going to take some time to do this, how are you. Going to do this given the teachers are only going to be very future releases will lead to 6 months apart. So we know we’re gonna break it up into smaller pieces, and right. So, you know, the first example, we showed with type test patterns. We do that first and then we can add more different kinds of patterns more different places in the language to use patterns over time of all the way it makes the job, harder cause we have.
Ugly as hell sport even worse that are still.
You let her focus less error prone faster rate factor. So patterns are roar cool with these seem fairly somewhat limited in maybe generalized to bigger cases in the ***. And this is a really simple example, but more commonly when I when we’re called upon to make a multi way decision where handed complex objects which were going to be structure and take out their state, and then do something. With him. So as an example, let’s say, we have a hierarchy like this where you have a shape and you have circle implement shape. And it has a centre radius squared implant shape and it has corner and edge and let’s say we want to calculate the area where I’m saying. So we know, it’s going to be one of these three things we know we’re going to have to take them apart. So we can use more called destructuring patterns to rip through all the boiler plate that we would have had to write right. So if we were writing this the old way it would either be bigness.
Right. Exactly like this. And so now, this is probably the code that who you were that you had in mind when you were writing the code on the first slide in the first place but you couldn’t write it this. So you had to write it in this right round about way. So this is code. That’s more readable more maintainable much less error prone and as a bonus faster cause the other first code was a linear chain of tests by expressing it as a switch the compiler can turn this into a scission tree has. Probably be faster as well. So.
Doing this in a very roundabout way where since I switched the statement in an expression we have to make an assignment in every arm of his which statement, it’s easy to forget to do that in one or minus your. Test don’t have enough coverage, you just have a bug net, that’s lying around. So we can make this example, even better by turning switching to an expression.
So already the code is becoming more readable, and it’s more obvious, what’s going on because we’ve eliminated a lot of the craft but you can still see there’s still some repetition here were kind of.
And so, you know when I if we enhance the switch statement to deal with patterns, which is what we’ve done here we can make this code a lot easier. What’s the new thing that’s going on here are these pace labels. They’re not constants their patterns and a pattern is a combination of an aplique ability to ask are you an integer with some kind of conditional operation that you’re going to do if the test succeeds cafta to an integer. And bind it to a fresh local variable which in this case of cold. I.
So there’s a lot of repetition in this code and as a result. These are places for bugs to hide we’re going to better we can do a lot better. So morally the code on the previous slide wanted to be a switch which is really pretty limited switch can only switch on certain types can only compare against constants.
Don’t we do right?
We cast it Mike.
Do it has the ability to simplify the kind of code where you have to do multiway conditional operation code like this cook code like this. So your hands in an object whether it’s a parameter or you’ve read it in for the socket and it’s going to be one of 10 different things and if it’s this you do this and it just do. That. And this is how we write this code today. And I’m the one hand there’s nothing wrong with this code cause it’s really kind of what you have to do on the other hand, there’s like everything wrong with this code, right? So it’s propose right. It’s repetitive and the problem with repetitive code is a tends to be error prone, you know we do this by cut and paste without a secret shop in the sense that it was just like a taste of China season. May cut and paste errors and, you know the repetition is really overwhelming, right. So not only are we saying are you an instance of this you can have that but after we got into this up to ask the next what’s the next thing we do.
And more recently you started to see object oriented programming languages like say Sharpen Scala adopted features, well and we think it’s really good for Java. And so sort of to motivate would why we think I don’t magic is interesting.
So what else going on in amber? Okay. So the next I want to talk about is actually a much bigger feature and I had to teach I’m really excited about is called pattern matching pattern matching is a feature that’s been around that’s been associated. Historically with functional program language.
So it will be in a production release in March excellent. That’s pretty cool.
The actual commitments the Trump last week.
Okay. When we have this. So it is already committed this will be I think this is been committed to Jeannie. Katie Mcgrath stories and should be shipping you mean anything got 3 18 doc three sms.
It’s not dynamic typing reason not to have typing it full static typing that with the same static typing we’ve always had it’s just a compiler figuring out the type of thing from information. That’s 40 in your program.
One of the things that we’ve noticed is that at least in, well written code that name is actually more important than the type of book is it talks about how the hell that variable what it means in your program. Not across all programs man. So if we allow the compiler to infer the type for you the effect that it has is to sort of bring the name or front and center put some more important information where we can see it like this. Exactly. So the almost the first thing you see are the names and, of course, if you pick bad variable names then you’re totally unreadable, but we didn’t I’d never been I never I never knew that he is at home.
I know what 1 1 of the sort of sub projects of amber is called local variable type inference. Yeah. What’s that all about, okay? So look they’re both type inference is a feature that we’ve seen in the number other languages but, you know, before job as head type inference for many years, and we’ve used it in some places the language. And we’ve expanded the set of places that we use type inference. So overtime type inference is basically just the compiler figuring out the type of something without you having down and, you know, you can make a code more readable by getting unnecessary information out of the way, so we you. Know why this next generation is simply extending that to the way we declare local variables give an example, I think here’s some typical Java code. So, you know, the way what you have to reno declare things in Java is you say that type first and then the name.
So project amber four. Do you mean exactly by right-sizing language Germany? Well, you know, as you might have noticed Java has a bit of a reputation for being alone with boilerplate intensive. Maybe it takes a little too much code to do a lot of common tasks. And so project amber is A is really a collection of smaller features that are aimed at reducing the overhead of the ceremony of things that we do every day streamlining everyday coding? But also making code more readable and more reliable and, you know, these are features that we can deliver overtime and I think a lot of them are very good shape for the kind of program models that are popular in. Cloud like that function as a service demo we saw earlier or reactive event based systems like that message based systems are actors.
Learn about one of these projects please welcome Brian. Yes language arts.
Fine concurrent programming.
Number is right. This cop, right sizing language ceremony at the new project not yet proposed with being discussed, right? Now this project loon which will endanger bring continuations and fibers to the Java platform.
Holla does not specialized in Eric’s value types.
Here’s some examples product Panama seeks to improve the connection between Java and native data in a debate of code.
In investing in that pipeline for years and you’ll be getting it.
Don’t be a long term support release every three years starting in September of next year. So if features are going to go in only when they’re ready, then we need a pipeline of features that we’re working on, so that when a release comes around we can light bind to and figure out okay. What’s ready, let’s put that in and ship it?
One after that will be September 2018 whenever that will be march 2019.
If a future miss is the current release. That’s okay, because it’s only 6 months until the next one. It’s not that big a deal we think this is a good balance between fast enough to deliver innovation at a regular pace and slow enough to maintain a high level quality. So the next feature release is five months away March 2018.
On a strict time based model in this bottle features go in only when they’re ready.
You wind up with releases that are grand majestic but they’re just rather slow moving for Java to remain competitive in this day and age it must not just continue to forward it must move forward faster. That’s why we propose doing a new feature release every 6 month.
Jay Decay. He bawled in large irregular in somewhat unpredictable steps each releases had one or a few really big features and the schedule of those releases has been adjusted as needed sometimes more than once in order to accommodate this big features that. ‘s good for the big features that gives them time to bake but it’s bad for the smaller features because that means it take and take a long time to deliver them even if they’re ready long before the big. Features are finished.
So tonight is here at long last what comes next to understand more about the future. Let’s take a brief look at the past for 20 years.
Who is it doesn’t matter not ring horrible indium to a new API excellent. Okay. Thank you very much again, that’s great gig.
I really like this one I tend to read your calls for years, and if I need some on my definable what I told you not be used that I’m really sorry. I gotta fix it. Now.
Not going to sing in interpro gated annotations that is going to be removed. So it’s my it’s kind of various things that initial soldiers figuring that out instructing this out to where about using something else, but of course is compiled but still it’s quite nervous now and you see the year. Or here in the right corner there is a program here cool cool.
I she’s back and take a look how it looks like now and if you take a look closer to this fire we see this highlighting this is really nice feature 9 and it’s called.
From the height, how are my dependencies are, so I can do this one. So I can get into gram. I see that my module depends on some three modules transitive dependencies stating dependencies present work in decatur here and see that’s a static chorus. That’s transitive requires. And so on. So and for example, if I decided to add some more grimentz for my application say I decide to spike.
And he needs to take a look like.
Just started that’s it. And, of course didn’t with one module is not that interesting. So let me switch to another example, which here. So I have some more information here. And if it’s tricky to understand what’s going on here I can just negate between modules. For example, I can take a look or on the job sources if I need some information or inside with, for example, what they could use it explores or what services it uses, I recognize that model network A a.
The model of my men cost is now exactly the same as specified were here and if we take a look closer to the common line which we have we see that Asian stands that this is some other application do some. Other path minus be for sure.
Turn back to the final we have accomplished here over here and the problem is that the image beans on the learner in Java base management model, right. All right. So I just take a look on the highlights of its shows us that we need to include this requirement to make it work, and instead of typing it manually, I can simply click here and say please include from Maine an. Efficient back. We see that there is no wires that does the trick for us. Now, let’s start this application lots more started here we see that.
And here’s the really nice day, this one is associated this main course is associated with them on a module. And here’s why if it’s like a little closer in the common line. She lived she still runs it path. So we just the same way is returned to start a pic ations years for years and models we need to turn this application to rise to pick ation. So for that we can simply create the modern four and the root of those further like this call it’s from France of board demo, for example, and ensure have anything what we need anything which we used to completion. For example, it helps me to write anything, I need. And so on.
Okay. So this is a small pick ation it just brings hello. World that brings the ocean of Java machine and then it springs the module, which is associated with the boss is, you know in German I anything is a cost associated with model even with all my classmates. Yeah. Exactly. So little tricky.
Jaggers ascension three. This is actually build. So anything can happen.
Thank you for having me. So I have a demo with an elegy.
Not for us.
Course, you use to use 9 most people won’t be like me in using maximum and most people use an actual ide all of the eye all of the well sorry intelligent eclipse already support support java 9 that means i’m told will. Support it pretty soon to demonstrate how intelligent idea. In particular sports joke of 9 i’d like to welcome you gene petrenko from generates.
Okay. So that’s just skimming the surface of some of what’s in 9.
Okay, we switch back to duck place.
Corba module as well as some others have been deprecated in 9 by we’ve enhanced to deprecate defecated annotations to include a sense of value identifies the reason released in which was deprecated and for removal of form removal is true that. Expresses the intent to remove this. So beware about is on a limited lifespan.
So your score but it’s got a little graph you can find out what things that exports what things are requires all the other pool information is there something I’d like to point out about this is this annotation.
Yeah. Let’s look at a couple of other marxloh here’s a popular module.
Are you can also.
Jane’s Abis specific to the models stand there you go. There’s gotta line module you can scroll around in it learn about what’s in there.
You can find entire model suppose you want to learn about the goggle the New Module Dropout Langone Module.
There we go.
Let’s see the javadoc about mapped out method that we just used it does search ahead tells you all their healthy alternatives can see here if you look carefully how we implemented like the first 10 combinations as explicit methods. Just just to be efficient, but it works case it’ll take an array of elements. So mapped out of click on that whips click on this.
So.
Type you can type things up here. It’s all it’s just the *** any servers is entirely in the browser view shows the Javascript actor. He is good for something.
Another cool feature is javadoc search might have noticed about my browser got tripped up on this little earlier go back to that javadoc page job. Now is a search box?
Not quite it quite as slick as built in as let building language feature for it but it’s just about as good.
I can even say map of.
Makes me a list I can say set up.
See history’s great. Okay. I just made a hash map but it would cost either create, you know there’s a there’s an internal at there’s not a missed class created just for this purpose of Jesus. It’s insane. So happily we have a much better way to do this in Java 9 there are some convenience factories on the price the primary collection interface. I can now say list of.
No, yeah, thanks.
Why did you run?
Show you this but you have to promise not to use it.
Some people call it a double brace idiom.
Now and then now it’s on modifiable. She even worse suppose you want to make a map how do you make a how do you make a constant mapple, there’s no syntax for that there’s this really gross dirty ugly hack.
Type and listen for the win.
Modifiable who.
Fortunes start on.
You shouldn’t be modifiable.
Any other works. But all you wanted to make that modifiable because well, it’s a constant hash set it should.
Yeah. We knew that what if you wanted to put the output is actually want to make a hash set, well you can do hunter have set.
Are you do this, you know what he would you think about it kind of stupid as it makes an array containing the strings and commercialism is like I want to.
Okay. That’s cool. So another another cool thing in Java 9 is collection factories how many people wish job after the cat literals for collections. It’s pretty common request going back to New Year’s, well, we thought about how to do that. And it turns out there’s no great way to do it, but we now have collection factories that mixing make this much more convenient. You just need to create a little collection. It’s got constant content in your gut today. What do you do something really boring like arrays dot as list of what do we do?
Actually save your sorry for a long time here. So I did like three days ago.
Yes, it’s got history. So you can go back.
They show is good, it is extremely handy for just doing exploratory of programming figuring out what’s going to going on before you write actual code going to work now. Of course, it’s not.
So here’s some string and now I can type zero comma three and just get through.
Show you the alternatives that you have in any given point.
And even.
Happened. We should I can do it down, right here, and it says there’s a link message you going to go back.
You can declare variables and assign the values.
Racial is finally Java has a redevelopment print loop who you can talk little expressions at it.
So the first is Jay Show. I talked about it last year, but it’s so cool. I just have to talk about it again.
All right.
Many other great features in 9 large and small i’d like to show you few of them right. Now.
It’s not the only part.
9.
Is here.
My colleagues and I are giving a number of sessions this week. These are the times they all have to be in month must Coney Rep West groom to 16 you’ll notice the prepare for gay gay 9 by allah bateman was given up this morning that there are likely to be repeats of all. Of these sessions they just have not been scheduled yet. So pay attention with online schedule and you can probably still see it at some point, I’ll expect lee will present the middle too, and I’ll present the last two for an even deeper dive I highly recommend a new. Book just out from a Riley Java 9 modular tea by sandra makan paul backers a comprehensive and pragmatic guide to both the model system and the modular platform and of course there are other books cover gigs on 9 and they’re either. Don’t lao work or will be very soon.
I want permission you can visit the jigsaw project page Virginia Gay community. There are links to all of the jobs that video game Hanson’s borough proposals and the gesar from the standard parts of the module system itself.
So it’s open as well. We received tons of valuable feedback along the way. Thank you everyone who contributed a good insights and experiences and I’d also like to thank the long term contributors jigsaw who in some cases have been on this project for almost as long as I have.
Kicks off course has been part of the open source gay project developed in the opportunity gay community.
It’s always a strong foundation for the future of Java it also supports the broader themes. We’ve discussed here today and scaleable is we’ve seen it’s easier to evolve and it’s easier to evolve more nimbly. We cannot remove entire obsolete models weaken the delivered new yet non final Apis an incubator models for early testing and feedback and thanks to strong in capsule ation we can change the internals of the game whenever we need to.
Good modular eyes your own applications before all of their dependencies of in modular ized, and if you maintain a library or framework. I encourage you to publish a module rise version of it as soon as you can but not until all of its dependencies of in modular ized from the bottom up.
Do modular eyes jigsaw it does make it try to make it easier by providing tools that support both top down and bottom up migration.
It’s been a long road to jacks off. It’s been a long run to design and deliver it will be a long road to his white adoptions. And that’s perfectly fine many of you will make use of the newly modular nature of the platform long be look before you use the model system in your own code using heartily new code is relatively straightforward model arising. Existing code. However can be a lot of effort as we learned with Jake itself.
Help you get ready for that future in Janie Kay 9 there’s a new tool called jade apps that you can run on your own code you run jay depth with the date that with the jade chae internals flag against. Jar file or class file it will go do some static analysis to figure out most uses of internal Apis and suggest standard replacements if they’re available I highly recommend that you check it out.
But I do mean for a while eventually we want to do the cage when joy all the benefits of strong up solution that I’ve mentioned earlier. So we will eventually reach strengthen up. So the addendum to the statement is in a future release code like this will not run.
So that all code will continue to work for a while.
So we’ve deliberately relaxed strong in capsule ation of a siege decay internal packages in Jay Kay 9 at run time willing.
Gratien takes time migration from bad habits, especially in take time.
A lot of developers deploy Orzan users just aren’t ready.
The answer is.
No wait a minute, you might be thinking why won’t I get there is a run time like, you showed earlier for the secret class in com poodle if I have a jar file build which indicate that goes and tries. To construct one of these 6 500 things why don’t i get an error message like this.
Well in general if your code uses Jay Decay internal Apis that it will not compile under the game 9 and it may generate warnings of runtime.
Germany libraries that still use the internal class the problem is all the sudden security packages are struggling capsulated now what does that imply Jay 9.
Is the sun security ex 5 9 ex 500 same class for manipulating or spikes 500 distinguished names. This is a bourbon around for a long time. There’s actually been a standard replacement for it for quite awhile, in fact, not standard replacement that has been there since 1 4.
For example.
Under this because we replaced it with a file in a much more efficient format. And there was just no reason to keep it around but they’re a bunch of tools that read this ids. In particular use this to figure out what’s in a Jenny Kay. So what we did was we provided a supported way to get this information. There’s now a dilo virtual file system guarantee your eye you can open that up and gravel around and it just like used to go around in architecture are.
One is our old friend Artie Doctor Art architecture as a sub format file. It’s been in the data gay since one dog two contains all the internal classes up the cake a file, no longer exists in Janie Kay 9.
You might wonder exactly. What do, well, let’s look at a couple of examples?
I keep talking about internal changes.
And the whole spring framework itself just released runs fine on Janie Kay 9.
Maintain a popular Java library framework were tool if it works fine on Judy 9 then please reply with its name and version. Thank you everyone who replied here’s a list all of these things were climb again, 9 probably a lot more stuff does but these certainly do there are some important things in this list. For example, all the major build tools and may even in great alert their Jay unit testing jeer their central Library’s Jackson log for Jay Hibernate Bite Buddy. And so forth.
Even though many of these changes are pretty absurd, they have scared they have affected son popular libraries and frameworks and tools happily in many cases they’re maintainers have already fixed them. I wanted to get an idea of what is actually ready to run on gate a gate 9 today. So I asked a question on Twitter last week.
Most likely here for a reason there are some minor differences we removed a few obscure rarely used methods and mechanisms to enable a clean modelers ation of platform. Otherwise, it simply would not have been possible we deprecated these ahead of sign in Java Aid. Now, what if your code does use some non-standard or getting internal Apis and buy your code. I not just the code that you write yourself. But the code and all those libraries that you downloaded for maybe in several over the years of those libraries use internal Apis or depend on other intern.
Ever want to thomas core values is compatibility. We took this extremely seriously in project do. So that’s one reason why it took, so long if an existing application runs on Jay Kay and if your code only use a standard Java Sea Apis, then it will most likely work Andre Decay 9 without change.
Pixar breaks some things.
That’s not true.
Exhaust breaks everything.
Okay. Good. So the class of this path is still there it still works, but you might have heard.
In fact, the two can peacefully coexist jar files on the classpath can even refer to Apis that are exported by models on the model path.
Earlier I discussed the module passes something that’s better than the classpath but it is just an alternative a clasp at his still there.
We have a model system. Now in a modular platform. You might be wondering, well, what about existing code do I have to convert all my code into models in order to run on Janie Kay 9.
And it’s going to be in a technical sense. Not that the people communities honest apart mentioned earlier but it has additional benefits strong encapsulation means that we can conceal the internal Apis that the Judy Kaye this makes a platform more secure by limiting the damage that malicious code can. Do it improves platform integrity by ensuring that libraries and framework synapse don’t depend upon the internals of the data kay and finally it helps make the platform faster link time it is an excellent opportunity to do whole system optimization such. As resource compression early verification and head of time compilation plus a whole slew of others. We’ve implemented some of these interesting 9 there are more to come.
Okay, so the modular platform is scalable.
All right. We can go back to the deck place.
It’s just a subset of models or only the models that we lived in.
Now we see we relive this page.
New image is a mere 38.9 will run up to run up to just 39 megabytes and i can run it.
Doctor image containing just this.
And it’s nice to come back to 33 megabytes right. Whereas if I look at my doctor image that I just built a about a minute ago. It’s children 66 megabytes power okay. So now I can make.
If I look at its been directory. It’s got a little hello. Command along with Java in wealthy to teach will be cause.
That’s what this starts with this model path up here specifying by other modules that I need I tell it just for amusing that there’s a whole bunch of command name to low in I do some compression. Header files and skip debug information to make a small. So I’ve got a custom Jerry here.
What’s link a custom image this custom image will have just the models that we need? So I’m using the alpine Lennox Bill but a month from there.
Alright. So let’s look at something let’s do something better. Let’s make.
Only a handful of which were actually necessary.
Hello. My world this message brought to you by all those modules.
And let’s see if I go to localhost.
Run out.
Ropes.
Don’t worry their messages normal goes often does the doctor thing at stuff through stuff.
Soccer image.
Well, let’s make that.
A little darker file that just runs this, hello. World app on the classpath using Jane. I was using a early access build the great again, 90 get from oracle for out for alpine clinic. So, it’s more compact.
Okay. Now, I could run this strictly but when I could when I’m actually going to do is run at the end doctor image going to be a little darker image here.
Look at that time we see inside we’ve got this not only the traditional manifest, but our module info dot class.
Now we’ve got work up in Jail Odar.
Okay. Let’s compile that I’ve just pre packaged up the steps here to make it easy.
Three go very simple model that requires two others Java SQL Katie. Katie Katie Gdp server, and it doesn’t export any of you guys because well, because need to as an application.
Let’s take a look at the module info.
That says Hello Modular World tells you what time it is and gives you a list of the modules in the running image. So it’s just using the stream API to get a stream of all the modules in that format them nicely uses the cups equal time stamp class just for amusement. And in order to show the time of day.
Here’s the here’s the main class the only class in fact at this uses the built in concina Http server API. It’s been in the day today for a few releases now very handy if you just want to want to whip up a little a little app talks to the Web and I want to spoil the boiler plate here. But the important part is the one the method the mix the content and respond to any request doesn’t matter what it’s going to build a little web page.
Let’s take a look at it hits were given Judy Kaye. Hello. Hello. World. I know very original let’s take a look at the code. So this is a tiny little webapplication about the smallest you could possibly make.
Alright. So I packed up a little demo here.
Alright since the platform is modular. It’s now scalable most applications after all don’t need all of these modules and now we can reliably configure consistent subsets of. For example, if we have a model that just needs the job and it’s equal module and whatever else governor sequel happens to need we can configure a custom runtime system that contains just those all the other modules just fall. Away we produce these new these custom runtime systems with a new tool in Java 9 called jay lake. Finally has a linker, it’s an optional step, but it’s a very important one switch back please.
Okay, go back to the deck please.
An image that run units Jack regenerated by the Jade, okay, bill on it if you like that shows you the sub graph of model graphs for just the Java SQL rose up models means if you require Java SQL rosette you. ‘re going to get all these others.
What’s going to more interesting module Java dot sequel rosette sossego intro said he is more interesting model cause it depends on some others we can see that here the export of the packages that it exports and then later on. We have in the javadoc specification of what are the additional models that are required some turn if you just want to get wanna learn at a glance what’s going on. You can go up here and there’s a little hover Abal thing here you get.
Saying look at with another weapon. I’m not that.
Java language was over all those important things we can go back.
It’s got a bunch of the usual stuff in it.
Some guidance up front is divided into three sections as see the Judy Kaye and Java affects of the bottom you can see this organized this red there for the front pages organized by models. So you can go click around, let’s look at the Java base model here we go there’s space module.
There we go. So this is the front page of the job in 9 doctor otaki.
Course hasn’t these models plus many others including models for the standard development of the bugging tools service providers and Jake a specific Apis since we have a modular platform. We now have modular dog javadoc which I’d like to show you.
So all those connections are crop it prompted basis already is always there and, of course based does not depend on any other modules.
I’d like to call your attention. In particular to the Java base model there at the bottom you might notice that there are no connections to the Java base model module. I haven’t drawn them in because every model implicitly requires the Java base model Tesla model you always have to have it has important classes of that doubling up to doubling string.
Starting with the Spaghetti Bowl of tightly coupled platform components after years of painstaking refactoring we managed to divide it into a set of 26 standard java sea modules.
Tomorrow system helps with a massive and monolithic critique a that’s because we’ve taken the model system and applied it to the platform itself.
So reliable configuration strong in capsule ation. This is a much saner world than the brittle and error prone classpath.
You cannot accept an illegal access air and note in his exception messages we put a lot of information to help you diagnose what went wrong.
With our example suppose there’s some code in comp who lived in instantiate some secret internal class in the con food, you’ll module will you try to compile that will get an error message sorry. Does not iaccessible if you manage if you somehow managed to run it because maybe com food when it when it comes to you to comfort to you to leave to export that package but now is it now it doesn’t.
Capsule ation means the code outside of a model can only access the classes and interfaces into packages explicitly exported by that model. This means you can conceal your internal Apis and change them whenever you want.
Second property guaranteed by the motor system is strong in capsule ation.
Mark on food ever not found required by console if.
You’ll get an exception.
File time you get her message error model. I’ve found consul whatever if maybe come for whatever used to exist but now it doesn’t at runtime.
Now suppose the con flip also required some other model called console whatever. But there is no conflict whatever. Well, what happens when you try to compile this module?
And establish is the proper connection between them.
Com food lived requires a model named Com Poodle. So the model system goes off and flights, it.
These properties. You can’t even express on the classpath much less asked to be guaranteed. The first property is reliable configuration means if one model requires and other than that other module will be presence and none of the models presence will conflict with any others as an example here we have our model comfort. Live again. No 30 user reverse dns for the model name. That’s convention were trying to establish.
So the model system helps us escape from classpath hell because it provides a cleaner and safer alternative to the class path that is the model path when you put modular drawer files on the module path the model system can guarantee. To keep properties when you compile or run your code.
Package up with compiled model for distribution all you have to do is make sure that the module infinite class file is in your jar file, right. There at the top level, then you have what we call a modular jar file.
What do we do with your Java files we compile them compile one of these files, you get a little class file because of class files here is intentional rizoma controversial but it’s intentional because it makes it basically makes it. Easy for existing tool chains to adapt to this new world.
Well, they’re job source code. So they go in little Java files by convention. These are named models actions vote dot Java files.
Models upon which it depends who’s packages, it will use or do model decorations go.
It’s a little bit of Java code you give your module lindane. You name the packages that it exports for use by other models the models that depend upon it and you name.
Correction.
Injects our models are a new construct of the Java programming language they work at the same way that compile time at run time because they’re known to both the compiler and the brutal machine is greatly simplifies development you declare. Module. He ends.
A model is a set of packages designed for reuse.
What is the model? Well, it’s actually pretty simple at a high level.
Is models.
Please do problems the missing abstraction as we all know by now.
Figure out what it ought to be added to the platform in a way that sit, well with everything else that’s already there and, of course while doing that preserve drop is key core values of readability simplicity universality incompatibility.
We addressed both of these problems together by employing our standard recipe for evolving the platform identify the missing abstractions.
Alright. So we have the two fundamental problems.
Alright. Thank you very much. No, I’m not done to work it.
Demo available get those waiters.
Yeah, type, I’ve done it before.
Just totally, wing, it.
Disapproval and error prone classpath, the other is the massive and model usaac ready case, I’m sorry. I need to interrupt right now and ask for the prompt screen to come up on the dss.
If we set out 9 years ago believe it or not solved to the fundamental problems in the java platform one.
I’d, I heard those ***.
Is here.
That means the jigsaw.
That means.
Tonight is here.
You mark. Hello. Everybody welcome to Java one.
So what I like to do is now transition talking about where we are Java 9 in the vietnam war the language might be going and who better to do that. Then the one and love Mark. Reinhold The Chief Architect Are Java Mark.
But I think the way to think of this is like avui one, right? This is our first day we talk about setting up Java for the next decade imagine we can do we actually apply the language to this in a much bigger way which is actually an excellent segue to the next of our. Talk.
Please go try it out, I will excited out where this is going by Afghan project. I by the way if we didn’t say the name. So please come try it out please give us feedback please come participate in it. Now one thing I want to say about this the last thing I want to say on this check showed you this demo to super amazing demo. I get chills every time we talked about the complete able features API. :
No don’t worry sever ties are for the password boom. It’s open source right now, all right. So.
All right. Hopefully my two factor, I’d like us.
Well, the danger zone.
We go. All right. We do this is going to happen.
It is. :
One cup states actually questions going to be open source, right? That’s the plan mark did open source, right? Now it isn’t but probably should be like where John one. I said we do it. Let’s do it, all right to search the app and project right now.
Thank you.
We can see now we’re starting to fail. This is a visual representation of all the functions that are being sequenced in ran from each other including a nice fan out capability if I click on any particular node, for example, this one I can actually view the entire call. Stack of how this particular function was called this is really extremely powerful. I have it was composed from detect plates. Here’s the lock but I got for the text place I can view all the way down to the scraper, which is what the first function is in our sequence all the way down to the flow function. And if we look at the right. Of course, it’s already finished. I wasn’t able to show much but we get all of our images in slack and finally, it’s finished scraping. So I know this time it was extremely fast, but I hope that you got to see just a sense of how powerful the femme projects can be and why we’re so excited to announce it to the java community today.
We see that we already have a couple of running we have a number of complete in the middle this is the flow you I which shows here I’ll make this big which shows the fan out. So the top we have let’s make this bigger.
Call is a wrap around curl which hits the server which in this case happens to be right running locally on my machine and then my app name is my app its flow. So once it starts running. The first thing we’ll notice on the left is a number of functions are starting to spin up.
That payload and I can pipe it right into afon call.
So if you look here all I have is a simple payload touches on file. It’s just your standard Jason three input variables license plate car usa were going to pull 20 of them and because haffen the functions actually take standard in as their input. It’s very, very simple, I can actually take.
Yeah, I was on the Wifi before don’t ask me why.
So I quickly plugged in the Internet. Right? As I came on stage. So we’re going to see if I have internet but we’re going to try and run a demo.
So it’s a very powerful concept that. No other workflow system gives you today.
And one of the things to know any variables that were created inside the enclosed scope whether part of the heap or the stack gets reconstituted in all future invocations of any functions inside that scope.
So couple things I want to point out. Of course this looks like a single Java program. In fact, it can be reason about just like a single Java program we can test it we can use Jay Unit. We can put breakpoints we have our familiar IDE. It’s a single function code base but behind the scenes, it’s being broken up into sometimes hundreds if not thousands of function invocations. In fact every step is a different Javy En that were running in a massively parallel environment. So you get all the benefits of the functions as a service system such as the economic model of only getting charged for the milliseconds of these things are running a massive parallelization and also the operational benefits without the complexity of. Dealing with functions of the service system.
Which then tells us whether it was successful or failed? That’s actually something that I had no concept of before in the first version of this stuff because we had no concept of a complete workflow.
Which gives us both the Twitter and the slack function which post to those and when it’s complete we have a win complete method.
And once we’re finished with that we run all up.
Once we do that we get basically the nice fan out capability that I talked about before. So then we fan out and we run the Doda plate detection. And we also run draw.
Thank you pose add steps to the computer graph and returns a future that represents the completion of those steps.
Once we integrate once we invoke the scraper we get back to flow future object that flow future object implement the standard complete able future API that was introduced in Java 8 along without api comes a number of promises methods that gives. Us all the nice workflow that we want such as then compose.
Black here.
It’s really great thing if you look at the top we have our scraper that we invoke.
Look at some code. The first thing we’ll notice here is it short sweet and simple.
What we’ve done is the couple dollar functions from each other. And now we’re back to the proper architecture for functional development.
Enter Afan Flow Afan flow gives us a programmatic way to remove those hard coded indications and move them into their own function called the flow function.
As you can see we have a number of red arrow is here and those are, no knows that’s where we have hardcoded invocations of each function from the previous one in order to call them. It’s almost an anti pattern it comes to micro services and functional development.
Basically what it’s doing is point images from flicker of cars detecting the license plate on that car getting the actual value of the license plate using the openal piar library, which is an open source library and then it uses. Open Sea Vita drop box around the license plate and send all of that information to both Twitter and slack.
If you look at this application it consists of five functions.
That’s actually what I’m going to demo today. So in order to show this we built a demo app called Vista.
Today. Of course, we’re announcing that Java is the first officially supported language.
Flow is a system that enables developers to build higher level workflows and orchestrate your functions in a more complex environment you get things like sequencing and chaining parallelism fan in fan out air handling state management all from the language. Of your choice.
Finally we’re announcing the old finally gives you a test harness to test all of your functions using Jay Unit rules don’t forget, that finally we’re announcing def ense flow.
The job had took a allows you to easily bootstrap your Java functions. It gives you a data by the model to find the input to your functions to common Java objects in types.
Two were announced any affect Java SDK or function development. Kit.
It runs locally on your laptop. So you can get depth property working locally both in the cloud. It’s fast scalable and container native.
For one the Afghans server in server is the foundation of your functions as a service platform. It’s what enables developers to build deploy an scale functions in a multi cloud environment.
Hi, I’m super thrilled to introduce to you the afon projects and project today consists of three components.
My screen.
Thanks Mark.
We talked about the distributed operating system. Right that go into the cloud. We need a language to help us with those problems. So we’re super excited talk about what we’re doing next we’re going to talk about an open source project recreating the container native completely legname language in Gnostic, but there’s a portly and exciting java layer putting into. Just solve those problems. So what am I to do is turn the stage over to chatter myrrh for my team to talk about what we’re doing. So chat stage is yours.
What you need to solve those problems, which I was exist invented for the first place, right? You language 22 years ago java solve this problem is why it is where it is safer running on top of an operating system where there was lennox alaris windows whatever.
Nothing better to do that.
Microfine Melzer computer science are always with us, right things like concurrency and synchronization state matter. These are hard for any reasonably science application or recently slides micro services.
Every cloud providers got one of these things something like a Vienna goes up to being goes down publishes an event to a bus you get some cold executes you can take some action super helpful to amazing for that use case. But it’s easy to be tricked into thinking that snap depth platform, but it’s not.
Again, having worked in the class piece for my you look at this and honesty where we are in space in the industry is actually pretty nice. It’s right without the today’s litterae triggers for the cloud.
But.
Important we talk about applying service to our code we deploy we think it is functions as surface, and it’s kind of a beautiful model. Right cause it, they let you focus purely on the logic of your code purely on business logic not worrying about infrastructure not wearing about that like that in your system, and probably give you an amazing economic model two.
Databases to storage.
But it’s never his mind today. If you’re not familiar with the services compute abstraction that takes away all notion of infrastructure from use developer applies to many things place to compute.
Wow serverless.
Thing that we don’t wanna work here if you guys are interested there’s a much more in depth session tomorrow morning 8:30 i know it’s only in the morning but they believe me we watch our time everybody and you.
Thanks so much this was just a sneak peak of.
Which is causing the league, no, if you’ve ever had to troubleshoot a memory leak issue in production before you know, how incredibly difficult that can be and how much easier? This is just a tip of the iceberg when it comes to the power of pure far under excited to bring you all that power to you.
And if you look closer it looks like I do add reference had these objects to the headset and remove them, but it turns out that I forgot to override equals and get hash goat in this class.
Go to line 63 right. There is right allocate the object, no surprises there. Let’s go back to the reference change it looks like this hash set. Right here in progress items is where I hold on to these references.
:
And the reference change showing us the chain of references, that’s preventing this object from being garbage collected so let’s go look at the coach. So it looks like line 63 here of my league appropriately named leak work item class is where i allocate this object.
Click into an individual sample, we get very detailed information, we get a stack trace showing us. Exactly where in our code the subject is allocated.
Jeff our house is cool new feature that tracks the lifetime of a sample of allocated objects and using this data we can tell which objects are hanging around on in the jovian for longer than the shirt. So let’s take in and see if we can pinpoint the source of this lake looks like in this case we have some samples of bytearray hanging around for longer than they should.
We did find a memory they and as you suspected. It’s only affecting one of our parts.
Probably means it has a memory leak. No, we do a lot of interesting analysis on this data that we gather from Jeff are, so that we can find the problems for you and you don’t have to go looking for them. So let’s go look at this analysis tab to see what we found.
No, Jeff Are has this has a lot of very useful and deep data, but today, I’d like to focus on the issue of memory leaks. If you look at this graph up above it shows you memory usage by each of my parts, right after garbage collection, and it looks like two of them are doing, okay, down here, but one of them is having a little. Too much fun and using up more memory than it should.
Because like you said, you don’t know when the problem’s going to show up where it’s going to show up for that you even have a problem.
I know one thing I’d like to reemphasize it burn already touched on is that this agnostic service is a very low overhead service. That’s designed to be running continuously near production cluster.
There’s my screen. So quick note about the set up for this demo. I have three replicas of my service running on a kinetic cluster with the diagnostic service gathering continuous Jeff are recordings of my service.
So I would like to introduce a container diagnostic service that helps you do. Exactly that this service once in production is always on provides real time data with very, very low overhead, it gives you the depth of data that you have four provides the breath across the service George here will actually give you. A live demo of the service. Now. Thank you very.
The issue is no longer just what is my performance issue, but we need to know when it’s happening and where exactly is it.
I’m sure almost everyone over her how to deal with profiling applications and mark kind of effort to this java flight recorder makes this really simple for a single Javy Emme. But the problem grows as we move to the cloud and even more to Microsoft says I’ll be doing right now.
Excited to be here today and she with you all the service that we’ve been building for a while now services focused on making container native development in Java simpler debugging any issues that you guys run into much easier and. Just helping making your applications more performance.
Can do with no performance overhead is fantastic, but we need to help you scale the cloud we help, you in the cloud. So I’d like to do is actually give you a sneak peek into service for building in the cloud to help you manage Davy. I’m to scale help you give you real time diagnostics. So please welcome for my teams are in baton George Massey to talk about this.
Importantly though. I’m serving building we always need more information we need more incidents where we can never have enough tons of data that we need to real time information that is beginning of this talk that were open sourcing all of those. Commercial features in the work of Janie Kay one of those things happens to be Java flight recorder if you’re not really rigid far is this amazing like Super Swiss Army Knife. Bless you diagnose any Janey out job application, right? Can see in real time was happening up and down the stack.
I guess operation are fundamentally hard, one of the hardest parts of buildings your resistance and partly if you don’t really know this or never done this before that we think of them that way. Now.
All right. Let’s crack said he talks a lot at the end about observe ability in operation. I think that’s where she talked about next week talk about cloud service.
Move on would like to do is give you some helpful information about how to get started with job in korea nettings we put this together. So worker oracle acquired them earlier this year. It’s fantastic container native see ICT service lets you get some containers in your life portly get some communities here life three launched all this community services I mentioned we’ve actually put together. The other a curated set of Java getting started guide tutorials quick steps libraries to help you get some Java into containers into communities. So by the way, there’s a community Titian completely free. No strings attached there will never be strings attached. So how do you find a useful if not let us know if so please let us know.
You want to get some air life called crack.
Thank you. So much that I’m having a day.
A lot of efforts to make secret integration much more natural into the Java runtime environment. So I’m very excited about the future communities. I think it’s a very natural environment for you run your job applications. If you’re interested in learning more courage to go to the website, and it is to die if you want to get closer to the community feel free to take a look at the cloud of Computing Foundation which is A. Vendor neutral home with the cooking is project and a lot of you cloud data technologies are being.
When many people start looking at lenox application containers they think of them largely as a replacement for virtual machine just a way to package up and run something but if you look back at the origins historically they provided a very. Robust and rich resource isolation framework away to tease apart the set of resources that would be a scientist something that allow you to pack sorry 10 sleep number of applications of the same set of physical infrastructure and one of the most. Heartening things that I’m thinking out of conference.
Final thing that I think about a lot when it comes to the Java community is a little bit nuanced.
And I would love to see, the coming year or two a whole lot of focus on making much more natural Java runtime environment aggressions with the other line committee substrate.
Environment operating system for applications and while it is relatively opinionated. It does offer up as a set of primitives don’t necessary to allow an application to find another application access it.
Third thing that I think a lot of Bob as we look at this environment and the needs moving forwards is the libraries themselves as I said, these provides essentially distributed system.
Another result of that intrinsic dynamic system is the need for high levels and tried to respectability you start to live in a world where our Javy Am you’re a Java application is a little bit tired to single physical machine. Ready understand what’s happening and to be able to diagnose things these new walls need high levels of logging observe ability have access to structured information about the application of a better sense of what happened off the fact not necessarily. Tying that to single physical machine. It’s also hard to see some of that coming out in this very conference.
A natural environment we can run on new job applications, but anything else and you can do that in a way that is perfectly decouples from the cloud provider it works just as well on premise or in the cloud gives. You a great degree of choice and flexibility around where you want to others applications. Now as we look to the future. There are a set of challenges that exist when you started to move away from relatively traditional large structure applications into the small modern Microsoft’s is based environment that Cuban eddies naturally pushed you towards the first and foremost of those. Is the weight of Java if you want to move into this environment that is intrinsically more bite sized it makes sense to have a mobile sized runtime environment. It’s very hard thing to see some of the work, that’s being done to reduce the weight and speed up time associated with Java. So that you can actually get these more dynamic applications running.
I’ll come of that is pretty significant in that it not opens your job applications up to a polyglot world. They can’t coexist side by side that begins other languages if you want but more importantly it opens up them to trust world we can interleave these job applications with a lot of dependencies that they might rely on, so you could. Run a Cassandra Database. For instance on the same core infrastructure using the same on the line hocus traitor that your application uses which is very powerful. What that means that the other the day is that as you have a lot of enterprise concerns like governance for special compliance can rely on a simple single consistent on the line framework to deal with those problems for you as. A result companies effectively creating this distributed systems, but this is distributed systems operating system.
Now, what this means to the Java community is actually pretty significant if you think about the old world could have middleware that would be responsible for running a mission-critical into prize applications. When we started to see is that middleware getting teased apart almost polarizes to different pieces starting to see the emergence of systems like urban at ease as a standard way to run a lot of the underlying services components effectively stitching. Together a large number of machines that can operate as a single logical ideal computing fabric. And then we start to see is a lot of the other functionality getting pushed up into application of a libraries provide a lot of the immediate integration that you need to run this application. So efficiently.
An amazing way to simplify the operations process as your building applications that provided a medically sealed highly predictable unit deployment. She could take your application in this case a job application package it up with all of us penance ease predictably deployed out into a variety of environments effectively the coupling it not only from the environment where it’s running but. Also in some ways from the operating system that is running on creates very high levels of portability, and then orchestration is the final piece. And this is where much of the magic is by using a dynamic orchestrator you can rely on an intelligent system to deal with all of those operation mechanics deploying scaling monitoring reasoning about your application.
Containers have become.
Force times of driving innovation, but it also buses them from metalac which is increasingly important.
Open source obviously is critical. It’s becoming increasingly important to organizations of all sizes as they’re making decisions about the technologies they know that open source provides both an incredible.
And so these are the last three and half years has emerged as pretty close to a standard and it is an open source container orchestrator. So for those of you unfamiliar with it as well just breaking down those three words.
When we set ourselves project. We knew it was enough to just write a letter from the future to apprise developers when you that we need to create something in the open and make sure that it worked as well. With relatively traditional workloads as it did with the four looking progressive dynamic workloads that ran inside of technical cannot google.
It’s really been exciting three and half years since we start the coolness project at what we set out to do back in the day was to bring a lot of Google sensibilities around building and running applications to develop as. Like yourself, I personally was ready inspired by the idea of providing a better framework to run applications developers can focus on code at expert systems underlying the application languages could deal with a lot of the monday to tease an. Challenges associated with running those applications.
Thanks so much for every year folks.
It was a start up focused on bringing through net is to the enterprise. But what makes him as an expert is Craig was actually one of the co founders of the Pyrenees project turns time at Google. So crack thanks much for being here.
We’re doing a lot with it. We actually figure do a lot for Java two sort of like to do is have you here for a subject matter expert communities why this is right for Java developers. Why does the platform you should build micro services on? So please welcome Craig Make Lucky Crags Deep CEO and founder of hefty.
But it is the right open source building block that abstracts away clouds abstract away infrastructures gives you this distributed in substrate to help you build resilient micro services were taking a big bet on it. We put a lot of people in the community project we have announced several communities focus cloud products early today on the other side of the fancy open world.
Like the thing that helps us get a distributed colonel addition substrate, and if you don’t already have one, you’re asking what should I build we have one. It’s long in the two. What should you next are painted Java arcade oracle is you should use communities.
You realize we all have the same problems, right? We all have to build effectively the same thing to solve that same challenge again, and again.
If you’ve been to space for a while, I’ve been working on cloud systems for a while, you see that an architecture of the steep Pizza Nicolas gave, you.
Thank you so much that goes so.
Thank you very much.
If I never take us your interest, I’ll be running a session in just a few hours. So feel free to come along if you want to hear more details around how we think and build our back end services.
And this is it has enabled similar to what I describe from our micro services for us to scale data processing and machine learning to the scalar out. So this is a logical equivalent or Microsoft architecture for that for data processing.
We schedule these using another open source framework called sticks, which is a doctor scheduling framework.
Our data processing framework is based on Scola. It’s called geo. It’s been open sourced. It’s a way to build pipelines that drama on tops of Google stay to flow and big cricklade products.
Where not only using the Javy Am four are back in services. We also use it for our data processing and machine learning.
All of these runs in a complete clone in multiple data centers around the world for us to be close to our users have low latency, but also to be able to do full data center failovers during large scale maintenance or. Or incidents. And this is something that we do actually fairly frequently.
These services are stateless they don’t do anything on their own. So they found out to the lowest layer where we have services that do the actual data processing and storage.
Picture on the right in this slide shows a very high level view or architecture. You can see the perimeter services which are exposed to the Internet. There are very hard and they manage are things like with indication of requests were back in, I will route your quest down to services filter out the next layer is what we call the aggregation layer. This is services that deals with things, there are very close to what you would see in our clients at 1 2 1 representation of views in our clients.
And lastly the name is has to have ownership of the service firmly within the team that pills that service so you run what you build, and that’s closest are important feedback loop in between developers and operations.
We also have it also means that we have limited impact when we actually have failures. So it’s service might fail for whatever reason but only a subset of the feature set on spotify or only a subset of our users might notice like if the search service would fall over that would only affect search. Functionality on spotify not streaming or play listing or whatever might be the case.
Services that powers the features needs to be scaled in different ways.
We can scale them independently different features as part of I is very different interaction patterns. And.
As we decided to start exploring Java. And in a bit later in moving over to Java being able to do that the incrementally service by service acid made stems was a crucial way for us to be able to do that, that change having small services. Also means that we can as humans easily understand and reason about them.
One the very early in the organdy the best decisions that we’ve taken architecture wise disband to design our backyard as a set of small single responsibility share nothing services what the pattern that is now known as Microsoft’s architecture.
Did you maybe Emma had this nice property where we could actually observe what was happening at run time if that was collecting runtime metrics on the platform itself or if that was profiling the service while running in production both were. Very effective ways of knowing what was actually happening to the surf.
We notice that during the scalability is that stuff we had it painted a much more’s stable way than anywhere other services.
We have one service though at the time that was going to method in Java it was our search services it’s actually still around.
Run into some pretty constraining scalability classrooms.
And you’re in math changing heard mark mentioning this quote of his and this is very much true. For spotify while Python was an awesome way for us to get started and to be allowed for back in as fast as we were young company we.
What if I started out as a Python back in.
Now dealing with this scale turns into pretty interesting and challenging technology problems as you might imagine.
And we have more than 4 million requests to our back end per second.
If you ask me what I think is even cooler than that is that we handle more than 3 billion streams per day.
Where at more than 140 million active users?
Since we launched in October in 2009 as his smaller swedish startup. We’ve grown pretty quickly on where now at in 61 markets around the world having most recently the worst team in thailand.
We also want to give our users to features that they wanted more to be able to discover and listen to the music they want.
Platforms that might be good and once you see in the picture here, but also embedded platforms like TV sore playstations or stairs fevers.
Spotify is a music streaming service we provide our music your users with the music they love on the path forms where they searched.
Hey. Thank you very much for having me. :
Challenges they faced what was hard with still hard importantly. Why they’ve used Java. So please welcome the stage Nicholas. Kristof’s and he’s a principal architect is spotify.
Now, you can’t account for his like this are open world or technology conferences in general, you can hear a lot about the business value of cloud, right things like opex, capac’s plasticity almost things are true. We’ll talk about it means to Delaware Developer Developer Conference me when you boil it down hot is about building a distributed system at the end the day those are hard actually super hard the king of the way of saying. It changes the way of tool is the way we build deploy scale operator services. So I’d like to do is actually talked about what’s an ecosystem and we’re going to do in Java itself to help you in the cloud, but I like to do is make sure that we have a common. Frame of reference for this right talk about one of those hyper scale web companies that James metric that we all think about never been in Java 1 4 new face and i said this nice and fresh ones of those come talk to. Us about their architecture.
The very beginning this 55 percent of jade mess today or acted in cloud. Somehow when you build for world of a hundred percent, right? That’s tomorrow as class pervasive does it matter what you work on cloud is in your life if not already.
It’s actually super validate for us to hear that I hope you’re as excited about the future job as we are what I can do now after every night from James is actually move on a little bit. Of talk about cloud talk about job in the cloud.
Funny of runway to go and I think that’s less than it was very important to be open sourcing happened. And we’ve got a new version of Java coming out and the notion of a 6 month cadence is going to be a big big deal. So it’s we had a couple of years will be here we will have had the low hanging three done a lot more development in Java language. Thank you.
But generally you want something you can rely on something that stable those companies found was that in fact in terms of observe ability performance trace ability and just the ability to manage something overtime Java and Javy Me had a real. Value there isn’t really anything out there the replicates the power of the qadian today. So we can accelerate the language development and begin to make it more like the modern developer expects, and that’s what the challenges oracle, then this this serve.
Hey go. So I have three kids. And so I’ve had various times in my life with night don’t sleep through the night.
Boston break things but who likes to sleep throughout the night.
Yeah, it’s all very, well and good.
I don’t think it’s back to something that.
Collins is called the thing at chop up the simple fact remains that off the language and not just the jackie. I’m Mara thank. So let’s talk about the chase am I think why did those web companies decide that they needed to adult Java on the coast of the skills. There’s so many skills available if you’re hiring people out of computer science chances are high they’ve got Java skills.
And it’s been very interesting to us that it’s not a lot of people would say perhaps the job was not as much a part of the new world, you might expect that it is pulled with Frank Overtime. In continues we generally see Java and Javascript on the top of the rankings and there are tons of coolly languages out there, there’s developers and, yeah. Everything is going to be rushed or everything is going to be go.
Conversations in stack overflow against 12 happening in get hard.
We gotta from half a minute ecosystem running around for awhile how relevant all my skills. So Redman my company we do a programming language rankings that is every 6 months we do it it doesn’t necessarily change that file so we’ve kept it at that time frame.
So I want to say this is as Java developers that you want to think about it is.
Cross the board we’ve seen Contributions Kafka began as project from again, linkedin. So the fact is that you got launch what companies that want to make contributions they want to be part of this world, but haven’t really got involved with Java because it wasn’t as open as they might expect they also felt. That it wasn’t moving as quickly as they might expect they’re coming from all this continuous deployment will if you told me it’s going to be three years before the next version. Now not too interested in that you know, don’t pretend to have a certain degree of 80 they want something new they want something bright shiny and fast.
I think one of the interesting things happened over the past few years is it option of Java by the web companies. So first generation went companies obviously Amazon very much a chop shop Google tons of Java obviously they have gone other languages. Now, what’s perhaps more surprising is those web companies said look actually we don’t like Java we were going to be going to be Ruby than you know, Twitter we’re going to do really were gonna do repeat that was. Until he wouldn’t scale far enough said updated Java Facebook again, they came out will say no what i’m interested in Java until they became the biggest todo shops on the planet. So big change is very frame hold to those companies that have an opportunity they’re all making open source court appearance now things like in tracing sipc in.
Change pretty dramatically. And in fact, what I think is interesting is that things have changed in the Java ecosystem probably more in the past three weeks, then they have in the previous 13 years this open source move. I think we really can’t underestimate the significance of it. If we’re going to have a chance for the community to flourish if we’re going to have a chance to really expand, I think the ecosystem it was necessary that oracle took these steps.
No, it’s kind of interesting. We’ve seen this long pole train at that time we see some was still around.
I said that did you see *** was the worst form of governance software apart from all of the other ones that we’ve tried.
What kind of contentious at the time?
I should here and I said something that.
Yeah, I think there’s probably some of you that haven’t haven’t quite a bit of the even around that long.
The distant past back in 2004 so who was here in the job ecosystem at that time?
Outside are going to happen next slide by Morris fine. Thanks. Hey buddy, how you doing a pleasure to be here the last time that I actually stood on the main stage Java one was actually a Bhai.
Right. So now this we think actually start to change the future of Java this we think starts at the job in the forefront of everyone’s minds certainly ours but also people that are not currently running Java we think this brings. It to a new future that is not previously existed before. So what I want to do those make you not hear this from just me not from oracle actually can bring out Mr Java Renaissance Himself James Governor from Red Mark to give you his perspective James come on out.
Cool. So which really now have an open Java, right? But it’s actually still not enough as we think about pace, right? The last time it shipped with three years ago. That is not fast enough. So now that open truly free jobs. We just spoke about going to come out you every 6 months.
One more.
Two might be saying, well, you open she can you work in Cheney Cave one of those better in the other maybe have to use the organ Judy Kaye. It’s true. Right. The organ Jayne Kays commercial features in it these things parley power some of the most barley systems on the planet. It’s amazing technologies for help you run Java scale the painter only available to elite few billion developers they need be able to everybody. So going forward. We’re going to open source all of the features in the Oracle Janie Kay there’ll be zero differences in the open Gina came the oracle Janie Kay.
Going forward. We’re going to be producing open Jake a binary under the gpl license you truly now have a free and open job that you’ve never had before number one.
Find those things again look at those rights talk about openness first I came to this group but I was told was Open Shady Kay. That’s a place not a thing that’s not open enough. So now let me shady cases thing.
Also has modules which I’m sure you might have heard about the modules really are this amazing thing they’re gonna let us turn the corner let us involved, right for you they mean you get just enough job I just. Enough gave me your life, you can write seisa Javy am very important for cloud world for dynamic world for us. So we can find the involve the platform the ways we could not do before he could it. So we think modules really are this slim Japan is going to get us to that future again is Java 9 enough. No, it’s not.
I bring you over 150 new features streamlines the javy am partly there’s a lot of support in there for things like minutes containers give you better on management honoring of see groups memory settings.
Right. So 9 is here but is a transformation or at least for us.
Alright. So let’s move on let’s talk about job eassy.
You can speak your caboose please come talked with please come participate by. Thank you guys so much for being here thanks.
I mean, you’re right. We couldn’t micro profile over a year ago moved into Eclipse. We’ve seen a great groundswell in interest and participation since we moved into Eclipse for the reasons that you mentioned earlier that we can be more nimble. And we can react to changes along a lot more quickly moving a key for Jay Two Eclipse. I think allows these two communities to come together and helped drive and a Prize Java into the next decade as you mentioned earlier awesome. So what I want to make sure you all understand with all of us on stages please come participate. We cannot do this alone account keeping offender consortium. So that writers Open Eclipse Foundation please come check it out as a mailing list Twitter Foundation. There’s a panel which I’m sure will be action packed, right after this portly stop by the redhead boots the Tommy Tribu the eye.
It gives them encouragement. I think that the future of Java each strong in the only would of course, and I would have is that having just open sourced open Jay 9 and our enterprise open liberty runtime that took us a lot of work that took. Us 8 years to get us there. So, there’s a lot of work ahead but I think I’m going to be successful. There is a lot of work and we have a lot to do, right. Mark Red Hat obviously instrumental in creating micro profile with these guys on stage a lot of people the community what’s your perspective from micro profile in red hat on what this means?
Jeez, I think that it happened that this has to people from a couple of different perspectives David already mentioned the tesei case access to the test case, which is great for developers. But for food before people building solutions on top of Joffrey. I think having this new communities fine up with anything, I think is it’s.
I wish China shipping IBM’s Javy. I’m since the job flight days. So I think having both the low level Javy Am and you click then the enterprise platform both at Eclipse is a really strong endorsement for Java development top to bottom Clinton, I think there’s a there’s A. There’s a couple of.
And the other thing is collectively you make the biggest investment in Cayey which far exceeds what we collectively in it. And so you having access to the tesei case that if you have a problem, you can go straight to the test and get them an improved it raises the bar on us. So this effectively makes our largest investors enabled to fuel eat and we can all go faster. I think in the end awesome alright. In IBM obviously one of the largest vendors one of the two large spenders of Java Java Enterprise Edition on earth what’s your perspective on this means moving to the Eclipse Foundation? Well, they put foundation timing is a good choice. It’s the one that IBM picked. For example, when we open source tower Jay 9 java virtual machine.
I think that when you look at our industry were filled with so many passionate developers some of them quite young the thing that I can’t help the takeaway is your inheriting eat very real sense easy for Jay is easy for. The next generation.
Thank you guys so much for being here. What kind of do this panel styles we all know here too? We all stayed together brothers in arms David will start with you’ve been open source for 20 years built a fantastic career fantastic company out of it. What’s your perspective on what this change means to the community at large?
But I want to make sure you don’t just hear this from oracle, right. You’ve heard this kind of stuff from Oracle before I want to make sure you hear it from all of our partners, right. So what I can do is bring out three of those leaders of the community along with us here all of us in this together. So please welcome David Leverage that Romney tribe in Robin System ideam mark little from red hat.
Getting through one door at least there, but it’s going to be that’s gonna be a good day for crisis got to set up for the next decade helps modernize.
Reference implications that Isea case that was a huge one table in expect authorship of specifications and portly control.
Serving at the Eclipse Foundation writer going to change everything going she got a lot of questions about this. I don’t think people are quite clear. It’s going to be everything.
What’s your four years ago? That’s not very fast. It’s going to change everything about this, right? We put out this news a few weeks ago people going to very receptive to it were super excited about it, we are fundamentally opening up job in French.
Like a wife not getting a snare actually applied those themes. It’s actually pretty self-evident, right. Is it open, well now, it’s a vendor consortium last I checked those aren’t that open?
We actually did do a lot more to modernize to get you to that world of cloud and micro services serverless reality is he is the bedrock of mission critical systems adjust power enterprise.
Within a presentation, right. This is huge news from a 6 year 18 year brings you modernization the platform there’s amazing stuff then it should be 2 2 async apis reactive apis helps you modernize the platform but it’s not good enough.
People like George the third 12 million Java developers out there which is awesome which more we want to be a billion developers and that’s the relating to building for stock bauer going to get there.
Right scale is easy for us as engineers to think about what’s petabytes of data requests per second or number of Javy me that you manage.
Last week continue to scale.
Right with the use cases it existed 22 years ago aren’t relevant today the things that exist a year ago may not exist next year. So we have to change which get the really quickly to be nimble as we do this, right away get things wrong. We have to get it, right quickly.
Miravalles evolution is actually really hard, right. It’s like it’s very easy to add things. It’s hard to change things. It’s nearly impossible to get rid of things, but you have to do it.
There’s four themes were to come back to again, and again throughout this keynote and really the running uses guiding principles for ourselves in the Java group number. One is openness at the self evident to technologist transparencies important case world. It’s more important than ever and actually we’re just going to show you about this we’re not going to talk about it that much.
Talk about our going to get there.
Right. Maybe it’s no jazz which apparently you can be reformed from maybe it’s something else. But with you want the next decade to be Java first Java always that’s how we want you to think about it.
Actually even if we take an honest look at where we are today, but we can apply that actual famous read my fault that we all know what love fiber when companies grow up they turn into Java shops that tells us. Something though tells the people are writing a something else first and rewriting in Java we need to change that.
Thank you. All of you. Thank you. George. Thank you. And tell we’re super excited to be here Java Java one really or by you and for you we have a ton of stuff to talk about a lot of new content a lot of fresh faces including mine are going. To talk about the future is George said those stats they put up their fantastic today voting for tomorrow.
I can’t work all that any architected the bare metal cloud. And now he leaves overall strategy for Java and the cloud in container native please put your hands together and help me welcome Mark Cabbage.
It was a Lee developer on a double has at its inception and he let development at joint for just long enough to have been cured completely aventino digest religion.
Full evolution has helped to grow into the most vibrant programming language on the planet moving forward we want to ensure the Java is well positioned for modern development and growth in the cloud and our next speaker is uniquely qualified to. Talk about how jobless future direction will help you through this transition.
Over more than 20 years over two decades shot his continued to bring value to developers in our prices worldwide.