You are viewing content from a past/completed QCon

Track: Pushing the Web Forward: JavaScript, Frameworks, Transpilers, and WebAssembly

Location: Pacific LMNO

Day of week: Tuesday

The browser has become the universal application engine, and its primary programming language, JavaScript, is now the most widely used programming language.

With so much interest in this platform, substantial interest has occurred to improve and augment JavaScript and its associated web platform features.

In this track we'll look at recent trends, advancements, and the future direction of the web platform, from JavaScript and its underlying ECMASCript standard to WICG, transpilers, frameworks, and WebAssembly which together look to make the web a viable platform for software engineering indefinitely.

Track Host: Dylan Schiemann

CEO @SitePen

As CEO of SitePen and co-founder of Dojo, Dylan Schiemann is an established presence in the JavaScript and open source communities. Under his direction, SitePen has become the definitive source for enterprise organizations that are focused on creating well-tested, highly performant and sustainable web applications. Dylan’s current initiatives include guiding development on Intern and modern Dojo. Dylan was the co-founder of the Dojo Foundation prior to its merger with the jQuery Foundation to later form the Open JS Foundation. Dylan also helps organize the HalfStack meetup and conference series and TSConf. When not actively engaged in bettering SitePen and demanding better developer tools, Dylan enjoys traveling and sharing his experience at conferences around the world.

Track Host: Phil Haack

Management & Leadership Coach @haacked, previously @Github & @Microsoft (Shipped NuGet & ASP.NET MVC)

I coach software organizations to help them become the best versions of themselves. Often, it’s not the lack of technical know-how that holds teams back, but the lack of management and leadership skills that get in the way. When I help teams in this way, it’s important that I leave them with tools and systems in place to scale their growth and learning.

Before I started Haacked LLC, I worked at GitHub doing whatever I could to make it even more awesome. Prior to that I worked at Microsoft on NuGet and ASP.NET MVC and helped to usher in Microsoft’s Open Source era.

I’m also a published author of several technical books and a regular international speaker.

10:35am - 11:25am

MakeCode: Types, Games and Machine Code

Microsoft MakeCode is an open-source platform and accompanying web app for building educational programming experiences (code editor, simulator, debugger, tutorials, documentation, etc.) for small, cheap embedded devices. Students can program by stacking together graphical blocks, or using Static TypeScript (STS) - a fairly extensive subset of TypeScript. STS code is compiled in the browser to machine code to run on devices with as little as 2kB of RAM. In this talk I will demo the MakeCode platform and give some technical details about the STS compiler. In particular I'm going to show MakeCode Arcade - an editor for retro-style games (160x120, 16 colors) that run in the browser and on dedicated hardware, and can be programmed very easily using modern, high-level APIs. MakeCode and all hardware to be demoed are readily available.

Michal Moskal, Principal Research Software Development Engineer @Microsoft

11:50am - 12:40pm

Javascript Open Space

Session details to follow.

1:40pm - 2:30pm

Making Npm Install Safe

There’s a JavaScript package for everything. But installing a random package is a security nightmare: the installed package can access your data and send it over the network without anyone ever knowing.

But there’s hope! This talk will discuss how to minimize the risks of running third-party JavaScript. We’ll go over POLA, the Principle of Least Authority, and how object capabilities can help us grant specific, limited resources to third-party code. We’ll also cover the current efforts to enforce security boundaries in JavaScript: SES (Secure ECMAScript) and Realms.

Kate Sills, Software Engineer @agoric

2:55pm - 3:45pm

Build Your Own WebAssembly Compiler

For more than 20 years JavaScript has been the only 'native' language of the web. That's all changed with the release of WebAssembly. In the coming years, you'll see people writing web apps in Rust, C#, C++ and all manner of other languages. But just what is WebAssembly? And what’s all the fuss about?

WebAssembly is a low-level compilation target, which means that it is unlikely you’ll use it directly. However, as developers and hackers, we love to know how technology works!

In this talk, Colin will look at some of the internals of WebAssembly, explore how it works ‘under the hood’, and look at how you can create your own (simple) compiler that targets this runtime.

Colin Eberhardt, Technology Director @Scott_Logic

4:10pm - 5:00pm

Make Your Electron App Feel at Home Everywhere

Electron gives you the power to write a single application for Windows, MacOS and Linux. But Electron apps can easily feel out of place among other applications, exactly because you have so much freedom in designing your UI. This feeling of something being "off" often comes down to the details, not your overall UI. Kilian takes you through the process of making your app feel at home on all three platforms, making you aware of the pitfalls and how to avoid them.

Kilian Valkhof, Front-end Developer & User-experience Designer @Firstversionist

5:25pm - 6:15pm

Declarative APIs in an Imperative World

Declarative UI frameworks have taken over the JavaScript landscape. Which is great, because making assumptions about your application's state is a source of pain, frustration, and bugs. But what happens when you need to glue together imperative APIs with your declarative UI framework?  

In this talk, I'll explain problems the Atom Editor team came across when we started using React as our UI framework, as well as the solutions we came up with. We'll discuss how to generalize these patterns to integrate with other imperative APIs you might come across in the wild, such as animation libraries. Finally, we'll explore what we can learn from the history of software trends over time to create a better future together.

Tilde Thurium, Developer Evangelist @Twilio

Last Year's Tracks

Monday, 11 November

Tuesday, 12 November

Wednesday, 13 November