React vs. Angular vs. Vue vs. Ember

Part 1 of a multi-part series as we work towards revamping Task Console. Read about our methodology and key notes as we decided on the best JavaScript framework to use for a key component of our product.

Supahands
Supa Blog
7 min readSep 20, 2018

--

Problem-solving is at the heart of what makes an employee at Supahands. We never settle for doing things just because “that’s how it has always been done”.

Instead, the team is constantly innovating and figuring out how to execute faster and better.

Just like Supahands Workplace, Task Console was born from that — a sense of urgency to be more efficient and accurate in terms of the work that we do for clients.

But before we dive in to talk about what the latest Task Console will consist of, let’s first zoom out and appreciate what Task Console used to be.

How Task Console Started

2 years ago, when Supahands first started working with businesses instead of individuals, most of the work was conducted over Google Sheets.

It wasn’t the perfect solution but it fulfilled the requirements that we had at the time — a collaborative platform that allowed multiple SupaAgents to work on the same project while a dedicated Business Solutions Consultant manually performs quality checks before sending it back to the client.

Google Sheets worked fine for 50-hour-long projects. But when projects started multiplying in size a year later, we knew that we had to build our own platform.

After all, we had already worked on various types of projects by that point. And we knew the features that we needed it to have.

So, the first iteration of Task Console was launched in 2017 and tested with one of our larger data verification projects at the time. It didn’t look sophisticated but it did the job that needed to be done.

More importantly, it sped our output up by 3 times.

Usage of Task Console was showing more promising results, and we realized its potential as a platform that we could use for larger projects. By this point, Task Console’s data management tool had already been through various projects with different workflows.

So we started focusing on adding more functions like an image annotation tool and more security and quality features for the projects that we execute.

Revamping Begins

As accessibility to the platform grew, we needed to direct more attention to its users. So, we entered 2018 by focusing on revamping a crucial component of Task Console — Launchpad — in order to improve its performance and usability.

Launchpad is a key part of the entire Task Console system as it is used to set up and monitor each project’s infrastructure.

In order to gain different perspectives and find a solution that would work best, Product, Tech and Design involved in the process of deciding which JavaScript framework to use.

Looking for the right framework to use can be tricky. There are so many of them and they each have their own pros and cons.

Since we had a clear idea of what we wanted to achieve, we narrowed our selection down to Angular, Vue, Ember and React.

Microteams were then formed and assigned a framework to research with the key objective in mind. We also had to consider the likely possibility of how difficult it would be to hire people who would already be familiar with the framework that we choose in the end.

Note: Our final decision is not based on which framework we thought reigned supreme above all. It’s something that’s unique to each organization and what they’re aiming to build. But we hope that this guide from our point-of-view gives you an insight into what to choose for your next undertaking.

Angular

Angular was and still is a very popular framework. It was developed and is still maintained by engineers at Google, but we decided to look past the companies behind each framework and focus more on whether or not it would suit our requirements.

Angular’s engineers, Steven Fuin and Igor Minar also announced that there would be Long-Term Support for the framework as they develop it further and introduce new releases.

But with all its features, this also meant that the learning curve for parts of the existing team at Supahands to familiarize themselves with it would be very steep.

This will affect our production time — a situation that was not ideal give the growth trajectory that we were hitting early this year.

The Angular community was also diminishing slowly, despite their efforts to hang on to the top position among other JavaScript frameworks.

This will then slow down the growth of the team’s size as we look for new recruits to the team who were already familiar with it.

Vue

Even though it is relatively small compared to the others on our list, Vue is already catching up with its predecessors. We saw it as the pocket rocket of the lot — small, fast and powerful at the same time.

The fact that massive Chinese companies like Alibaba and Sina Weibo are using it is a testament to how quickly it performs despite its size.

Like Angular, it had good and comprehensive documentation. But, the advantage that Vue had over Angular was that it was also very easy for someone to learn, as long as they knew basic JavaScript and HTML.

Many resources that we came across in our research process thought that Vue lacked the support that we would get from the other larger frameworks simply because it’s not backed by a large organization but it was not a concern for us.

Although we did come across discussions surrounding Vue’s lack of support due to language barriers, it was not something that we realised through our own research.

We found that English is still the main language used by Vue’s community of, despite its origins from Chinese developers.

But compared to the other frameworks, the community is relatively small. This would bring up hiring issues as it meant that finding someone who would be able to pick up Vue would be more difficult. Thus, affecting our plans to scale fast in 2018.

Ember

Ember was designed for large and complex applications with maintainability in mind. Due to its enforced design, it’s capable of handling large amounts of objects, models and data.

Additionally, it is built by highly experienced backend developers who valued convention over configuration, making it a great choice for complex projects.

Although Ember is a full-featured framework that’s extremely robust, it may be too robust for what we needed for Launchpad.

Even though we wanted a lot of improvements to a project’s speed and performance, our requirements were very straightforward.

Despite the documentation that’s available for Ember, it is one of the most difficult frameworks to master. And it’s not a framework that’s popular in the region where we operate — thus making it difficult for us to hire someone with the right amount of experience.

React

React can be credited with improving Facebook’s approach to development. It was revolutionary at the time of its release, making webpages highly dynamic and extremely responsive.

It’s also a framework with an environment that changes so quickly and frequently that developers need to be quick to adapt if they want to keep up.

But because of its popularity among developers, training resources are plenty and it is still easier to learn compared to Ember. This also meant that hiring for a developer familiar with React would be a lot easier as well.

The team was also attracted to React’s flexibility in terms of its architecture and testing and we found that it had the largest JavaScript community support out of the other three frameworks.

Documentation-wise, while React wasn’t our favourite, we still liked it a lot for it was concise and comprehensive enough for any new member of the team to pick it up.

We wanted Task Console to be able to communicate with Workplace seamlessly and be able to handle even larger projects. Task Console needed to be fast and scalable. But it also needed a team to support it that could also operate just as quickly.

With those requirements in mind, we ended up choosing React due to how easy it is to learn, its support and its ability to scale the product as much as we wanted it to.

Coming up next for Task Console

So what’s next for Supahands Task Console? Our workflows for different projects are getting increasingly longer and this needs an architecture that’s just as strong to support them all. So, we look forward to introducing more new features to Task Console very rapidly.

Using Task Console to help us make more data-driven decisions has always been in our sights. With a new robust build, this will become a reality soon.

But we’ll save that reveal for a later time ;)

We’re definitely not saying that React is the best JavaScript framework for everybody — it depends entirely on what your needs are, how you want to achieve it and your team’s capabilities at present and where you foresee it going.

Think we’re missing something from our methodology? Share your thoughts and opinions with us in the comments below. We love a discussion!

✊ Want to join the team at Supahands? Check out our available positions at http://careers.supahands.com/

--

--

Supahands
Supa Blog

Supahands prepares clean and accurate training data for machine learning through the integration of in-house technology with human intelligence.