Front End Development | Q&A
with William Ramirez | EQengineered's Senior Technical Consultant
1. What recommendations do you have for enterprise organizations considering a front-end modernization initiative?
I recommend getting very clear on what your goals are.
Is it application performance?
Reducing maintenance costs?
Or, are you changing your tech to unlock a larger pool of qualified developers that can contribute to your application?
Somethings to consider when choosing the tech would be:
Is it too new and unproven?
Is it popular now but losing steam? - Technologies and frameworks that are strong today may not be strong tomorrow.
Is there a thriving community of developers building supportive libraries?
Is there a large pool of skilled developers that want to use this technology?
The next considers would be:
How to incorporate this new tech into your system?
Where would your application benefit most from the new adoption?
Where is the lowest hanging fruit?
2. What do you like and dislike about Angular and React?
Angular is great because it comes with everything you need out of the box. It comes with Typescript, routing and navigation service, forms, testing, animations, and CSS libraries built-in.
The Angular CLI is very helpful too. With one line of code, Angular will whip up a templated service or component, a test for your new feature, and connect it to your app module.
What I don’t like about Angular is that it uses something called templates to formulate your HTML which was created by Angular and it is not as nice as JSX.
React on the other hand is only a view library so It does not come with everything out of the box.
The trade-off to using React is that you still have to choose a bundler, a routing, a CSS, and a state management library to make a proper app. Luckily, there are great options available to pick and choose from that meet those needs and if you want a Framework that uses React for the view layer there is that too. Gatsby and Next.js are great examples that are growing very quickly in popularity.
What I like most about React is that it uses JSX. This puts your HTML in your JS and makes the creation of a view layer quite nice and intuitive. While in Angular you would need a template and a TS file per component, React allows you to create a component with one JSX file. This reduces code volume and simplifies file organization.
That being said, React and Angular are both great for creating apps with component-based architecture that scales nicely.
3. What lessons learned can you share from the challenges you have encountered with front-end technologies like React and Angular?
You will run into problems no matter what front-end tech you use if you are not diligent about managing the complexity of your app. The temptation is to put the blame on the framework, but by simplifying the architecture of your app you can solve most problems. The major contributors to complexity are the handling of state, code volume, and flow of control. Incorporating standardized design patterns and focusing on reducing complexity in these areas will do wonders.
4. What do you envision for front-end technologies in the future, say 5-10 years from now?
JS will still be the de facto language for the frontend. I think that the component-based architecture will still be widely used for building the front end and the redux pattern will still be the most common way of managing the application state.
What is changing is that Jam stack applications are growing in popularity. Jam stands for JavaScript, APIs, and Markup.
The benefits are that you can use Git workflows and modern build tools for cheaper, and easier deployment. You can serve pre-rendered content on a CDN and get all the SEO benefits that were once previously exclusive to static sites while not losing any of the interactive functionality we love with the help of APIs and serverless functions. Gatsby and NEXT.JS are examples of JAM Stack frameworks that growing in popularity.
5. For developers just getting started with their career, what advice would you share?
Get very good with Javascript. JS will allow you to contribute to the front and back end of applications. Keep an eye out for where the industry is going and what frameworks and libraries are trending.