ViennaJS March Joint Event with React Vienna


JavaScript at blazing speed: a deep dive into V8

By Michael Starzinger

This talk takes you on a deep dive into the inner workings of V8, the high-performance JavaScript engine powering Chrome and Node.js, focusing especially on the compilation aspects. It starts with an overview of V8’s modern multi-tier compilation pipeline, including a bytecode interpreter (aka. “Ignition”) and an optimizing compiler (aka. “TurboFan”). The second half discusses two JavaScript language features as examples of how V8 delivers high performance execution. We’ll look at how V8 optimizes higher-order array functions (like and friends) as well as how JavaScript generators and async functions are modelled. Come join this journey into the depths of V8. You’ll walk away knowing how to get the best performance out of those language features. Speaker Bio: Michael Starzinger is a software engineer at Google working on the V8 team in Munich, specializing in garbage collector and compiler development. Before joining Google in 2011, he worked on Cacao, an open-source Java virtual machine developed by the compilers and languages group at the Vienna University of Technology.

Rapid Prototyping in JavaScript & friends

By Attila Ruf

Difficulties in understanding the problem, crystal-balling for meaningful functionality, puzzling about user acceptance/technological feasibility and speed in delivery are the key challenges in driving ideas to business applications. This talk gives some insights on how Rapid Prototyping can help. Rapid Prototyping loosely defines a set of tools and principles (e.g. DDD, Vue.js, pre-defined GUI libraries...) to serve all parties to understand the true problem, and deliver user centric and technologically smart solutions in no time.

Using the Flux pattern in combination with Relay on a charting use-case

By Daniel Steiner

The flux pattern is around for a while and has found its implementations in popular libraries like e.g. Redux. When using a GraphQL server for the data representation of an application, Relay and Apollo are the two widely used GraphQL clients. Relay has lacked until recently the feature of directly manipulating the client data store. With this new feature, Relay can be used to update data in a component tree with Redux-like update functions, which are directly connected to specific components. This enables a developer to efficiently manage big data sets and update only the components, where data really change, but without all of the boilerplate of Redux or Apollo, and still having the exact same API as before that feature, including GraphQL type safety. Charting components usually handle big data sets and therefore are a canonical use case for that pattern.