 այակ, Եվ դհահանասիրկ. Եվ էակ, Եվ էակ իս ՒՒէ equatorfen. բախե, Եվ էակ, ֆոՅ, Եվ էակ. 2020 ։ Իվ today, we will discuss about the status of the G.S. core. Եվ էակ, Եվ էակ, Եվ էկ, Եվ Եվ էակ. Please raise your hand if you know the G.S. Okay, perfect. Okay, first I will present me very quickly. I am an open source believer since a long time ago and I am inside FOSDEM development management since a while and now I am working as an open source architect at IBM with the help of Red Hat to help the client of IBM to migrate to open source and use open source every day. Okay, first I want to say a big thanks to Bet because in fact it was planned to be Betgrings to be here. She is one of Node.js core developers from IBM but she can't come for this Sunday. That's why I am replacing AI for this talk but the main content of this talk comes from AI. And by the way about Node.js at IBM we have 11 core developers inside IBM to contribute in Node.js. Other companies contribute also on Node.js and we have four STIR committees members in JavaScript. The STIR committees is to define the future of JavaScript. And finally maybe you might aware about Open.js foundation. It's a foundation under the umbrella of Linux foundation and the idea of Open.js foundation is to help the JavaScript ecosystem with Node.js, with the packaging and IBM is also active in this way. Okay, now on about Node.js. First information I want to give you it's about several releases and it's pretty important to understand what release you use for Node especially on production because it depends on the version you use of Node.js. You don't receive after a certain time the bug fixes and even more the security fix. It's why I recommend you to use LTS long-term support like you have for most Linux distribution like Ubuntu or Redat. And for your information for now Node.js 8 is end of life. You won't receive any more security fix on it. Please to upgrade your Node.js version. And for now the LTS version of Node.js is 12. You can use it until 2022 in safety way. And after that you need to plane to upgrade to the next version of Node.js. Okay, we have a lot of new interesting features inside Node.js to be more enterprise-ready. One of feature it's around promises to help you to handle easier. If you have several promises we have now several methods like all settled to be able to wait when all promises are finished to retrieve all results even if you have a problem on promises. Moreover this is a very interesting feature for when you write async function or coroutines in Node.js. This feature the async stack trace enables you to see the path where the stack trace comes. It means for now we want this feature you see only the last stack trace from this async function and with this feature you will see okay in fact this function has been executed after this function. It's easier to you to find what async function has launched the stack trace. Okay, moreover a feature from v8. v8 is JavaScript engine used by Node.js the same as Chrome. We have now private class fields where you as you can see you have a special syntax with hash at the beginning of the name and if you try to read this variable outside the object but you have a syntax error because you don't have the right to read the content. We have also tell us 1.3 it's pretty important because tell us 1.2 as released 10 years ago and since 10 years we had several security issues with SSL even with tell us 1.0 with EarthBleat and several security actors as decided to improve TLS in terms of security and also in terms of efficiency in terms of N checks and now it's natively supported with the latest LTS version of Node.js Moreover about the support of modules for now if you want to use modules often you need to use libraries like Rokard.js and with this feature now it's native inside Node.js we have also an article on medium on the Node.js foundation where you can have technical details about this feature but it's mainly to have this syntax import-export to be used we want to need to use something like Babel and on Node.js 12 we have diagnostic reports natively inside Node.js it means when you have an issue in production in terms of efficiency or you need to know the internal state of the virtual machine of Node.js you can now retrieve a JSON report with the internal state of your Node.js process Moreover finally when a long feature waited by the community the worker thread is finally the API is finally stable it means inside Node.js for now you have one thread the main thread with an event loop in case of you use your white piece of code use a lot the CPU it could block your main threads if you need to launch a computation in the past you need to start another Node.js process and now it's possible to use directly threads and it's easier to share memory between threads and we have a presentation to explain in details what it means in terms of usage in Node.js 12 we have also in the past when you start Node.js you have some memory configuration in terms of garbage collector was static and now at the start of Node.js it checks how many memory is available and define correctly the limits based on these values we use also now LLHTTP to pass HTTP requests and the NPN version has been upgraded moreover Node.js 12 is not the latest version it's the latest LTS version and you have also access to Node.js 13 it's not an LTS it means at the June it will be finished you don't receive any more new versions but you need to get to Node.js 14 and in this release you have a better support of internalization you don't need to use an external JavaScript library to be able to translate for example the dates here it's an example to translate to a Spanish date we have also some Node.js console improvements to be more fancy, more easier for developers to use with a completion preview and this release of Node.js has a national support of WASI just before my talk you had an explanation about WebAssembly WebAssembly at the beginning was targeted for the web browser WASI is a WebAssembly system interface it's for the backend and it enables you to execute WebAssembly inside the backend just of this you generate one time WASI binary file and you don't need to take care about the architecture or even the operating system your piece of code will run and to enable that when you start Node.js you need to add CLI parameter to be able to execute this this is a slide to give you an idea about the activity around Node.js score as you can see we have a lot of activities especially in terms of pull requests and we have more than 2000 contributors on Node.js score and we have also more than 100 collaborators it means they have enough rights in the source code to validate pull requests but we don't have not only Node.js score we have several working groups to do releases, to do security for Node.js for benchmarking to be sure we don't have any regressions in terms of efficiency between two releases and one of the most important working groups for you it's the build because the Node.js build working group generates the binary you can download on the Node.js website and here it's a photo of one of Raspberry Pi cluster we use to generate the IRM version of Node.js for different Linux distribution the build working group is maintaining the Jenkins CI as a build server and we use a lot of sensible playbooks to be able to create a machine from scratch and to build Node.js and we have more than 200 machines and more than 50 operating systems architecture combination and thanks a lot about the donors for the build working group because we need to host these machines from several cloud operators and if you want to contribute inside Node.js we have the website Node.js.to-do where you can see a small roadmap for you to be up and running to contribute inside Node.js voilà voilà voilà first question hi, thank you for the presentation the one thing you forget to mention that the spread operator is also became faster it became faster 100 times as of Node.js 12 just to finish I have a question about V8 Node.js so when will you move to 8th version of V8 and other question is when will optional change will be available the question is when will we look great to V8 V8 release we have an issue on it some blockers are so because as you can imagine it's not possible to simply upgrade V8 you have a lot of links between Node.js and V8 and it needs to adapt it for example they change some APIs you remove some APIs at my level I don't have an idea for the due date but I know it's planned some things like I've seen hooks that have been a while in different versions of Node and they still are experimental if there is a plan to move it to a more stable stage for what's the API? I've seen hooks for example here again to my knowledge we don't have a schedule for that but I don't know thanks for the presentation my question is that I can see that Node.js is still maintained but actually the creator of Node.js I saw once that he has a repo called Deno which is in the description saved Node.js version with TypeScript so they are working together or we will have a point where we need to switch to Deno or keep with Node.js to my knowledge it depends on you can use all the extension of the file to define how you can type of import I think you have also an option you can pass via CLI for that another question yes so I have a question about worker threads so you have different threads what about event loop you have event loop for every thread you have one thread on one event loop for all threads the question is with worker thread if we have only one event loop or event loop by thread the answer is we have an event loop by thread to be able to execute in parallel several event loops so as you know this is the exit this door doesn't exist anymore this is the exit so you'll have to come around blame me for security and everything that's fine there is an empty seat after everybody has stood up move to the left suggestion, critics, complaints, whining, ideas all there if you already have a talk for next year also there thank you