Evan You is the author of the front-end framework Vue.js. He is an independent open source developer based in New West, USA. Previously worked at Google Creative Labs and Meteor Development Group. Due to the large number of open source JavaScript projects in my work, I finally went on the open source road myself and now develop and maintain vue.js full time.

What motivated Vue in the first place?

Vue started out as a purely personal interest project. Back in 2013 WHEN I was working at Google Creative Lab, the front-end framework was still in its infancy, React had just been released and few people knew about it, and AngularJS (Angular1) was the most mature. On the one hand, I wanted to implement a simple framework to practice, on the other hand, I wanted to try using ES5’s Object. Define Property to implement data change detection. It is well known that AngularJS uses dirty checks, and at the time most applications still needed to support IE8, so they couldn’t fully use ES5, and individual projects didn’t need to consider this. That’s how Vue started as an experimental project.

What is the history of Vue? What are the major changes from 1.0 to 2.0?

The development process of Vue, from the initial experimental stage (mid-2013 to February 2014), 0. X stage (February 2014 to October 2015), 1. X stage (October 2015 to September 2016), to the present 2. Plus the official release time, to today has been more than five years. 0. The changes in X-1.0 focused on the template syntax. After 1.0, the template syntax was relatively stable and did not undergo any major changes. The 2.0 changes focus on the internal rendering mechanism changes, introducing the Virtual DOM, thus obtaining server-side rendering, native rendering, handwritten rendering functions and other capabilities. 3.0 is currently under development, focusing on taking advantage of ES2015’s new features, improved internal architecture, and performance optimizations.

As the founder, how much do you contribute to Vue today compared to the initial period?

The biggest difference between Vue today and when it started is that the scope of the framework is much larger. Vue started with a single core library, and now includes a full set of facilities for routing, state management, CLI toolchains, browser developer plug-ins, ESLint plug-ins, and more. At present, only the core library is still maintained by me, and other sub-projects are basically handed over to team members for routine maintenance.

Vue’s code is simple and lightweight. How is it combined with “functionality” in actual development?

The balance between simplicity and functionality is a challenging design issue. From my perspective, it’s important to make sure that when the user doesn’t need a feature, it shouldn’t impose an additional mental burden on them. For example, Vue’s animation component, if you don’t need the animation functionality, you can completely ignore it. At the framework level, this is also reflected in Vue’s “progressive” design philosophy, i.e. you don’t need client routing, so you don’t even need to know that VUe-Router exists. But for users who need these features, they are all contained within the framework. So Vue’s list of apis may seem like a long one, but the core concepts needed to get started are simple, and users only need to understand the meaning and value of the features.

At present, technical teams of start-ups and small and medium-sized enterprises in the market adopt Vue highly in order to realize efficient development and rapid delivery of projects. Can Vue be used for projects requiring long-term maintenance?

Of course! But the team needs to have good development norms, and the long-term maintainability of the code is essentially a specification issue. The code that one person writes can be understood not only by the same person later, but also by other members of the team, and even by new people who join long after. At this point, flexibility is definitely at odds with long-term maintainability, and for code to be written to be consistent, there need to be constraints. Some people may think there are too few Vue constraints, but there are all of them, depending on whether you need them or not. If you know that a project is going to be a long term project, then consciously choose the long-term maintenance features provided by the framework when you start the project. One is to use a state management scheme such as Vuex – the code of Vuex comes with a certain mandatory specification, it can be written to change the state code to follow the same process. On the other hand, it requires teams to develop rigorous development specifications such as code style, static checking, TypeScript, unit testing, and so on — all of which Vue supports at the tool level through VueCLI. We will further strengthen TypeScript integration in 3.0.

Can you briefly introduce Vue’s current team and operation strategy?

Vue currently has a full-time member besides me, Jiang Haoqun, who is now responsible for the maintenance of our CLI. Other members are scattered around the world and are volunteers, but most of them have full-time jobs that involve dealing with Vue on a daily basis. These members maintain our repository and documentation on GitHub, while others are responsible for the community, such as managing forums, chat rooms, offline gatherings around the world, and so on. In terms of business strategy, there is no strategy, Vue is not a commercial project, it is now driven almost entirely by a spontaneous community, and that is the beauty of open source.

When did Vue begin to operate as an international community?

From the beginning to the end. I think open source knows no borders, so everything works in such a way as to get as many people involved in Vue as possible.

What do you think is the biggest change in Vue from an open source project maintained by individual developers to a brand operated by an international community? Any lessons to share?

The biggest change was in my work as a project manager. Just writing code at the beginning, occasionally have to do is take a few bugs, but now a lot of code to do outside of work, such as thinking about the overall planning of the project, to communicate with community development plan, project status, to communicate with team members to communicate with sponsors sponsorship contract, fly to all over the world to attend the meeting and coordination in the community of potential conflicts of interest, and so on, I’m more of a half-project manager now. It’s a growing process. Running an open source project is not just about code, it’s about people.

What have you found interesting or inspiring about working with Vue’s international team, working with developers from different countries?

In fact, Vue developers around the world have more common language and similarities than differences. After all, everyone is doing the same line and using the same framework.

Vue is the first one of GitHub 2018 front end hot projects, and also the first one of the most popular open source software of 2018 in Open Source China, showing the huge influence of Vue at home and abroad, and the future Vue

What is the development plan?

Vue is positioned to provide a framework for front-end development with low barriers to entry, high efficiency, but at the same time with user growth. The so-called “growing with users” means that when a novice user gets started, Vue tries to make the process as simple and straightforward as possible. Later, when users start to build more complex applications and have more complex requirements, they will find that Vue can still provide good support. In this way, Vue can provide value all the way from novice to advanced developer. Under the premise of this big goal, Vue will continue to improve itself according to the evolution of the Web platform and the JavaScript language itself to ensure that it can always be qualified for this mission.

Domestic big companies have also started to use Vue to develop projects, such as Didi’s open source mobile terminal component library Cub-UI based on Vue. What do you think of the development of Vue in China?

Vue does have a large user group in China, including not only the component libraries of various large factories, but also the solutions to generate various small programs based on Vue, which may be a unique demand of the Chinese market. Having this ability may be crucial for the development of Vue in China in the future.

How do you see the commercialization of open source projects?

The world does not automatically reward maintainers of open source projects. The amount of return depends not only on the value created, but also on how maintainers choose to monetize their projects. Some people may feel uncomfortable when they hear the words open source and realization together, but this is a very real problem. Whether it is open source as a technology needed by the company itself, or as an independent project seeking donations, serious open source that creates real value must have some form of economic interests involved in it, so as to ensure the long-term and stable investment of maintainers. Otherwise, it’s likely to come at the expense of the maintainer’s Life work balance, which I’ve seen many times.

In terms of personal career development, do you prefer technical expertise or transition management?

If the choice was up to me, I would still go the technical route. Nowadays, I have to do anything outside of technology. Sometimes I feel like “I just want to write code quietly”. As for management, I think it is due to the increasing complexity of your projects and the increasing number of team members. I am also constantly learning and growing.

Excellent front-end engineers are all artists. Does your personal experience from undergraduate study of art history to master’s study of art design and technology better confirm this point?

Not necessarily, after all front-end is now a very large category, and doing architecture/toolchains is a very different focus and area of knowledge than doing user-facing components. But in general, the front end is dealing directly with the user, so the most fundamental thing is to have empathy, which is to be able to think from the user’s point of view, understand the user experience and needs, and find a technical solution to achieve those experiences and needs. Learning design can better exercise the ability to think from the perspective of the user, because the artistic creation is multi-dimensional and divergent. In the process of optimizing Vue, this way of thinking really helps me to stand in the perspective of the user and understand the user experience more.

In recent years, the demand for domestic front-end development has been increasing, which can be seen from the open source projects on the code cloud Gitee. Although there is a large influx of people, but not many excellent front-end engineers, many people only stay at the level of cutting pages, for the future growth path is not clear, what experience and suggestions do you have to share?

At present, due to the outbreak of Internet services, the demand for the front end also increases greatly, but at the same time, the work content of some jobs is homogenized. As long as the front end who has mastered the basic skills can do it, then these jobs become highly substitutable labor force. If you study only for the sake of getting a job, your long-term development will not be optimistic. Want to jump out of the plane to the technology itself has enough interest and enthusiasm, and then find a specialization, you especially good at performance optimization, for example, or you write a component of user experience especially good, you can cut the page cut to 100% reduction of stylist gives design effect, is even more concise and elegant, it is ok.

How do you recharge your batteries after work? How do you arrange your work and life? Do you have any hobbies?

Now I spend my spare time with my baby, haha! Every year, I have to go to conferences all over the world. In fact, it is tiring because of the time difference, but it is a change of pace to experience many different countries and cities. Occasionally, I have a little time for myself, mainly reading comics and playing games. I am a typical otaku.

Vue distributions are named after anime like Evangelion (1.0) and Ghost in the Shell (2.0). Have you been watching any new anime lately?

Recently, I watched Gunna Dream and Gunna Last Order from beginning to end because the battle Angel movie is very popular.

What is the biggest gain Vue has brought to you?

Freedom. When you can make a living doing what you love while not being tied down by rules and regulations, that freedom is priceless. It can be said that I typed Vue with the keyboard, and Vue presented me with freedom and true self. Now I clearly understand what I am doing and what KIND of Vue I want. I can follow my inner guidance to develop more new functions of Vue. I can’t even imagine going back to work for a big company.

Gitee was featured in the previous issue of “Cover People”

  • Yukihiro Matsumoto, the father of Ruby: Programmer fun, Presence and Balance
  • From dropping out of school to starting a startup, why do programmers born in the 1990s love to do so much?
  • Why not be a professional and cool programmer?