Learning a programming language is just part of becoming a software developer. These days, writing software involves an ecosystem of tools, from the programs that developers use to write their code to the cloud computing services that execute it. Choosing your tools is part of the job.

Front-end developers, i.e., those who write code that runs in your browser, have traditionally had fewer choices than their back-end peers, who write the code that runs on servers. Browsers primarily run the JavaScript programming language, while back-end developers must pick from a dizzying number of programming languages and related tools.

That's changing amid an explosion in tools designed to make life easier for front-end developers. The new tools are a mixed blessing: More choice is good, but tools can fall in and out of favor quickly.

Developers now rely heavily on application frameworks---bundles of reusable parts and an overall structure for building software. In early 2015, the most widely downloaded JavaScript framework was Backbone, according to data gathered by NPM, which makes tools for managing packages of JavaScript code. By the end of that year, it had been passed by Facebook's then-new React library. Now, less than four years later, Backbone has fallen to fifth place, behind newer frameworks like the upstart Vue, which has surged in usage over the past two years, according to data NPM presented last month.

This turbulence creates challenges both for developers and employers. Like many programmers, Joe Previte, a front-end engineer at a consulting firm in Scottsdale, Arizona, tries to keep up with the latest technologies by working on side projects in his spare time. But he often worries that he’s focusing on the wrong things or that he might spread himself too thin. “The goal in any career is to become an expert in that skill,” he says. “Working in JavaScript, having all these new libraries and frameworks come up, we could dive deeply into React, and then switch to something else entirely for the next project and have to spend six months learning that instead of developing deep expertise in one technology.”

It’s also a challenge for employers that need to attract developers and ensure that the tools used to build their software are supported for years to come. "It's like looking into a crystal ball," says Matt Tucker, CEO and cofounder of Koan, which makes team-management software. "You're making bets on what's going to still be around years from now, balancing technical considerations with community considerations."

Why Is It So Complicated?

Jose Aguinaga, the CTO of cryptocurrency company MyBit, captured the disorienting nature of modern JavaScript development in a widely shared 2016 article. In it, he depicted a fictional conversation between a developer who hadn't paid attention to JavaScript in a few years and someone who was up to speed on the latest trends. The less-current developer wants to fetch some data from a server and display it on a web page, and grows increasingly frustrated as his colleague suggests using new-fangled tools with names like Grunt, Gulp, and Broccoli.