ReactiveConf — In the loop with Evan You

Gerard Sans
In the l8p
Published in
5 min readJan 26, 2018

Get to know speakers before meeting them at the conference

@youyuxi

Woot! The final countdown has started! 10…9…8… lol… We are super excited and counting the days to meet all of you. We are super fans of all the speakers and we want you to know everything about them. Today in our series of speaker’s interviews is the turn for Evan You who is going to talk about the Vue Framework!

Note: questions and answers have not been transcribed but adapted from notes.

Hi Evan! Can you give us a little intro of yourself?

Hi everyone! I am the author of Vue.js, working full time on the framework along with other core members and volunteers from all over the world. The core team is composed by a team of 15 to 20 people.

Before this, I worked at Meteor and Google as part of the Google Creative Lab in New York. Over there we worked on a lot of experimental UI prototypes. This was my first job!

I like playing video games and karaoke but these days I don’t have that much free time as I need to take care of a new little family member.

Note: I also asked Evan about a rumour going around saying that he worked with the Angular Team. He is happy to deny it. At some point he used Angular at Google Creative Lab but that’s all. No reason to keep this rumour going! =)

Cool stuff! What are you working on for ReactiveConf?

The talk idea is around compile time optimisations in frontend frameworks.

We are seeing a lot of interesting applications in how you can use the compiler in creative ways. We have been minifying our source code for a long time but it’s only since Babel when they introduced compilation pipelines that allows us to manipulate our code during this process using plugins. This not only applies to JavaScript or Babel but also to other tools like Clousure compiler, rollup and Bublé; for CSS we have postCSS; and for HTML we have postHTMLtogether with open source HTML parsers.

There are a lot of opportunities as we are using a single file component format and in that file we have: template, CSS and JavaScript colocated. So during compilation we have access to these all three parts in the same context and at the same time. This give us a chance to do a lot of interesting things. We haven’t really unlocked all of the possibilities yet.

There are few things we currently do during compile time like:

  • processing templates so we can extract the static parts and optimise the runtime updating time
  • turn our templates into pure strings during server side rendering to optimise performance
  • analyse both the template and styles to apply style scoping which is fully backwards compatible without polyfills.

All of the above are possible because the compilation step. This not only applies to Vue but we can see it in svelte taking this compiler concept to the extreme where the whole framework becomes the compiler. Angular also has the concept of Ahead of Time Compilation (AOT). Ember compiles the templates into code using glimmer. Facebook uses prepack which rewrites your JavaScript to make it boot more efficiently.

There are a lot of great ideas. For example, earlier this year, Sunil Paiintroduced the concept of rakt using decorators to inform the compiler for application level optimisations. In some sense code splitting in webpack is also using compile time optimisations because we are using the dynamic import syntax as a compilation hint to decide where to split our application; all we do is change our source code and then all the code splitting is automated for us. I’m going to cover over all these concepts and show where the common parts are.

I want to encourage everyone to experiment. We are just getting started. There’s still a lot we can do in this space!

That sounds great. For people new to Vue.js how would you go about introducing it to them?

Vue.js started as a view library but later on we realised that a group of Web Developers was being neglected and we wanted to focus on helping them.

On one side we have React which is just the view layer. Everything else is driven by the community. This leaves you with a process of pick and choose. Alternatively, you can use a boilerplate that has done some decisions for you. But there are no guidelines given by the creators on how you should build your application. So you have to decide who you want to learn from.

On the other side we have frameworks like Angular or Ember where they provide the pieces you need and are opinionated about how you build your applications.

Some developers like one or the other but we realised that there’s also a third option that sits in between these two. With Vue 2.0 we wanted to offer both the flexibility and the opinions only when you need them.

The term we use is Progressive Framework, meaning that Vue is incrementally adoptable. It’s not a monolith but a decoupled set of libraries that you can mix and match so you can use as much as you need. This allows you to scale between a library and a full fledged framework.

We allow people to adopt Vue in a way that they feel comfortable with and that fits well for their use case.

Awesome! I really like the idea of a progressive framework that doesn’t get in your way unless you need it. What are you interested in outside frontend development at the moment?

I have been casually following how cryptocurrencies could be used in front end. I have nothing tangible to share but I would recommend people to have a look at it. Check out how Blockchain could be utilised for Application development in the future. Some other hot topics I keep an eye on are: Artificial Intelligence and Virtual Reality.

Recently I had the chance to play with HTC vive and that was a mind-blowing experience. In the future, Users won’t be staring at flat screens but immersed in a VR experience! This may take few years but eventually it’s going to happen. The current UI/UX paradigms would have to go through a fundamental shift that will affect how front-end developers build applications.

Sounds awesome! Can’t wait to know more about your exploration of compile time optimisations! As a last question: what talks or topics are you looking forward to at ReactiveConf?

I am pretty interested in the talk by Richard FeldmanCSS as bytecode”. That title looks pretty cool! I also want to learn more about Jared Forsythtalk on Reason. I have heard a lot of good things about it.

These talks look very promising. Thanks for your time Evan and looking forward to your talk at ReactiveConf!

Thank you. Happy to share my thoughts. Hope everyone enjoys my talk and is inspired to explore more on how to use compilation to create awesome features and tooling!

--

--

Gerard Sans
In the l8p

Helping Devs to succeed #AI #web3 / ex @AWSCloud / Just be AWSome / MC Speaker Trainer Community Leader @web3_london / @ReactEurope @ReactiveConf @ngcruise