In advance of the results of the 2017 state of JavaScript survey, our panel of experts reviewed the evolution of JavaScript over the past year

One of the highlights of last year’s state of JavaScript report was that we assembled a panel of experts to conduct an in-depth analysis of the findings.

This year, we decided to take a slightly different approach: let the data speak for itself.

But I still wanted to know what our previous panelists (and two new special guests) thought, so I reached out to them and asked them questions about JavaScript over the past year.

Meet with panelists

  • Michael Shilman: Testing
  • Jennifer Wong: Build Tools
  • Tom Coleman: State Management
  • Michael Rambeau: Full-Stack Frameworks
  • Guest #1: Wes Bos
  • Special Guest #2: Raphael Benitte

Think back to what you wrote last year, and where do you see this particular field going

Michael Shilman

Last year’s survey reported that Jest’s NPM downloads had exploded and surpassed Jasmine’s.

Jest supports Snapshot testing, and I’ve seen many people use Snapshot testing as a basic input/output unit test of choice. This is more popular with Storyshots and the UI sector with an entire ecosystem of Tools like Loki, Percy, Screener and diagnostics.

Jennifer Wong

Last year’s survey also predicted some trends for 2017. With the popularity of new things, Webpack’s growth is unstoppable. Yarn was not included in the survey last year, but its influence has grown since it was first released in September. I am curious to see what spark Yarn and NPM can create.

Yarn

Tom Coleman

I’m not sure if a serious competitor to Redux has emerged yet, but perhaps there is a trend in the community that founder Dan Abramov says: “Not every application needs Redux, and in many cases using Redux creates more problems than it solves.”

With the increasing use of server data management tools (GraphQL in particular) (see Apollo and Relay Modern), the need for sophisticated client-side data tools is likely to diminish. It will be interesting to see how these tools evolve towards local data support.


Did you use any new JavaScript tools/libraries/frameworks etc. in 2017?

Michael Shilman

One of the most useful tools I’ve found in the testing world this year is Cypress, which is a great choice for end-to-end testing in OSS/ commerce. Although it’s not perfect yet.

Also, I’m maintaining Storybook, the most popular UI development tool for React, React Native, and Vue.

Jennifer Wong

We are converting most of the front-end code to use React, Redux, Webpack, and Yarn. It’s an interesting and complicated transition, but it’s going to make some things easier down the road. This is partly due to the creation of shared design systems and component libraries.

Tom Coleman

Prettier! I can’t write code without this tool. I’ve been using Jest for a long time and it works really well. Storybooks, too, are being used more and more (and starting to help with maintenance).

Prettier

In addition, I have been developing a Storybook visual regression testing tool called Chromatic. I’ve been really pleased to see companies (including my own) using this tool for front-end testing.

Michael Rambeau

My favorite tool I discovered in 2017 was Prettier. It saves me a lot of time writing code without worrying about “style”.

I don’t care about tabs and clean code, just press Ctrl/S in the IDE and everything is formatted! In addition, it reduces conflicts when collaborating with other team members on the same code base.

Wes Bos

All kinds of things! Date-fns made me give up using moment.js. Next. Js is becoming increasingly important for building server-side rendered React applications. I’m also learning how to use Apollo well with GraphQL.

Raphaël Benitte

Working on several open source projects at the same time, as well as balancing the workload, it is important to increase the degree of project automation. Prettier, ESLint, Jest, validation-commit-msg, and Lint-staged are really useful here.

I also built a data visualization library called Nivo for React.

Finally, with native Node.js support for Async/Await getting better and better, I tried Koa. While its ecosystem is narrower than Express’s, I found it easy to get started with, and it doesn’t feel strange if you’re familiar with Express.


If someone wanted to learn JavaScript from scratch, what three technologies would you recommend they focus on?

Michael Shilman

  • React for UI.
  • Webpack for build.
  • Apollo for networking.

Jennifer Wong

Any framework, any build tool, and Node. Many concepts translate between frameworks and build tools, so if you study one carefully, it will help you understand the others. If I had to pick one framework and build tool, I’d pick React and Webpack, because they’re trending, and they’re trending well in the industry.

Tom Coleman

React, of course, and while other front-end related things are interesting, the React ecosystem is quite large and well-established. It’s a skill you have to master.

GraphQL, I think most experienced front-end developers realize that GraphQL can solve a wide range of problems and is comfortable to use.

GraphQL

Storybook, I think building its state from components is the future of application development, and Storybook does just that.

Michael Rambeau

  • Front end: React
  • Back-end part: Express
  • Front and rear end test part: Jest

Wes Bos

If you are still in the learning stage, you need to keep your interest in the language alive with a small sense of accomplishment. So I’ll just cover the basics, learn the DOM API, learn Async and Await, and learn new visual apis like web animation, etc.

Raphaël Benitte

  • If you’re a JavaScript geek, start with the basics, and ES6 is now part of the basics.
  • React for building UIs, of course
  • GraphQL is maturing and is now used by Facebook, GitHub, Twitter, and many other big companies…

What are your biggest pain points in JavaScript right now

Michael Shilman

Best practices and how to choose csS-in-JS libraries. There are a lot of good choices, but it still feels fragmented, and there are a lot of people doing CSS-in-CSS now, so there are a lot of pain points.

Jennifer Wong

Constant change. When I learn a new technique, we are moving on to the next. Also, stop stealing my CSS, JavaScript! The front end of this piece of technology is changing with each passing day, learn this and have a new jump out. Hey JavaScript you don’t want to take my CSS job, right?

Tom Coleman

Webpack. Great and powerful tools fall further and further down the road under the misconception that more configuration is more convenience.

It can be very difficult to avoid learning complex JS applications, but usually you don’t have to worry too much about the minutiae. I still want Meteor to regain its crown as the best way to build modern JS applications.

Michael Rambeau

There is a lack of standards, and many aspects need to be considered when choosing a technology stack before starting a new project. But the situation is gradually improving.

Wes Bos

Checking & checking. For & & checking. The for the nested && checking. The for. Nested. Properties. I know there are some useful features here, but it looks like we might be using this language soon.

Raphaël Benitte

There are too many tools… Choosing the right tool is difficult, and we have to be careful because trends change so quickly in the JS ecosystem.


What do you most expect to see in the JavaScript ecosystem in 2018?

Michael Shilman

Wish list (I don’t know if these will happen in 2018) :

  • GraphQL is as convenient for data synchronization as Meteor.
  • React Native’s universal (Web/mobile) stability has been improved.
  • Cypress or other end-to-end testing tools appear.

Jennifer Wong

Stability. I do the math, the JavaScript stack and JavaScript community will calm down for a while, and we’ll enter a new phase of low churn.

Tom Coleman

It’s the end of Babel! I love Babel, but since The release of Node 8, Babel has been totally out of my mind. It’s amazing to be working with Interpreter again.

Obviously, the ES standard will continue to evolve, but with many of the pain points of JavaScript modules and async/await being resolved, and new versions of JS becoming more integrated with Node and all modern browsers, many projects will do very well in a short time.

Michael Rambeau

I’d love to see how GraphQL evolves. Will it become standard when new apis are released?

Wes Bos

Now that Node is stable and all browsers have Async and Await, I expect native Promises to become more common in many frameworks, toollibraries, and the code you write every day.

Raphaël Benitte

Most languages have a dedicated/preferred build tool (for example, Maven for Java). Although there are many options in JavaScript, these solutions tend to be dedicated to the front end. I would like to see NPM (or Yarn) add support for basic features like documentation, auto-completion, script dependencies, etc. Otherwise, I’ll probably stick with GNU Make.

While the issue is controversial, we’ve already seen interest in TypeScript (or Flow). Node.js and browsers have definitely sped things up, but if you want static typing, you still have to add a compiler translation layer to it. What about natively statically typed Javascript? You can find a discussion of this here.


conclusion

React is a smart choice, Prettier is a great tool, the JavaScript ecosystem is still too complex…

That’s exactly what we were trying to find out when we did this survey.

We will publish the report on our website soon. Probably in the week after December 12th.

We’re going to have a live + Q&A session, so you can ask any questions you want there – or just check it out. We may even have a mystery guest… 🙂

If you want to know when the event will start and what the result will be, you can leave your Email here and we will inform you.

  • A Look Back at the State of JavaScript in 2017
  • Originally written by Sacha Greif
  • The Nuggets translation Project
  • Translator: LeviDing
  • Proofreader: Yanyixin, github.com/yanyixin

Leave your thoughts and feelings in the comments!