Eking Out New Tools
Have you read this article that pokes fun at our infatuation with tools? I just did, and I encourage you to read it too.
How it feels to learn JavaScript in 2016
Frankly, I loved this article - not only does it make fun at the massive efforts we take with out tooling, it also nails down how developers keep yacking on about how big their toolset is.
I, for one think this is ridiculous.
If you’ve tried to find a blog or tutorial on the web describe a solution in vanilla JavaScript it’s seldom that it won’t throw a tool at the problem. Having said that, just as each tool adds complexity to our development environment, each additional tool we mention when teaching someone about how to build for the web introduces complexity to the learning environment.
It’s ok to teach new tools that may be helpful. But when we do so, we need to be careful to present why these tools may be helpful as well as when they may not be. We need to be meticulous to separate the underlying issue from the tool itself, so that the two do not become conflated. Let people learn the core concepts first, then they can make a determination themselves as to the necessity of the tool.
I’ve said it before, but the most valuable development skill to develop is not to learn the hottest new framework or tool with Gulp, Babel or Webpack. The most valuable thing you can do is take the time to learn the core technologies of the web: the core stack, HTML, CSS and JavaScript.
When I think about it, I strongly feel that the ecosystem and the web development community as a whole is the problem. As it stands, the klout, status and publicity we receive for using these tools aren’t the best measure for our success — this is clearly not because they don’t have any advantages, but because we forget about their disadvantages: not being clearly better than the tools they replace (except in the eyes of their fanboys), being very hard to learn.
According to that status and honor, and making new tools the end and bee all of modern web development, are decisions that we have taken as a community which informs the way the ecosystem works. Indeed, these decisions came up quickly, and there probably was no time at which we consciously decided that use of new tools was the pinnacle of web development. Still, that doesn’t absolve us from making the same mistakes today.
On the other hand, if a complex set-up with 9 shiny new libraries and frameworks and a bunch of other tools satisfies you as a web developer but kills your performance, you KNOW you’re doing it wrong. If serving your users needs requires you to use a different set of tools than the ones you’d really like to, DAMN WELL set your personal preferences aside.
It’s about the users needs over the developers, especially not for an ego lifting factor. Somehow, I wish there was some way to slow down the pace of web development - even for a year would work so that everyone could get caught up with what we’ve been missing by replacing them with just tool after tool after tool.