 Thank you. Thank you very much for coming. My name is Kierkyan. I work at Oracle. Before that I worked at Sunmarker systems and in Oracle I'm increasingly working in that on the JavaScript strategy that Oracle has and I want to talk about something that many people may not be aware of of what I would call a second generation and development of JavaScript frameworks and libraries and I want to position this around a number of organizations organizations surprising organizations that have open source stacks and how you can use them what the benefits are the advantages disadvantages, etc. So in the enterprise, so I'm thinking about large organizations like like the Oracle the Microsoft banks ING in logistics and healthcare and insurance and banking these kinds of domains increasingly applications look like this, of course they're increasingly mobile applications and if they're not mobile applications, then they're very very engaging graph chart map gauge oriented applications on the desktop browser and This this is happening in the enterprise. This is all over the enterprise, of course This isn't simply hobby projects or small project. These are large enterprise front-ends and increasingly we see these Being written in JavaScript in these large organizations where maybe five or ten years ago These large organizations look very skeptically at JavaScript because JavaScript is constantly changing, which is a wonderful thing It's constantly growing constantly innovating, but if you're a large enterprise, that's not a very good thing because you want stability You would rather have a boring stable Ecosystem than one that is constantly changing So this is of course the problem that everyone faces, you know all these different All these different libraries all these different frameworks, you know making the right choice What is the right choice? Something that's the right choice today in three years or three months or two weeks could be the wrong choice How do you I mean this is the key problem of this of this ecosystem? And that's as true for large enterprises as for startups as for people working on something at home So this is on the one hand, you know this thing of this is wonderful. This is innovative I can constantly learn which is fantastic, but for the enterprise, you know, you want stability you want Reliability you want maintainability you want all of these kind of boring abilities, but The kinds of abilities that you need for for large Large systems large enterprise systems in logistics healthcare banking finance these kinds of things so In the case of Oracle for example traditionally these kinds of technologies have been used so adf a picks and forms And if you're not in the Oracle ecosystem, you've never heard of these things these are very preparatory to Oracle and Increasingly becomes difficult to find people with these skills and we go to the to the conferences of these particular types of technology Stacks you see a high dominance of gray-haired people which nothing wrong with gray-haired people But it does kind of indicate that this these are not the kinds of technology stacks when there is growth In and also when you look at at the Java ecosystem in general, which is what an enterprise like Like Oracle or Microsoft or SAP or whatever would intuitively first go for because it's been around longer because it's got these Libraries because it's got this ecosystem because you know this this is stability and there's this specification based Approach there are a number of technologies out there But what you have seen in the in the last couple of years is really that JavaScript is being used in these large enterprises and Key reasons are that the browser is everywhere You know the if there has been a war between platforms the browser platform has won I mean the browser is on every single device and the native language of the browser at least right now Anyway is JavaScript so it makes sense to ask yourself Well, maybe we should rather than using an abstraction such as these Oracle Technologies or some Java framework use JavaScript directly and a number of these organizations have been experimenting with this internally over a number of years and Have been over the past years since then open sourcing and putting those technology stacks out on github to get more engagement from From the developer community so people coming out of colleges universities know these These libraries know the idioms no JavaScript So in the case of Oracle, for example, I'm switching to a JavaScript oriented front-end technology With an Oracle results in its partners and customers doing the same thing Which as a consequence has that for the first time a number of them are able to hire new young developers Because there is just so much work out there for developers if you go for a job interview as a developer You are in fact interviewing that organization. They are not interviewing you You are there to see whether they have the technology stack that matches your Desires so if you go for an interview somewhere and they say to you welcome and work for us on our proprietary Technology stack and you say to them. Well, I'm going to leave in three years What can I do with what I've learned here and then they'll say well, it's proprietary You have to stay in the ecosystem basically in our specific ecosystem. So now By means of using these open source corporate technology stacks Organizations are able to attract new developers because of it being open source and because this is this enables a transfer of Skills from one organization to the other within that open source domain So what can we talk about a second generation? One was always talking and comparing angular versus backbone versus ember versus this versus that and maybe Especially if you're in the enterprise ecosystem Enterprise developer of some kind you should instead be thinking about Comparing these corporate solutions on this obviously the the large software vendors So Salesforce has its stack Microsoft has its stack are okay its stack But did you know that there are other types of normalizations? Like you will not expect to have these kinds of steps. So who here has heard of Kraken? So Kraken Very interesting. It turns out PayPal has its own open source division Which I learned about when I was at a conference and the keynote was done by a VP from PayPal and The keynotes at this developer conference He wouldn't have been able to do if he had been talking about their proprietary stack But because PayPal like anyone else is looking for new developers They have an open source story and enabling their VP to go to developer conferences, you know stand on the stage Sponsor the conference and say come and work for us. We have this wonderful open source technology stack so The the process by means of which these technology stacks develop is always the same So first is this internal experimentation for example in PayPal internal experimentation. Let's look at angle Let's look to react at some point the organization says enough Experimentation we need to standardize and then an internal technology stack is developed within that organization and at some point Someone says in that organization. Well, we have something that is really coherent and usable by anybody We want to attract more people all the building blocks of our stack are open source. Anyway, why don't you put it on Github? And then put it on Github And so so this is one example Kraken. So here you have so if you're using these building blocks already Kraken is a great way to A great solution to use to combine them. So they use react. They use node all the usual suspects if you look also, so not just at at PayPal but here's some other examples. So it turns out Walmart. Did you know Walmart is an IT organization? Of course Walmart is an IT organization every organization every company nowadays is an IT organization. So Walmart has Has an open API. It has an open source story. Did you know the financial times is on Github? Same story. I have a technology stack that developed inside the organization. Another example is Uber Uber is on Github their internal technology stack consisting of various open source components and libraries is published on Github So it makes sense to take a look at these different these different solutions. There are two warning signs, however the first is a Large enterprise putting something on Github could be a large enterprise saying we don't care about this technology stack Could be so be very careful whether this means this is the end of our interest in it. We are giving it away Or does it mean we want to get the community involved with our direction? That's that's the first question to be really careful about so there was a Bank number of years ago that went to a lot of conferences and talked about their Technology stack and the VP was on stage and so on and if you go to their Github repo now You'll see it's really the nice thing with Github is you can see the the amount of development going on This there's nothing hidden so you can see in that case. Well, they've done nothing in the last five years So then you wonder okay, should we use this the second question to ask is is the business I'm doing comparable to the business that is done by the vendor putting out this technology stack on Tugeta so if your business is not very similar to the financial times or If your business is not very similar to Walmart, maybe you should ask yourself. Well, does this really fit my requirements? So if you're in the obviously if you're in the software business creating software products creating Web apps of whatever kind then it makes sense to say well our business is maybe we are a partner of Microsoft We're a partner of Salesforce. We are partner of this particular Vendor, let's see how they do things and let's see if they have an open-source solution that we can leverage So that's that's basically a The kind of direction that has clearly been been going on over the last couple of years In each of these cases what these technology stacks need to respond to are a number of enterprise requirements So the question is never in these cases. What is the latest coolest library? Never the question is always What is the stabeless library? What is the stabeless library out there because I mean all these different frameworks and libraries are morally similar When if you now react you can learn Angular if you if you don't knock out you can learn view these are these are all variations and dialects of each other The first question is always is it stable? Is it stable? Has it been around for a while? It's a documentation. Is there a community around it? Kind of find things on stack overflow. Is it stable? Well, it's still be there in a number of years time That's a that's an important question in the enterprise. It's not what is cool What is new and does it have built-in solutions for doing responsive design with other? Templates to set things up other ways to scaffold things are their solutions around accessibility and around internationalization So these are when there are specifications around around this that large enterprises need to comply with So if they choose a technology stack that it needs to have some solutions around this are the data visualization Capabilities do I need to go and look for graphs and charts somewhere or can I simply use them out of the box from this particular stack? Are there are there solutions around security the biggest question that an enterprise has? So how are security issues handled? Can I tweak? Can I can I optimize performance another big question you have in the enterprise? What are the standards that conforms to? other ways to empower my business users, so is it just a code oriented solution and also Documentation and support not obvious at all right in the JavaScript ecosystem there's a cool new library out there and you start using it and you do hello world and it's fantastic and then the very next step There's a problem and then you write to the random person in the basement who created this wonderful library and they say yeah Thanks, but I'm working on something different now so this is not a That's not a nice thing for for enterprise developers. You want something stable and reliable and Consistent and so on so in the case of Oracle as one example of this particular Thought pattern We ended up choosing jQuery very boring. We ended up choosing knockout not the latest thing Cordova for for packaging everything together Require just for modularity. What is nice about require is and about knockout is that there are very specifically and narrowly Focused on one particular thing So this is another thing that is we're thinking about are you choosing a framework that locks you in? Especially a vendor driven framework, or are you choosing a modular loosely structured flexible architecture? Because things are changing all the time. So if you have this very strongly vendor focused Framework, well, they've been able to keep up with all the changes. Are you able to experiment? Are you able to throw in new libraries and adapt and adapt to change? So in the case of the approach taken at Oracle is let's just choose a few libraries out there combine them together Make it flexible make it extensible. So if you know require You know, you did this a required configuration file You just add new libraries into that configuration file and and you're done So really if you know require if you know knockout if I know jQuery Then you know everything that that that you need to know in order to be able to use Oracle's Enterprise technology stack out of the box then recently added was webpack and and typescript So typescript base development is also possible So in the case of how Oracle looks at things in this JavaScript space It's purely a front-end solution. So back end is completely open. No connection to any particular DB or whatever you would have rest endpoints you would have web sockets and Oracle's technology stack, which is called jet. It stands for JavaScript Extension toolkit is based on top of that the back end of rest endpoints and web sockets and it's just a model view view model of knockout jQuery require Routing built in for bookmarks. So require for modularity and built in support for for web components So to show you what this looks like the command line In a folder and I say oh jet. So there's a there's a small command line tool that you can store via npm create an app of some kind and There are different templates for scaffolding And then you kick off the process. So this is a this is a little command line tool that you Can install via npm. It's all free and it just sets up the the application for you It takes about two minutes to download the library So it actually downloads jQuery beneath this are things like power and grunt don't need to learn power and grunt It's all hides it within that particular tool and very quickly generates the application Here we are and then we go into that application and we say oh jet serve and It serves up the application into the browser and you have a pure front-end and you can then connect to any back end or Whatever you need So within about two minutes of starting this application We should have it served up and shown in the browser and then This is exactly what people all over Oracle are doing. So all of Oracle's newest front-ends are created in this way So here we have a starting point if we change the resolution. You can see it's responsive. So we get the hamburger icon Shown with the typical Menu structure for my mouth. So out of the box responsive design symbol page application architecture because All over Oracle there are developers switching from Java front-ends and all kinds of other front-ends to JavaScript And they're doing it in this way They don't need to think about responsive design in their initial setup They don't need to think about the project structure that I need to think about single page application architecture It's all simply built in to the template that sets us up. So now the next step is we want to have some content So open any editor you like and so I work a lot on net beans, which is in Apache and here is the source structure. So View models and views. So here are the HTML templates and here with the JavaScript files And there's a one-to-one match with the tabs you see in the browser dashboard incidence customers about so the dashboard tab consists of a defined block in a file called dashboard.js and And an HTML file in dashboard HTML. So here we have the the two files together that create a module This is simply a require.js module that is loaded into the application By means of the single-page application architecture. So as a fragment into the index file So now we need to have some content. So there's a cookbook So all over Oracle people are switching to JavaScript and if you're a JavaScript developer You like nothing more than if you need a daytime picker you go to google.com Look for JavaScript daytime picker find some random snippet copy and paste it into your application, right? So That's very dangerous in the enterprise, of course. You want to control where everything comes from. So this is a controlled environment This is an open page online We can go to where all the components are found. So here's one of them So here is a bar chart and there's many different kinds of charts all enterprise oriented You can see here that there's HTML and this and this JavaScript and I can tweak these this graph live. So this is actually running live in the browser you can see there's a toolbar along the bottom here and I'm not going to just remove those tags from The HTML and I say apply so I'm updating the browser live So I can tweak all the components live until I'm happy with them And then I'll copy the chart Copy from here and paste that into my HTML file So here's here is the chart so you can see there is a custom element and You can see key value key value and these values are JavaScript properties. So here is the JavaScript so we simply copy and paste and The final step is we need to Add to the define block a reference to the chart. So this is simply using a require So here we have a reference to a J chart and paste it so now I've copied from the cookbook and I look at the application the browser here's the chart All over Oracle people are setting up their applications like this Then copying and pasting as JavaScript developers love doing but directly from a controlled space So that the daytime picker that one person copies is the same daytime picker as somebody else copies And and this is how we are moving ahead in the JavaScript front-end ecosystem now, of course There's also support for wet components. So this is increasingly important. I'm gonna stop this process and I'm gonna need a little window here And get back into that folder desktop Into an app, so here's my app structure now. I'm gonna say a jets create a component first damn chart But very quickly what is generated is the starting point of a Component that meets the web component specification requirements So this we can zip up and share So there is already internally within Oracle a an exchange full of components like this So inside of one of these folders is found Most importantly the definition of a new custom element So here a custom element called fast damn chart is created and here's the HTML file the JavaScript file the CSS file So this enables us to create web components and potentially for for the ecosystem around Oracle to base its business around creating generic components for Google Mac integration or Whatever integration they would like So what I've talked about is basically that there's a second generation of of frameworks and libraries They're on github Take a look at them compare them consider which of the vendors doing this open source work are in your domain area What your organization is partner of see what they're doing and leverage of them There's no need to recreate the wheel anymore. You can lift along with the Developments of these large vendors because once they have gone in a particular direction It will take a long time before they change to something different So these are all stable solutions that you should consider making use of especially because they are free and open source Thank you We have time for questions who has the first question issue if you do have to go away then please don't make noise and Be nice Thank you very much Question you asked you talked about things being open source, but there's also the evil twin Because I would be extra worried with big organizations about patent claims coming back later to haunt me So do you have any ideas on how to to combat that fear or or take it away or to some degree? Well read the read the If a queue of that particular project very carefully and make sure that the licensing is okay So in the case of the Oracle jet solution, it's it's MIT license Which is about as liberal as you can go, but you need to just make sure that the licensing is really appropriate to your to your needs and In the in the case of an organization like Oracle Oracle really wants people to use this So there's no way that afterwards anyone's going to say hey, why are you using this? You need to really look at why is a particular technology stack out on GitHub? Is it because it's being dumped by an organization and if you start using it in a be be concerned? Or is it because they want to attract more developers in their ecosystem in which case more than likely No one is going to come after you because they want you to use it Thank you Okay, well, thank you very much for your attention. Oh, oh, oh so many question right here Hey, so An open source product my experience with open source projects is You get a bug fix like someone is using it They see that something's wrong with it. They make a bug fix anyway. It's not perfect an open source project with not many Like full-time people on it will accept that bug fixing it would be good enough and stuff like that But with a bigger organization, it's sometimes harder to get stuff in upstream and then you have to Basically patch them and do crazy stuff around that. So how Open is Oracle? I mean and other big. Yeah companies I think what you will see in all these organizations and Oracle is the same like in the first Open source release. It was only it was only available for the Partners of Oracle like it was it was available for everybody, but only partners could use it in production That was the first phase the next phase which is right now is everything is on GitHub and you can you can use it? Whatever, but you can't you can't do pull requests on it yet And then so it's always going to be in stages and the next stage once it's all stabilized and and and you know The next stage would be hey, let's accept pull requests But you should you should really ask these questions when you're looking at these kinds of different offerings because exactly this and And and and it's also I think a question of in the case of Oracle I think The community around it is growing because all of Oracle's partners and customers have wanted to use JavaScript for years But there's never been an official way for Oracle partners and customers to do that So some did angular some did react some did this some did that so now Oracle is standardized So now all Oracle's downstream partner customers if they do JavaScript, they would do it like this So this will create a community. So right now one of the One of the employees of one of the partners is writing a book on Oracle jet in anticipation of this becoming more and more popular So then you build up a community So then you could envision the community being involved in reviewing the bugs for example so it's always going to be some some kind of Conflict in a way between the the commercial interests of the enterprise and its open source vision But you have to just see what what's going on per project Thank you