Monday, September 23, 2019

A few months back we ran a small survey to better understand the problems JavaScript developers face. More precisely, we looked for problems that could be fixed automatically, or with very little developer intervention, in the near future. The survey is still open so, if you have not completed it yet, give it a go — we left it open as opinions on code problems probably change slower than political ones 🙂 .

We are thinking of running the survey periodically, maybe once every 6 months. Feedback on questions to ask, or anything else, is very welcome.

We advertised the survey on r/javascript, Hacker News, and LinkedIn. We received a handful (77) of responses. Many of the questions are in-depth, some even contain code, so only about half of the respondents answered most questions. The demographic mix is good: 85% programming for more than 3 years, and over half programming for more than 10 years.

These are the results of the first part of the survey, which asked about difficult code upgrade and migration problems:

Survey Results, Part I

We will follow up with a Part II which will show the results for the more in-depth code questions.

Survey Highlights

We asked how useful various automatic program transformations would be. These are some of the highlights of the results.

Three quarters of respondents want semantic diff/merge

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/28811676-7500-4bbf-899d-33f7ebb34e8e/Screen_Shot_2019-09-20_at_9.24.20_AM.png

A file diff/merge that understands the underlying code and resolves most conflicts automatically. E.g., if on the same line one branch renames a variable while the other adds an argument to a method call, the smart merge applies both changes correctly.

Code duplication is still a large issue

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/aadcc73f-007d-4107-9730-0a6a12f2a1b9/Screen_Shot_2019-09-20_at_9.27.14_AM.png

Analyzes code and proposes concrete code changes for removing duplicates e.g., by extracting methods, creating superclasses, etc.

Upgrading to newer versions of JS, and JS frameworks

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/a4315733-f440-4118-afe0-d3d9b85f19f9/Screen_Shot_2019-09-20_at_9.31.44_AM.png

jQuery migration to React and Vue.js

Many people want a migration from jQuery to Vue.js. Such a migration would be very tricky considering the lack of semantic information in jQuery. Still, it is good food for thought.