The Front-End Tooling Survey 2018 - Results

Update 12/09/2019

The results for the 2019 edition of the Front-end Tooling Survey are now available. If you'd like to view them, check them out here.

Update 25/07/2018

Since publishing the initial results, I've updated the survey after receiving 5,461 responses and updated the article and results data to reflect this.

Since launching this year's Front-End Tooling Survey in March, 5,461 front-end developers have taken the time to fill it in. Thanks to all of you who have taken part!

Each year the survey has a pretty straight-forward aim; to shed light on the the tools that front-end developers are using right now in our industry.

It's very easy to take for granted what tools are being used based on your own knowledge and habits. These results help to give an insight into the current trends in front-end tooling, as well as showing how usage is changing over time by looking at the figures from previous surveys.

This year the survey was made up of 24 questions – up from 19 questions in 2016 – covering a wide range of front-end tools and methodologies.

Quick Thanks

This survey would be impossible to run without the support it receives from our affiliates; Wes Bos and Just Eat (my employer).

Wes is renowned for creating awesome learning materials for web developers. Whether you’re just starting out in web development, or an experienced developer looking to level-up your skillset, I'd highly recommend checking out Wes's courses. You'll find links to some of these courses where relevant throughout the results.

The results

So, without further ado, let’s get onto the results! Make yourself comfortable and let’s take a look…

Pre-amble Disclaimer

These results represent a sample of front-end developers working in the industry. Therefore, they shouldn’t be taken as gospel, simply as pointing towards a rough trend.

The responses

As mentioned above, this year's survey received 5,461 responses. When releasing the first set of results in 2016, the survey received 5,254 responses – so that's about a 4% rise in the number of responses.

In terms of where this year's responses may have come from, the link to the survey has been posted on Twitter, Reddit, HackerNews, DesignerNews, Echo.js, SitePoint, LinkedIn and Frontendfront. It was also featured by a number of newsletters such as Responsive Design Weekly, Versioning and FrontEnd Focus, among others.

Where possible, you'll see that I've included the percentage change from the 2016 survey alongside this year's figures.

Question Index

Q1 – General Front-end Experience

As in previous years, the first question is used to find out the amount of front-end experience each respondent has.

The question asked was – Roughly how long have you been working with front-end technologies?

Here are the results:

Answer Number of Votes Percentage 0-1 Year 258 4.72% 1-2 Years 632 11.57% 2-5 Years 1,612 29.52% 5-10 Years 1,457 26.68% 10-15 Years 874 16.00% Over 15 Years 628 11.50%

So looking at the results, 54.18% of respondents have been working with front-end technologies for over 5 years, with just 16.29% saying that they had less than 2 years experience. It's clear from these figures that the majority of respondents in this year's survey have a fairly high level of experience in front-end technologies.

Interestingly, these figures are extremely similar to those seen in the results to the same question in the 2016 survey.

Q2 – CSS Knowledge

The second question looked at how respondents rated their own knowledge of CSS, asking – How do you rate your own knowledge of CSS and its associated tools and methodologies?

Here’s what the responses looked like:

Level Number of Votes Percentage Beginner 80 1.46% Novice (between Beginner and Intermediate) 484 8.86% Intermediate 1,596 29.23% Advanced (between Intermediate and Expert) 2,465 45.14% Expert 836 15.31%

89.7% of respondents stated that their knowledge in CSS is at an intermediate level or above, with most of those (45.14%) rating themselves as advanced.

As with any question regarding knowledge levels, this is very subjective to the person answering the question. One person's idea of what it takes to be an expert in CSS may differ to what another person thinks. Irrespective of this subjectiveness, it's useful to be able to use these knowledge levels to see how it effects the tools that developers are using.

I'll refer back to these results where appropriate, as it's interesting to filter based on these knowledge levels to get more of an insight into certain results.

Q3 – CSS Processor Usage

The first tooling specific question was in relation to CSS processing tools, asking – What is your CSS Processing tool of choice?

In previous years, Sass has been the dominant tool in this area, but how do things look today? The results were as follows:

Preprocessor Number of Votes Percentage % Diff (to 2016) Sass 3,571 65.39% +1.90% No Preprocessor 796 14.58% +0.74% PostCSS 473 8.66% +0.78% Less 356 6.52% -3.70% Stylus 119 2.18% -0.87% Other 146 2.67% +1.22%

The results show that Sass is still the dominant tool in this space, with 65.39% of respondents choosing to use it. This figure is actually up slightly (+1.90%) from the 2016 results, with the split across CSS processing tools holding fairly consistent.

Less usage continued to show a downward trend, with just 6.52% of respondents using it, a fall of 3.7% from the 2016 results.

Q4 – CSS Processor Experience

Following on from the previous question, I asked respondents to indicate their experience levels across CSS processing tools.

Here is how they responded:

Never Heard of Heard of/Read About Used a little Feel Comfortable Using Sass – Standard or SCSS syntax 0.20% (11) -0.39% 8.99% (491) -2.33% 17.95% (980) +0.55% 72.86% (3,979) +2.17% Less 1.19% (65) +0.31% 36.33% (1,984) +5.19% 34.24% (1,870) +0.91% 28.24% (1,542) -6.42% Stylus 22.76% (1,243) -2.12% 60.37% (3,297) +3.58% 10.88% (594) +0.01% 5.99% (327) -1.47% PostCSS 17.43% (952) -5.01% 45.36% (2,477) -0.47% 20.75% (1,133) +2.46% 16.46% (899) +3.02%

As you might have expected following the results from the previous question, Sass is the tool with by far the highest knowledge levels.

72.86% of respondents indicated that they feel comfortable using it, with this figure up slightly (+2.17%) from the 2016 survey. Only 9.19% of respondents replied that they had never used it with just 0.2% of people having never heard of it at all. Combined with the results from Question 3, it's clear that Sass is still the dominant tool when it comes to CSS Processing.

Looking at the rest of these tools, only PostCSS saw a positive gain from the 2016 results, with 16.46% of respondents saying that they feel comfortable using it – up 3.02%. Both Less and Stylus knowledge levels trended down compared with 2016.

Q5 – CSS Frameworks

This next question came as a result of feedback to last year's survey, with a number of people interested in finding out about CSS Framework usage.

The part of these results I was most interested to see was how many developers are using an off-the-shelf solution, in comparison to those who are either choosing not to use a framework or working with something more custom.

So the question asked was – Please indicate which of the following CSS frameworks you use most frequently on your projects (if any).

The results are as follows:

Answer Number of Votes Percentage Bootstrap 1,909 34.96% No Framework 1,798 32.92% Custom Framework 833 15.25% Foundation 215 3.94% Materialize 144 2.64% Bulma 133 2.44% Semantic UI 106 1.94% PureCSS 38 0.70% Other 285 5.22%

By far the most popular CSS framework is Bootstrap, with just over a third of respondents (34.96%) using it.

What's interesting about these results is the number of respondents choosing to use an off-the-shelf CSS framework (51.82%) compared to those who are choosing to either use something custom or use no framework at all (48.17%), which is a fairly even split.

When filtering the responses based on CSS knowledge levels, Bootstrap usage is more prevalent in beginners and novices, with usage rising to 50.89% when looking solely at these respondents. At higher knowledge levels, framework usage drops at each category level, with 36.84% of those with an expert level of CSS not having a preferred CSS framework and Bootstrap usage much lower at 21.65% among these respondents.

This pattern is repeated for custom frameworks with 25.60% of those with expert knowledge in CSS saying that they use a custom framework, while just 6.21% of those with beginner or novice level knowledge saying the same thing.

These figures make sense – as a developer gains more knowledge using CSS, they are more likely to move away from using an off-the-shelf solution, using what they've learned to write CSS in a way that better suits them and their team.

Q6 – CSS Naming Schemes

Next up was CSS Naming Schemes.

This question doesn't ask for detail around a specific naming scheme, instead simply asking – Do you use a CSS naming scheme when writing CSS, such as BEM or SUIT?

Answer Number of Votes Percentage % Diff (to 2016) Yes 2,672 48.93% +3.56% No – I’ve heard of CSS naming schemes but don’t use one 2,137 39.13% +2.26% No – I’ve never heard of CSS naming schemes 652 11.94% -5.82%

The results show that usage and knowledge levels of CSS naming schemes has risen since the 2016 survey, with 48.93% of developers now using one when writing CSS.

Only 11.94% of respondents had never heard of a CSS naming scheme – down from 17.76% in 2016. This figure rose to 21.85% among respondents who rated themselves as at an intermediate level of CSS knowledge or lower.

When looking at the respondents who rated themselves as having an advanced level of CSS knowledge or higher, the usage of CSS naming schemes rose to 59.16%.

Overall, knowledge levels in this area are rising – and as an advocate for their usefulness myself, this is encouraging to see.

Q7 – CSS Linting

In the 2016 survey results, the majority of respondents said that were not using a CSS linting tool. So has this changed 18 months on?

The question asked was – Do you use a tool to lint your CSS?

The results are as follows:

Answer Number of Votes Percentage % Diff (to 2016) Yes 2,700 49.44% +2.87% No – I don’t lint my CSS 2,761 50.56% -2.87%

The split between those choosing to lint their CSS and those opting not to couldn't be much closer, with 49.44% (2,700) of respondents now saying that they do lint their CSS. This shows a 2.87% gain from the results in 2016.

As we saw with CSS naming schemes, those with more advanced knowledge in CSS are more likely to lint their CSS. 56.68% of respondents who rated themselves as having advanced or higher knowledge of CSS also said that they linted their CSS, compared to just 38.38% of those with beginner to intermediate knowledge.

This is another area of CSS tooling that seems to be trending upwards. I'd be very surprised if this didn't continue to rise as the practice of CSS linting becomes as ubiquitous as JavaScript linting has now become in our industry.

Q8 – CSS Tool Experience

The next few questions cover the knowledge and usage levels of a number of different CSS methodologies and helper tools.

Firstly, Question 8 asked for respondents to state their experience with Autoprefixer, Modernizr and Stylelint.

Let's take a look at the results:

Never Heard of Heard of/Read About Used a little Feel Comfortable Using Autoprefixer 17.52% (957) -1.34% 17.10% (934) -0.43% 16.96% (926) +1.14% 48.42% (2,644) +0.63% Modernizr 11.06% (604) +4.11% 27.16% (1,483) +4.03% 34.26% (1,871) -3.50% 27.52% (1,503) -4.65% Stylelint 44.20% (2,414) -10.90% 25.87% (1,413) +1.34% 12.05% (658) +2.06% 17.87% (976) +7.50%

Looking at the results against the 2016 figures, both Stylelint and Autoprefixer knowledge levels have risen, with Modernizer knowledge falling a little.

Stylelint has seen good growth in knowledge levels, with 17.87% of respondents saying that they feel comfortable using it. This figure is up 7.5% from 2016. It does however also have the highest percentage of respondents who have never heard of it (44.20%), although this number has fallen 10.9% from 2016.

Surprisingly, over a third of developers who say they are at an advanced level of CSS or higher have never heard of Stylelint. I'd be very surprised if this figure didn't continue to fall over the coming years.

Autoprefixer knowledge levels are still very high, with 48.42% of respondents comfortable using it. Likewise, although Modernizr knowledge levels have slipped slightly, only 11.06% of respondents have never heard of it, showing how well known it still is.

Q9 – CSS Methodologies and Naming Scheme Experience

Following on from the previous question, respondents were asked to – Please indicate your experience with the following CSS methodologies.

The results were as follows:

Never Heard of Heard of/Read About Used a little Feel Comfortable Using CSS-in-JS 12.31% (672) -15.67% 41.57% (2,270) -2.93% 26.20% (1,431) +10.21% 19.92% (1,088) +8.39% SMACSS 41.13% (2,246) -0.23% 39.06% (2,133) +4.99% 11.72% (640) -2.65% 8.09% (442) -2.57% Object Oriented CSS (OOCSS) 31.99% (1,747) +3.31% 45.07% (2,461) +3.39% 14.03% (766) -3.59% 8.92% (487) -3.09% Atomic Design 33.93% (1,853) -8.04% 37.36% (2,040) +4.01% 16.65% (909) +2.17% 12.07% (659) +1.87% ITCSS 69.73% (3,808) +0.72% 20.93% (1,143) -1.00% 4.05% (221) -0.38% 5.29% (289) +0.66% BEM 16.00% (874) -9.33% 25.84% (1,411) +2.09% 20.00% (1,092) +1.84% 38.16% (2,084) +5.40% SUIT CSS 70.59% (3,855) -0.36% 23.86% (1,303) +0.37% 3.33% (182) -0.46% 2.22% (121) -0.27%

The big mover in CSS methodologies this year is CSS-in-JS, with 19.92% of respondents saying that they feel comfortable using it – up 8.39% from 2016. This rises to 46.12% of respondents when including those who said they have used it a little.

BEM is still the best known CSS methodology and also saw good growth, with 38.16% of respondents saying that they feel comfortable using it – up 5.4% since the last survey.

Almost all other CSS methodologies saw a fall in their knowledge levels – the exception being Atomic Design for which 28.72% of respondents said that they had used it at least a little.

Looking across all methodologies – so that’s of SMACSS, OOCSS, Atomic Design, ITCSS and CSS-in-JS – more than a third (34.9%) of respondents feel comfortable using at least one of these. This rises to 66.49% of respondents if we consider those that said that they have used any one of these methodologies at least a little.

So more people are using one of these CSS methodologies than they were in 2016, with this gain being driven by more developers using CSS-in-JS and Atomic Design.

Q10 – CSS Tool Usage

Rounding off the questions on CSS methodologies and tools, Question 10 asked respondents – Which of these CSS methodologies or tools do you currently use on your projects?

Would these results tally up with the experience levels shown in the previous two questions? Let's take a look.

Tool/Methodology Number of Votes Percentage % Diff (to 2016) Autoprefixer 3,097 56.71% +6.35% BEM 2,376 43.51% +3.56% Modernizr 1,602 29.34% -9.20% CSS-in-JS 1,423 26.06% +10.53% Stylelint 1,244 22.78% +8.56% Atomic Design 831 15.22% +0.85% Object Oriented CSS (OOCSS) 504 9.23% -5.44% SMACSS 363 6.65% -6.22% ITCSS 262 4.80% -0.30% SUIT CSS 82 1.50% -0.80% I don’t use any of these approaches or tools 924 16.92% -6.60%

The results do indeed tally up to the experience levels seen in the previous two questions.

Top in terms of actual usage was Autoprefixer (56.71%), followed by BEM (43.51%) and Modernizr (29.34%). This is actually the same top three as in 2016, but looking at the percentage difference compared with those results you can see that they've changed by +6.35%, +3.56% and -9.20% respectively. These changes match what was seen in questions 8 and 9, with Modernizr usage seemingly trending downwards and Autoprefixer and BEM usage growing.

CSS-in-JS usage has risen +10.53%, with 26.06% of respondents now using it in their projects. Likewise, Stylelint usage has risen +8.56%, with 22.78% of developers now using it.

On the flip-side, usage of other CSS methodologies is down – with the exception being Atomic Design which saw a small rise in usage. OOCSS and SMACSS saw 5.44% and 6.65% falls in usage respectively. With more modern techniques of developing CSS now being written about and promoted, it isn't a huge surprise to see older methodologies usage decline over time.

As you might expect, usage of all these methodologies and tools rises among those respondents with advanced knowledge of CSS.

It's clear from these results which tools and methodologies are on an upwards trajectory in terms of both knowledge levels and usage and it'll be interesting to see how these figures evolve in the future.

Q11 – CSS Feature Usage

The next question was all about the new and shiny.

With so much being written and talked about with respect to the latest CSS features, I thought it would be interesting to find out how many developers had started to put these features into practice and gained experience using them.

Therefore, I asked respondents to – Please indicate your experience with the following CSS features.

Here are the results:

Never Heard of Heard of/Read About Used a little Feel Comfortable Using CSS Grid 1.23% (67) 36.37% (1,986) 43.93% (2,399) 18.48% (1,009) Flexbox 0.68% (37) 5.79% (316) 25.95% (1,417) 67.59% (3,691) CSS Custom Properties 10.13% (553) 44.64% (2,438) 26.20% (1,431) 19.03% (1,039)

It's clear from the results that Flexbox is now understood by the majority of developers, with 67.59% of respondents saying they feel comfortable using it. This figure rises to 93.54% when including the respondents who have at least used it a little.

Somewhat surprisingly, more respondents said that they felt comfortable using CSS Custom Properties (19.03%) than CSS Grid (18.48%), although when looking at how many had used each feature at least a little, CSS Grid came out ahead with 62.41%, compared with 45.23% of respondents saying the same for CSS Custom Properties.

Looking at these figures, it seems a lot of people have dabbled with CSS Grid, but not that many have yet fully got to grips with it. Looking at how developers now feel comfortable developing with flexbox, it's not unreasonable to think that these figures will increase fairly rapidly now that CSS Grid and Custom Properties are so well supported in modern browsers.

Learn CSS Grid Learn CSS Grid Learn all about CSS Grid with Wes Bos in this free video series!

Q12 – JavaScript Knowledge

The second half of the survey was focussed on JavaScript and it's ecosystem of tools.

Firstly, I asked respondents – How do you rate your own knowledge of JavaScript and its associated tools and methodologies?

These were the results:

Knowledge Number of Votes Percentage Beginner 139 2.55% Novice (between Beginner and Intermediate) 596 10.91% Intermediate 1,828 33.47% Advanced (between Intermediate and Expert) 2,028 37.14% Expert 870 15.93%

The split between knowledge levels seen in these results were very similar to those seen in the 2016 results. Similar to CSS, it seems that the vast majority of respondents consider themselves to be at an intermediate level or higher in JavaScript, with over three quarters (86.54%) of respondents rating themselves at this level.

There was a small increase in the number of respondents rating themselves as either at an advanced or expert level when compared to the last survey and subsequently there was a slightly smaller number of respondents at beginner or novice level.

I'll reference these knowledge levels where appropriate throughout the rest of the results.

Q13 – Task Runners

Back in 2016, Gulp was the most widely used task runner, with 43.59% of respondents saying they used the tool. NPM scripts had seen large growth in usage however, so it'll be interesting to see what developers are now using in their workflows.

The question that respondents were asked was – What task runner do you prefer using in your typical project workflow?

Let’s take a look at the results:

Task Runner Number of Votes Percentage % Diff (to 2016) NPM Scripts 2,615 47.89% +22.26% Gulp 1,614 29.56% -14.03% I don’t use a task runner 584 10.69% -0.37% Grunt 316 5.79% -6.12% GUI Application (i.e. Codekit) 57 1.04% -0.86% Make 35 0.64% -0.54% Other (please specify) 240 4.39% -0.34%

Interestingly, usage of NPM scripts has overtaken Gulp by quite some margin, now becoming the most used task runner with 47.89%. This is a huge increase of 22.26% when compared to the 2016 figures.

Gulp is now the second most used tool in this area with 29.56%, falling 14.03% from 2016. While Gulp has seen usage fall, it's important to consider that it's still used by almost a third of respondents, which is a considerable amount.

Grunt usage also decreased, with just 5.79% of developers now using it in their workflows. The number of people not using a task runner has stayed pretty consistent (10.69%) with the 2016 figures.

Digging a little deeper into these results reveals that among respondents with advanced to expert level knowledge of JavaScript, NPM script usage rises above the average to 58.70%. However, among those with beginner to intermediate knowledge of JavaScript, Gulp is slightly more popular, with 36.13% of those respondents using it compared to 35.66% using NPM scripts.

So the main trend to be observed here is that it looks like more developers are switching to using NPM scripts to handle their workflow tasks, moving away from tools like Grunt and Gulp. This is especially true when looking at more experienced developers, although NPM Script usage has grown substantially even among beginners. This could be due to better synergy with tools like WebPack and React, or simply because NPM Scripts provide a simple way of running tasks without the overhead of learning an additional tool.

Q14 – Knowledge of JavaScript Libraries and Frameworks

The next three questions look closely at knowledge and usage levels of JavaScript libraries and frameworks.

In 2016, jQuery was still proving to be an extremely popular tool among front-end developers, with React becoming the most popular framework, ahead of Angular.

So how have things changed 18 months on? Have any new tools emerged?

First I asked respondents to indicate their experience with a number of JavaScript libraries and frameworks. Here's how they replied:

Never Heard of Heard of/Read About Used a little Feel Comfortable Using jQuery 0.11% (6) +0.01% 2.31% (126) +1.43% 17.85% (975) +5.54% 79.73% (4,354) -6.98% Lodash 11.70% (639) -4.86% 25.73% (1,405) -1.37% 25.60% (1,398) +6.05% 36.97% (2,019) +0.18% Underscore 12.49% (682) +1.81% 34.92% (1,907) +6.52% 24.41% (1,333) +0.20% 28.18% (1,539) -8.14% React 0.38% (21) -0.57% 31.15% (1,701) -11.58% 28.04% (1,531) -0.15% 40.43% (2,208) +12.30% Angular 1 0.64% (35) -0.14% 47.32% (2,584) +7.35% 30.14% (1,646) -0.54% 21.90% (1,196) -6.67% Angular 2+ 0.70% (38) -0.31% 65.04% (3,552) -8.10% 21.48% (1,173) +1.17% 12.78% (698) +7.24% Vue.js 1.03% (56) -14.67% 59.04% (3,224) -6.97% 22.87% (1,249) +10.06% 17.07% (932) +11.59% Ember 4.45% (243) +0.26% 80.55% (4,399) +2.53% 8.44% (461) -3.19% 6.56% (358) +0.39% Preact 23.60% (1,289) N/A 65.28% (3,565) N/A 6.67% (364) N/A 4.45% (243) N/A Backbone 6.78% (370) +2.23% 67.55% (3,689) +9.12% 16.90% (923) -5.96% 8.77% (479) -5.39% Knockout 20.55% (1,122) +3.61% 64.97% (3,548) -0.79% 10.66% (582) -0.78% 3.83% (209) -2.03% Aurelia 41.42% (2,262) -2.72% 55.04% (3,006) +5.27% 2.40% (131) -0.68% 1.14% (62) -1.87% MeteorJS 15.38% (840) +4.80% 73.36% (4,006) -1.94% 9.28% (507) -2.10% 1.98% (108) -0.76% Polymer 17.96% (981) +3.44% 70.90% (3,872) -1.10% 9.49% (518) -1.95% 1.65% (90) -0.39%

Looking broadly over these results, the most notable changes can be seen in the number of respondents that say they feel comfortable using jQuery (79.73%), React (40.43%), Vue.js (17.07%) and Angular 2+ (12.78%).

Although jQuery still has the highest number of developers that feel comfortable using it, this number has fallen 6.98% when compared to the 2016 results.

On the flip-side, React has gained 12.30% in this category, making it the framework that the most respondents said that they feel comfortable using. It also seems that Vue.js has gained a lot of traction with developers, with 17.07% of respondents saying that they feel comfortable using it, up 11.59% from the 2016 results.

Angular 2+ knowledge levels have risen, but slightly less in comparison to React and Vue.js.

In terms of JS utility libraries, more respondents said that they felt comfortable using Lodash (36.97%) than Underscore (28.18%).

Looking at knowledge levels across all the JavaScript MV* frameworks – so everything in the list except jQuery, Underscore and Lodash – 70.5% of respondents said that they felt comfortable using at least one of these frameworks. That’s up almost 9% (from 61.71%) who said the same in the 2016 survey, and up 20% since 2015.

These figures really show how important it's become to know at least one JavaScript framework in modern front-end development.

Q15 – Which JavaScript libraries and/or frameworks do you currently use most frequently on projects?

The next question asked respondents to indicate whether they actually use any of the libraries and frameworks mentioned in the previous question.

Respondents were invited to select all (or none) of the tools that they used on their projects.

The responses were as follows:

Number of Votes Percentage % Diff (to 2016) jQuery 2,788 51.05% -19.20% React 2,588 47.39% +10.48% Lodash 1,847 33.82% +2.05% Vue.js 1,253 22.94% +13.59% Angular 2+ 771 14.12% +5.65% Angular 1 569 10.42% -14.68% Underscore 428 7.84% -7.08% Ember 328 6.01% -0.04% Preact 163 2.98% N/A Backbone 139 2.55% -3.73% Knockout 100 1.83% -1.58% Polymer 95 1.74% -0.14% MeteorJS 75 1.37% -0.91% Aurelia 61 1.12% -2.17% I don’t use any of these approaches or tools 197 3.61% +0.89%

This year's figures show some fairly big changes.

jQuery usage is still high amongst developers – with 51.05% of respondents using it on their projects – but React is now a very close second, with 47.39%. This is actually a huge swing of over 30% when compared to the 2016 results, with jQuery usage falling 19.20% and React usage growing 10.48%.

Lodash was the third most used tool (33.82%) and, interestingly, Vue.js was the next most used tool, with 22.94% of respondents saying they used it frequently on their projects. This put Vue just ahead of Angular 2+, which received 14.12% of responses.

Angular 1 usage fell by 14.68% from 2016, but this hasn't translated into similar gains for Angular 2+, which only saw growth of 5.65%. Clearly Angular developers have moved onto alternative frameworks rather than simply moving to the newest version of the framework.

Usage of all other frameworks was down from their respective figures in the 2016 results.

Q16 – Which JavaScript library or framework would you regard as essential to you on the majority of your projects?

The next question asks respondents to choose the one library or framework that they consider to be essential to them.

In 2016, jQuery was top of the pile with about a third of developers regarding it as essential to them.

Let's see if that's still the case:

Number of Votes Percentage % Diff (to 2016) React 1,555 28.47% +10.67% None of them are essential – I feel comfortable using native JavaScript on my projects 1,180 21.61% +1.04% jQuery 1,078 19.74% -12.37% Vue.js 558 10.22% +7.21% Angular 2+ 338 6.19% +3.37% Ember 240 4.39% +0.62% Lodash 187 3.42% -1.91% Angular 1 93 1.70% -6.45% Aurelia 33 0.60% -1.72% Polymer 28 0.51% +0.17% Underscore 23 0.42% -0.40% Preact 15 0.27% N/A Backbone 16 0.29% -0.53% MeteorJS 10 0.18% +0.01% Knockout 9 0.16% -0.22% Other (please specify) 98 1.79% +0.19%

There has been a change at the top, with React now the tool that the most respondents say is most essential to them, with 28.47% (1,555). jQuery is now down to third with 19.74% (1,078), just behind the 21.61% (1,180) of respondents that said that no tool is essential to them.

As we saw in the previous question, Vue.js (10.22%) is considered the next most essential JavaScript framework among respondents, ahead of Angular 2+ (6.19%) and Ember (4.39%).

Drilling down using experience levels reveals some interesting insights. When looking at the responses of developers with less than 2 years experience in front-end technologies, these figures are even more pronounced, with 32.81% saying that React is their most essential tool and 12.36% saying the same for Vue.js. Likewise 19.89% chose jQuery as their tool of choice, lower than the average across all experience levels.

Historically, jQuery has been a tool that developers have reached for to help them get started with JavaScript, but looking at these figures more newcomers are choosing to learn a framework instead. This makes sense in a lot of ways, as there are now far more articles being published about how to get started with React and Vue.js than there are relating to jQuery.

It's clear overall that usage levels of jQuery, although still high, are starting to trend down. It'll be interesting to see if Vue.js can continue it's growth and establish itself as a serious contender to React's crown in the future.

For the time being though, React is clearly the JavaScript framework of choice among front-end developers.

Q17 – JavaScript Module Bundlers – Usage

Looking back at 2016, Webpack was the clear leader when it came to JavaScript module bundlers, with 41.23% of respondents using it.

So has anything changed since then, or has this lead continued to grow? The question asked was – Do you use a JavaScript module bundler in your workflow?

Let’s take a look at the results:

Module Bundler Number of Votes Percentage % Diff (to 2016) Webpack 3,587 65.68% +24.45% I don’t use a module bundler 1,122 20.55% -12.11% Browserify 203 3.72% -6.94% RequireJS 139 2.55% -5.20% Rollup 119 2.18% +0.49% Parcel 57 1.04% N/A JSPM 15 0.27% -1.99% Other (please specify) 219 4.01% +0.26%

Webpack has seen further significant gains in usage since 2016, with the majority of respondents (65.68%) now using it – up +24.45% since the last survey.

Usage of Browserify (3.72%) and RequireJS (2.55%) both fell by 6.94% and 5.20% respectively.

Overall usage levels of module bundler's has continued to rise, with 79.45% (4,339) of respondents now using one of these tools, an increase of 12% from 2016's results and up 32% since 2015.

Developers seem to have settled on Webpack in this area of JavaScript tooling. It's clear that unless a new tool were to emerge and gain traction in the future, it's usage levels will likely continue to rise as it becomes more ubiquitous among developers.

Q18 – JavaScript Module Bundlers & Task Runners – Experience

The next question asked respondents about their experience levels across the module bundlers and task managers previously mentioned.

Here's how the results looked:

Never Heard of Heard of/Read About Used a little Feel Comfortable Using Gulp 1.45% (79) 18.99% (1,037) 30.01% (1,639) 49.55% (2,706) NPM Scripts 4.36% (238) 12.74% (696) 26.75% (1,461) 56.14% (3,066) Grunt 2.25% (123) 33.14% (1,810) 36.04% (1,968) 28.57% (1,560) Webpack 2.64% (144) 19.30% (1,054) 31.39% (1,714) 46.68% (2,549) Browserify 9.58% (523) 52.11% (2,846) 26.52% (1,448) 11.79% (644) Parcel 45.32% (2,475) 46.44% (2,536) 5.51% (301) 2.73% (149)

As you might expect from the previous results, the tools that most respondents felt comfortable using were NPM Scripts (56.14%), Gulp (49.55%) and Webpack (46.68%).

It's interesting to see that the percentage of respondents who said that they feel comfortable using Webpack is actually lower than the percentage that said they were using it as their module bundler in the previous question.

This may be down to people using tooling such as Create-React-App, which comes with Webpack preconfigured, meaning that developers don't necessarily need to know it in detail in order to use it on their projects.

Q19 – JavaScript Transpilers

Back in 2016, JavaScript transpilers were a hot new topic. Since then, Babel has gained a lot of traction as transpiling JavaScript has become best practice, enabling developers to write the latest ES features while being able to compile their code back into code that browsers can still understand.

So how has their usage levels changed since the last survey?

The question I asked was – Are you using a tool to transpile your JavaScript from ES6 to ES5? (i.e. Babel)

The results are as follows:

Answer Number of Votes Percentage % Diff (to 2016) Yes 4,192 76.76% +15.00% No – I’ve heard of these tools, but haven’t used one 1,066 19.52% -10.87% No – I’ve never heard of a JavaScript transpiler 203 3.72% -3.63%

As you may have expected, usage of transpilers has continued to grow, with 76.76% of respondents now using one in their workflow, up 15% since the last survey.

As I mentioned in the 2016 results, knowledge of a tool such as Babel is now an essential part of modern JavaScript development. If you haven't taken steps to integrate this into your workflow, I'd recommend that you do so in order to have access to the latest JavaScript features.

Q20 – JavaScript Extension Languages

This question was another new one added on the back of feedback from last year's survey, with a number of people wanting to know about TypeScript and extension language usage.

TypeScript, and more recently Flow, have been gaining more momentum due to their usefulness in bringing static typing to JavaScript.

The question asked was – Please indicate your experience with the following extensions of JavaScript

Here are the results:

Never Heard of Heard of/Read About Used a little Feel Comfortable Using TypeScript 2.23% (122) 48.05% (2,624) 27.83% (1,520) 21.88% (1,195) Flow 33.91% (1,852) 50.47% (2,756) 10.95% (598) 4.67% (255) Elm 29.32% (1,601) 64.40% (3,517) 5.07% (277) 1.21% (66) ClojureScript 33.55% (1,832) 63.60% (3,473) 2.38% (130) 0.48% (26)

Looking at the results, TypeScript is the tool that the most respondents felt comfortable using, with 21.88%. This is compared to just 4.67% saying the same in relation to Flow – a figure I thought would be higher.

Just under half of respondents (49.71%) said that they had used TypeScript at least a little.

This appears to be an area of JavaScript that is gaining more traction currently so it'll be interesting to see if these tools gain more usage in the coming years.

Q21 – JavaScript Linting

JavaScript linting tools are now considered a part of most developers toolkit's, with over 76% of respondents back in 2016 using one.

ESLint was the most popular tool back then, but is this still the case now?

I asked – Which tool do you use to lint your JavaScript? (if any)

Let's look at the results:

Tool Number of Votes Percentage % Diff (to 2016) ESLint 3,314 60.68% +20.27% I don’t use a JavaScript linter 841 15.40% -7.99% TSLint 555 10.16% N/A JSLint 393 7.20% -11.68% JSHint 217 3.97% -9.87% StandardJS 87 1.59% N/A Other (please specify) 54 0.99% -2.04%

ESLint usage has grown further since the last survey, with 60.68% of respondents now using it. The next popular linter was TSLint with 10.16% of respondents using it.

Overall, the percentage of respondents using a JS linter went up by 8% to 84.6%.

Like module bundling, it seems that this area of tooling has settled a little and that ESLint is now considered the tool of choice for the majority of developers.

Q22 – JavaScript Testing

JavaScript testing has seen steady gains since the first survey in 2015, with 52.07% of respondents saying that they used a tool to test their JavaScript back in 2016.

However, there wasn't a clear leader among the tools available. So is this still the case?

The question I asked was – Which tool do you use to test your JavaScript? (if any)

Here are the results:

Tool Number of Votes Percentage % Diff (to 2016) I don’t use a tool to test my JS 2,382 43.62% -4.32% Jest 1,203 22.03% +18.60% Mocha 762 13.95% -8.39% Jasmine 598 10.95% -5.97% QUnit 228 4.18% -0.03% Enzyme 97 1.78% N/A Ava 62 1.14% -0.53% Tape 50 0.92% -0.55% Other (please specify) 79 1.45% -0.57%

Jest has become the most popular testing tool, with 22.03% of respondents saying that they use it. Amazingly, this is up 18.60% from 2016 – a pretty huge leap. It seems Jest has really struck a chord in the community and provided something different to what was available before.

Mocha and Jasmine usage has slipped as a result, with 13.95% and 10.95% usage respectively.

Encouragingly, the percentage of developers using any tool to test their JS has risen to 56.38% – up 4.31% from the 2016 results.

It's great to see more developers using tools to help them test their JavaScript as these figures continue to grow.

Q23 – JavaScript Package Managers

The next question was born out of my own desire to find out whether more developers were using NPM or Yarn.

Was Yarn just a flash in the pan, or has it actually seen considerable stickiness in usage among developers.

Therefore, I asked – Which JavaScript package manager do you primarily use in your workflow?

This is how people responded:

Answer Number of Votes Percentage NPM 3,462 63.39% Yarn 1,646 30.14% Don’t use 313 5.73% Other 40 0.73%

NPM is clearly still the leading package manager, with 63.39% of respondents using it. Almost a third of respondents (30.14%) are using Yarn, showing that there has been a reasonable shift by some developers not content with NPM.

It'll be interesting to see how these figures change in future and if NPM gains back these developers or if Yarn usage grows.

The final question of this year's survey looked at knowledge levels across package managers and other various tools that didn't quite fit into any of the categories that had been asked about previously.

Respondents were asked to – Please indicate your experience with the following front-end tools.

Here is how people responded:

Never Heard of Heard of/Read About Used a little Feel Comfortable Using NPM 0.90% (49) -0.97% 2.53% (138) -1.62% 12.18% (665) -2.21% 84.40% (4,609) +4.80% Yarn 6.34% (346) -15.99% 26.92% (1,470) -23.31% 21.17% (1,156) +7.16% 45.58% (2,489) +32.14% Bower 4.50% (246) +1.80% 31.02% (1,694) +9.32% 36.93% (2,017) +3.49% 27.54% (1,504) -14.62% Babel 3.88% (212) -3.58% 21.55% (1,177) -8.07% 29.99% (1,638) +5.95% 44.57% (2,434) +5.69% Prettier 31.53% (1,722) N/A 29.21% (1,595) N/A 15.86% (866) N/A 23.40% (1,278) N/A Yeoman 19.81% (1,082) +7.29% 41.84% (2,285) +0.6% 29.26% (1,598) -3.57% 9.08% (496) -4.32%

The biggest change from the 2016 results saw the number of respondents who feel comfortable using Yarn grow to 45.58%, a rise of +32.14%. This figure is still some way below those that said the same about NPM (84.40%), most likely because developers who know Yarn will also implicitly know NPM, but not necessarily vice-versa.

Babel experience grew slightly with 44.57% of respondents feeling comfortable using it, up +5.69%, while Bower and Yeoman knowledge levels have dropped slightly. In the case of Bower, this is unsurprising given that the project maintainers have now advised using Yarn and Webpack as an alternative.

Prettier – a fairly new tool aimed at providing opinionated code formatting – knowledge levels came in strong, with 23.4% of respondents feeling comfortable using it. It'll be interesting to see if this tool (or similar alternatives) continue to grow in the future.

Summary

So some very interesting results, especially looking at the figures relating to JavaScript libraries and frameworks!

React is now the library or framework that the most respondents said was essential to them on their projects. jQuery usage looks like it is starting to fall away slightly, although it is still regarded as the second most essential tool in this area. This is especially interesting in terms of less experienced developers, who seem to be picking up a framework as the first tool they use, ahead of jQuery.

Vue.js is now the second most popular framework, leapfrogging Angular in terms of being regarded as essential and seeing a large amount of growth in it's knowledge levels and usage.

Elsewhere in the JavaScript landscape, Webpack has consolidated it's position as the most popular module bundler, with ESLint doing the same in the JavaScript linting category. Jest has also become the most popular JavaScript testing tool, it's usage growing a huge amount since the end of 2016.

Looking at CSS tooling, Sass and Bootstrap sit top of the pile when it comes to CSS processors and CSS frameworks.

CSS-in-JS knowledge and usage levels have continued to grow, with BEM and Autoprefixer knowledge levels also seeing rises in their usage. On the flip-side, Modernizr usage appears to be falling along with some of the older CSS methodologies such as SMACSS and OOCSS.

Looking at CSS feature usage, flexbox knowledge levels are now extremely high with CSS Grid knowledge levels also looking promising among respondents. This is encouraging to see given the amount of effort the development community has put in to communicating the benefits of these features.

Looking across all of our front-end tools, it's clear that certain areas seem to have matured with one clear tool now becoming the most popular. This can be seen with Sass, Webpack and ESLint which are all very dominant in their respective areas of expertise. It'll be very interesting to see if this happens across more areas of our tooling over time.

Thanks again to everyone who has taken part – as I mentioned at the top, the survey will be open for a couple more weeks so if you haven't taken part yet, please take the time to fill it in.

If anyone has any questions about any of the results, message me on Twitter and I’ll do my best to help.

Also, if you'd like to receive emails about next year's survey when it launches, feel free to sign up below.

Article posted on the 9th May 2018