DEV Community

Code[ish]

85. The New Definition of Frontend Development

Charlie Gleason is a designer and frontend developer at Heroku and Salesforce. He's invited Ben Vinegar, an experienced frontend developer and now manager at Sentry, to share his opinions on what frontend development means today. Way back in 2010, Ben understood that JavaScript, which wasn't taken all that seriously, had the potential to take a more significant part of the web development experience. At the time, Firebug had just been introduced, exposing developers to a debugging experience in the browser. From there, more JavaScript tools and frameworks began to proliferate. Just as Rails popularized the idea of an MVC, so too did Backbone, as well as introduce the concept of single page apps, leading to Angular, Ember, and eventually, React.

For many people involved in (and observing) the JavaScript community, the pace of change induced a certain amount of uncertainty as to which framework developers should be learning. Ben empathizes with this frustration, but cautions that software development really hasn't changed in the last twenty years. Every time a brand new language or tool comes out that promises to revolutionize the industry, it's better to wait it out a year before even considering putting it into production. Better still, take a step back and ask how this new tool will make your app better for your users. When you approach software development as a way to solve people's problems, you become more pragmatic in your choices, and can work to solve real problems, rather than overoptimize or get distracted.

Ben concludes by observing how designers have become much more technical over the last few years, with tools like Abstract introducing the concept of branches to design files, or the relationship between Figma and Sketch to actual code. Teams are no longer making mock-ups and handing them over to "real programmers" but actually building the components themselves, in reusable and shareable ways. Ultimately, he sees programming drifting more towards the full stack approach: in order to be able to build a good product, you need to understand how to implement features on a server, design it in a user friendly way, and apply JavaScript effectively to communicate with the backend and the browser.

Episode source