Budapest is a beautiful city with a vibrant nightlife and a lot of pubs on almost every street. I had a possibility to visit it during this year’s JSConf. The conference took place in the Urania Cinema in the middle of the city — a wonderful, historic building in the Venetian Gothic style. The beautiful interior of the building, combined with the technological atmosphere of the event, created an extraordinarily magical feeling.

“Extra” club bar garden was the second official after party

JSConf Budapest is a perfect place to visit when you look for latest vanilla JS trends and you want to gain some knowledge about the upcoming features. But you should also consider it, if the question of specific frameworks is not the most important for you. This year, we saw a lot of brilliant presentations regarding issues like Native Observables, Multithreading, Proxies, WebAssembly and WebRTC. In the next paragraphs, I will tell you what’s going on in the JS world according to speakers of #JSConfBP.

Urania Cinema in Budapest

A modern look at known issues

We know the functional reactive programming paradigm and a lot of implementations of the Observables like a RxJS, Cycle.js or Bacon.js. Stefan Judis with his “Watch your back, Browser! You’re being observed”, showed us that the Observables will soon be available as native interfaces (TC39 proposals). We also saw the IntersectionObserver, MutationObserver and ResizeObserver. Half of them are already compatible with modern browsers — just check it out here. We are also going to possess new API for performance measuring with PerformanceObserver.

Stefan Judis, “Watch your back, Browser! You’re being observed”

“Async patterns to scale your multicore javascript… elegantly.”Jonathan Martin told us about a bunch of opportunities to make our multithreading without require(’cluster’) but by using tasks per core with Web Worker Clusters, async IFFE and managing concurrency with functional programming. That makes Javascript a powerful tool for making concurrent multi-core apps. For multicore, you can additionally use WebAssembly and RxJS for better communication between threads.

Dan Callahan, “Practical WebAssembly”

The next speaker — Dan Callahan portrayed the “Practical WebAssembly”, which is the direct successor of asm.js and an open standard supported by all major browsers. It’s a new low level programming opportunity for JS with binary format, which might generate new, hybrid WASM+JS designs in the future — if you know C/C++ you can check it out now: just translate your source code into WebAssembly by WASMExplorer — that probably is powered by Binaryen, which you will be able to use for target compiling. For the fallback, you can use older asm.js (with Emscripten — my favorite port QuakeJS is made that way). Finally, Dan showed us a completely surprising use of Dosbox in the browser by turning on the Windows 3.11 with nostalgic Netscape. And all of that worked simply within the browser!

A beautiful interior of Urania Cinema

Through the next speech– “Exploring the P2P world with WebRTC & JavaScript” by Nikita Baksalyar , we’ve learned that:

WebAssembly + WebRTC = ❤

Primarily, this is a perfect solution for distributed computations, hence, not only for audio and video. It gives a possibility to transfer data and re-decentralize the form of BitTorrent by Data Channel API.

The aforementioned APIs will likely pose the future foundations of new generation applications’ segments — quoting my favorite writer William Gibson with his immortal thought:

The future is already here — it’s just not very evenly distributed.*

We live in the times of infinite transformations, possibilities and outstanding discoveries. Therefore, just enjoy and discover your “Brave new world”!