Hi Blake, please could you introduce yourself to our readers?
Awesome, thank you for having me. I’m the Tech Lead for the Platform Squad at Attest, and organiser of Vue.js London. I have spent the majority of my career as a Front-end Engineer. At Attest I have begun to swing my focus to platform-related task and objectives.
Is that the main reason you moved across?
I think it was just a natural progression, in the front-end world you have lots of tooling and being able to configure it all is a job in itself. Being able to run a high-tech stack application with all the necessary tooling and configuration can be very daunting – it gets complex very fast. There is lots more to the front-end ecosystem, such as build tools, testing tools, CI/CD integrations and optimisations and more; which over time, familiarity with these tools has allowed me to do some very powerful and unique optimisations to our development workflow. It’s taken many years of experience and evolving my skill set to be able to do it. I’ve learned it’s what I’m good at and love doing; I have found enabling teams with strong architecture, tools and a stable foundation curates a platform that is a pleasure to work with.
I have come to realise that although I have a strong focus on Front End, I often involve myself in more Infa/DevOps tasks. This move to the platform side of Attest’s Engineering team has come around because the front-end ecosystem has naturally become more complex, for good reasons, and as such, there are new challenges that we need to focus on.
Can you explain your connection to Vue.js London?
I decided to do Vue.js London a couple of years ago to give back to the community. I code every day and I wanted to do something that wasn’t just code and gives others opportunities to advance their skills. Running the conference is a unique way to give back to the Vue.js ecosystem in a non-typical way. Vue.js London is a community conference for over 500 attendees and this year we are focusing on the awareness of Vue 3 which is the next evolution of the library and ecosystem.
The content is focused to make sure everyone is aware and prepared for the upcoming changes. We now have 30 experts who come to share their knowledge. With roughly 18 talks, we have just started an awards ceremony to start celebrating the growth of Vue.js and the surrounding ecosystem. We also have an advice lounge for any attendee to be able to communicate, discuss problems and ideas with others and experts.
The main purpose of the conference is to get people together, to network and discuss ideas to help people elevate their own experience and gather knowledge from others. Apart from elevating existing experience, I see conferences as a great learning tool for newcomers to tooling, libraries and frameworks. It allows people to learn in a visual and interactive manner with live talks. Further education and knowledge sharing comes when being able to dive into deep discussions with other attendees, it helps newcomers to understand how to solve their problems with real-life context which often can be missing with resources found on the internet.
When are the changes due to come?
Roughly a year ago we announced it at Vue.js London, however, there was no fixed timeline for it. Most are expecting it around now, but there has been a huge amount of exploration work, which uncovered lots of exciting new possibilities. Instead of setting an unrealistic deadline the core team has communicated the changes through proposals. The proposals (RFCs) are taking a while to get through the door, we are making sure everyone’s voice is heard in the community. Clearly planning and getting feedback on any changes is important to do, this ensures we are building the best things for the users.
Vue 3 has had quite a bit of development, and the code is starting to build up. With the RFCs finalising, the core team should be able to start progressing further. A clearer picture and timeline should become more apparent. At Vue.js London some of the most interesting features available to Vue 3’s core will be featured in the talks, showing that there is a huge progression in finalising the details of the next iteration of Vue.
Why Vue over other options?
I got involved with the Vue community about 3 years ago and at the time it was such a welcoming community, and I still find now that it’s just as welcoming. One of the main reasons I picked to use Vue at the time is because I could get involved and I understand the internals a lot more than other libraries.
I also believe it’s very powerful in what it can offer, it’s a progressive library that you can use where and how you like, in varied amounts. Its progressive nature embodies itself into the learning curve, which allows you to learn and implement at your own pace. Having a simple learning curve makes it great to build simple things just like JQuery. Its unique and powerful feature is its reactivity system, it makes it simple to do quite complex data manipulations in a performant way. I found that at the time React and others were quite cumbersome to understand, whereas for me Vue simplifies it, so it’s a good stepping stone to building complex applications. Vue has some cool features like its template syntax; not everyone agrees with this because they believe it adds an extra learning curve.
However, at the same time, some people find that overall it simplifies the complexity of components and the surrounding application logic. You can do lots of post optimisations when compiling the templates, which you don’t get with JSX and render functions. Vue.js comes with lots of added benefits and power out of the box, as illustrated by the template DSL.
How does Vue compare to other frameworks?
React and Vue come at similar levels, they share a common philosophy and outset internals. They both are powered by the Virtual DOM, provide a reactivity system, component abstraction techniques and more. Although they share a similar base they utilise the above in different ways to make each solution unique. Vue has a few unique features like single-file components, template syntax that make it unique.
In my opinion, React is very good if you want to be heavily integrated into the JS community. Vue has its own set of tooling, a nice ecosystem of tools to provide common functionality required for building web applications; Vue-router and Vue-x. Although Vue does provide teams with sensible tooling out of the box there are unique problems that comes with working with Vue. Such as single file components don’t always work with external tools nicely, such as TypeScript. That said these issues are being looked at, and the upcoming Vue 3 should definitely help us create a more mature core. That will allow Vue + TypeScript to become much closer.
The main comparisons with Vue and React can be seen when looking at how they work at a lower level. Vue and React’s reactivity systems work in different ways, and can be leveraged in different ways. React allows you to do many manual optimisation techniques, however, Vue can make clever optimisations out of the box, especially when combined with Vue templates. In my opinion, over the last year React has progressed slightly faster than Vue, providing cool functionalities such as the React Hooks API. Despite React moving at a faster pace, Vue 3 should put all functionality at a parallel level, often with improvements.
How do you see both React and Vue evolving in the next few years?
React and Vue have an open model of trying to improve how we work with the web. I foresee that there will be many advantages coming to the web learned from these Libraries. Such as the native Proxy API, Vue 3 will leverage this API heavily, and as such improvements to these APIs may happen. Many libraries including Vue and React have pushed the industry forward, and created common grounds of tooling. I believe that Vue and React will inherently last a long time and due to their scoped focus adapt to changes that come to the web. The web moves fast so it would be hard to say where React and Vue will be in say 10 years, but I can certainly see them being here for the next 5, helping shape the future of the web.
If these push forward do you think the likes of Angular and jQuery will die?
I think they will still have a purpose, but I think Vue and React will take the leap forward and become the go-to libraries of choice. However this is my subjective view, and things change quickly. I’m very excited for Vue.js 3, I think the internal changes to the reactivity system, by using native proxies, will provide an extremely powerful core. The new reactivity system could be used in many more ways. Not only that there is the new Composition API coming to Vue that looks very promising that takes much inspiration from the React Hook API, however removing many of the drawbacks.
Vue 3 looks to have a much more open architecture, allowing core portions to be swapped out in a plug and play manner. Which could allow things such as using custom schedulers, renderers and more. This could pave the way for more collaboration with React and other tools, allowing Vue to move forward at a faster pace and be extended to more usages.
What advice would you give developers looking to get involved with Vue?
It may sound like an obvious answer, but Vue’s strong point is the documentation, and it’s known in the web community to be great. It’s not boring and it is easy to understand. You can really learn everything about the internals, and enough to build complex applications. It’s packed with knowledge from teaching you the simplicity of templates and why they exist, the internals on how Vue works, component composition and lots more. The docs not only teach you Vue but provide many resources around I have found that going to conferences is a really great way to advance your knowledge. It gives you the unique opportunity to learn from others in similar positions as yourself, which gives you real- world context how the tools you want to learn or use can be applied to your situation. However, they obviously cost money, if you have the opportunity to attend do so, and definitely explain to your employers the benefits of your attendance to see if they will be able to help cover the costs.
What qualities do you look for in a strong Engineer?
That’s a good question. I think there is an abundance of tooling, being able to understand the tooling you work with is critical to enhance your offering as an Engineer. Often I find that tooling such as Webpack are not being utilised to its fullest extent. Taking time to understand the surrounding tooling that accompanies your application and build pipelines will not only improve the application you build, but allow you to know how it works. It is very valuable and the skills and knowledge are hugely transferable between teams.
I have also found that understanding these sort of tools and their features helps you understand how the web works, understanding how the platform you build works means you can be a much more proficient developer. As a Front-end Engineer, I have come to appreciate engineers who consider accessibility as a priority. It’s often very easy to achieve a much more accessible site, and those engineers who put time into making things accessible have a great ethos and put their users first.
Furthermore, there are many qualities that I appreciate and look for in a fellow Engineer, some of them include building for and with everyone; valuing code readability helps make later optimisations but also makes it easy for others to understand the intentions of the code written. Complexity in code can’t always be avoided but ensuring you have made it easy for someone else or your future self to work on is hugely beneficial and time-saving. Transparency; being open and communicating. It can be hard to communicate effectively, and being open and honest is a trait I greatly desire from my colleagues. It creates a much more engaging team dynamic and encourages a healthy feedback loop.
Is it better to have a broad knowledge or have more in-depth knowledge in one subject?
First, you need to understand the basics of the language before you delve into frameworks and additional tools. This is one of the most important things to do as an Engineer. It provides you with a strong foundation to extend upon, you can do a lot with the core language features. To be honest it depends. I think a broad knowledge is valuable and very useful to help bootstrap teams and projects, however, it also comes with experience. Having a large base of knowledge is only useful if you can apply it based on experience. Often learned knowledge unused can get forgotten, so unless you are going to apply it on a regular basis then it becomes less valuable. In my opinion, it’s always great to learn and have an understanding of external influences and domain knowledge. As it provides a ground of context to apply to situations to improve code, communication and more.
I would 100% say when you start out as an Engineer, focus on a particular subject area. Strengthen those skills and move outwards, it will help you appreciate and understand the nuances of that subject area. Such as; learn HTML then CSS then JS, understanding the relationships, contracts and details of each of the areas will make you much more proficient as an Engineer.
As a Front-end Developer, is it important to also understand Back-end technologies and frameworks?
Yes, being able to understand the work involved to deliver Back-end tooling will help you communicate for optimisations and help you leverage the given tool in a better way. It also gives you much more context and understanding of concepts. Back-end technologies often leverage many programming concepts that are not immediately obvious in the Front-end world, being able to understand those concepts will help you structure and improve your Front-end code.
I wouldn’t say it’s a must, however, if you do get the opportunity to extend your paths into Back-end you will learn a lot in the process. One of the common occurrences in companies is to work in cross-functional teams to solve problems, being able to communicate and discuss ideas with your team members is hugely rewarding and valuable.
Do you have any predictions for the future of web development?
Is there anything you’re excited for?
Vue 3 is something to definitely look out for, I’m really excited it’s taken a long time to build and get to a polished state. Once it’s released it will make building applications even simpler. I’m also a fan of TypeScript, it’s still relatively new as a tool and I can see it growing to a really powerful toolset. I’m unsure how it will evolve right now but I’m sure there are many interesting things to come with TypeScript.