Frontend Frameworks: trending or tried-and-true?
27 de agosto de 2020
Frameworks provide a critical structure in the development of modern web and mobile applications. They are responsible for the uninterrupted operation of these applications by providing and giving users a complete experience. Due to their popularity, a wide array of front-end frameworks are currently available and new ones appear in the market regularly.
Pinpointing the right frontend framework can be tricky. Like many developers, you may be drawn to wildly popular, tried-and-true options. That is why we sat down with Federico Gutiérrez, Full Stack Developer, to review different frameworks and current trends.
Would you say there’s a general misconception about what Frontend developers do?
Yes and I’ve heard many friendly jokes on this subject from people who may not know that Javascript is a thing. It is not just HTML and CSS anymore (I cannot even say it was that way when I started developing). But I don’t mind the friendly jokes about frontends. After all, creating memes is in devs blood and so any role can be mocked in a friendly way.
The only time I do worry about these jokes is when they impact developers who are making about their future and may not have all the information they need. In any role, the more you know about your scope in the context of the entire process, the better. In agile teams, you have to be able to understand how other parts of the process work to be able to parallelize, and if possible, develop other aspects of the application, even if you have a designated role.
Are you following the "trending" frameworks? What do you think about the new and trending frameworks?
I try to stay up to date with all the news, but I mainly follow React, Vue, and Angular. I’ve had a really good experience working with Flutter for mobile so I hope the web support they are working on evolves nicely.
You can see all types of hype on the internet about any framework, you can see this happen as it happens with news or social media. Everybody will have different experiences and opinions on each framework so you just have to know how to filter all the information and get to the point, “what am I really being offered if I shift to new technology?”.
What do you think about the number of "new" frameworks that appear throughout the year?
Seeing new technologies emerge is always a good sign. We have a tendency to expect the framework that we choose to be “the one”, but there is no single perfect solution. Most frameworks offer the same patterns, and newer frameworks try to improve efficiency, add syntactic sugar, or find some other way to improve upon the DRY principle.
Thankfully, software development is a collaborative process and anybody can give it a shot to build their own framework and offer it to anybody else in the same situation. After that, it is just a matter of the developer finding out which one fits best.
When aiming for production, I would recommend making sure the framework is production-ready, has a good development community, and has thorough documentation. These are always good signs that you will be able to get past any issue.
If you need to start a project from scratch and you need to choose a framework, what are your options, why and how easy is it to scale?
For frontend, I always think about using Angular first. It has enough tools and standards to align the team, even if those developers never worked together before. In my case, this is where I have had more experience, and although I like to adapt myself to the team, my in-depth knowledge would accelerate the development.
Angular is based on components, like many modern frameworks, which allow for reusability of these components in a simple way. Services and dependency injection also help improve scalability, abstracting certain layers like network or application state from the components.
I would go for Next.js or Nuxt if the team is more inclined to React or Vue. But it all depends on the project requirements and to what the team commits to. I would accept any other stack as long as the team is comfortable with it and there are technical justifications.
Do you include Node.JS inside the frontend since it uses the same language?
I do not consider NodeJS as frontend at all-- it's Javascript running on a server. It is true that it uses the same language and dependency management and is usually a better solution when working in a Full Stack environment.
I’ve developed in Java, Python, PHP, and JS/TS frameworks and I have no problem switching for each project. If it is a personal project, it depends on whether the objective is learning something new or getting it done ASAP. If it is the latter, I usually go for a typescript stack.
A lot of people don’t take styles and layout in frontend seriously. How important do you find layout skills in frontend?
When talking about application requirements, a frontend developer has to be able to visualize the existing components and how they will interact with each other. I’m not even talking about visual design, but more about the structure of the application. This will enable collaboration with the designer and result in improved look and feel, usability, and technology limitations.
And then there are styles, the way you make the application look just like the design once these pieces are put together. Nowadays you need to make sure that styles are always responsive, and most times accessible. While we can still ask for more, CSS has evolved enough to achieve many things without feeling hacky.
Do you think TS (TypeScript) was a big change in the FrontEnd side?
I do. I’m glad to see that modern frameworks offer this option out of the box. Javascript may be catching up in multiple aspects, but Typescript still offers a bit more.
Typescript allows you to have a strictly typed project and enables OOP features with a clean syntax. With a little extra effort making sure all interfaces are defined, your product will be a lot less prone to untraceable bugs. Not to mention that when types are strictly set, a lot of problems will be fixed before they happen.
How much did frontend change in the last years, PWA, etc?
It's been a few years since web development stopped feeling like it would be replaced by Android and iOS native. There are so many solutions that offer hybrid development, and many companies prefer to reduce development time and maintenance costs.
I am starting to see a wider use of custom elements, allowing multiple frameworks to be used in microapp solutions. I like how PWA takes advantage of service workers to add functionality that users expect on phones, like push notifications and offline mode. It will start spreading now that these apps are accessible through the Google and Apple stores.
What can you say to people that are starting to develop, how can you encourage them to choose Frontend as their role?
I wouldn’t want to influence anyone into frontend since I believe in being cross-functional. That said, I can see how some people, depending on their background, could feel their learning curve is limited by having a visual result of what they develop.
It may be more gratifying for some due to having constant visual feedback on the changes and that could be enough to get them started. Once you are in development you can shift your path as you evolve.
One thing I would suggest in any case is not to stress with all the possible choices. Choose anything that has been proven successful and you will gain generic knowledge on patterns, good practices, and principles that will apply throughout your career.
Federico Guitiérrez is a Full Stack Developer at Sngular. He first started as an Android developer but, as the technology evolved, he also started to learn more about other aspects of software development by working as a backend. Federico then rapidly ended up as a full stack developer. Once he started working at Sngular, he took on multiple projects, working with a wide range of technologies, including React, Angular, Ionic, Laravel, and Spring.