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

2020 Tracks

  • Mechanical Sympathy: The Software/Hardware Divide

    Understanding the Hardware Makes You a Better Developer

  • Paths to Production: Deployment Pipelines as a Competitive Advantage

    Deployment pipelines allow us to push to production at ever increasing volume. Paths to production looks at how some of software's most well known shops continuous deliver code.

  • Java, The Platform

    Mobile, Micro, Modular: The platform continues to evolve and change. Discover how the platform continues to drive us forward.

  • Security for Engineers

    How to build secure, yet usable, systems from the engineer's perspective.

  • Modern Data Engineering

    The innovations necessary to build towards a fully automated decentralized data warehouse.

  • Machine Learning for the Software Engineer

    AI and machine learning are more approachable than ever. Discover how ML, deep learning, and other modern approaches are being used in practice by Software Engineers.

  • Inclusion & Diversity in Tech

    The road map to an inclusive and diverse tech organization. *Diversity & Inclusion defined as the inclusion of all individuals in an within tech, regardless of gender, religion, ethnicity, race, age, sexual orientation, and physical or mental fitness.

  • Architectures You've Always Wondered About

    How do they do it? In QCon's marquee Architectures track, we learn what it takes to operate at large scale from well-known names in our industry. You will take away hard-earned architectural lessons on scalability, reliability, throughput, and performance.

  • Architecting for Confidence: Building Resilient Systems

    Your system will fail. Build systems with the confidence to know when they do and you won’t.

  • Remotely Productive: Remote Teams & Software

    More and more companies are moving to remote work. How do you build, work on, and lead teams remotely?

  • Operating Microservices

    Building and operating distributed systems is hard, and microservices are no different. Learn strategies for not just building a service but operating them at scale.

  • Distributed Systems for Developers

    Computer science in practice. An applied track that fuses together the human side of computer science with the technical choices that are made along the way

  • The Future of APIs

    Web-based API continue to evolve. The track provides the what, how, and why of future APIs, including GraphQL, Backend for Frontend, gRPC, & ReST

  • Resurgence of Functional Programming

    What was once a paradigm shift in how we thought of programming languages is now main stream in nearly all modern languages. Hear how software shops are infusing concepts like pure functions and immutablity into their architectures and design choices.

  • Social Responsibility: Implications of Building Modern Software

    Software has an ever increasing impact on individuals and society. Understanding these implications helps build software that works for all users

  • Non-Technical Skills for Technical Folks

    To be an effective engineer, requires more than great coding skills. Learn the subtle arts of the tech lead, including empathy, communication, and organization.

  • Clientside: From WASM to Browser Applications

    Dive into some of the technologies that can be leveraged to ultimately deliver a more impactful interaction between the user and client.

  • Languages of Infra

    More than just Infrastructure as a Service, today we have libraries, languages, and platforms that help us define our infra. Languages of Infra explore languages and libraries being used today to build modern cloud native architectures.