One thing is sure, I am a huge JavaScript fan. I’m the kind of fan who just can’t stop dreaming about all the amazing things we can do with JS and who gets (super) excited with each and every announcement of a new JS framework. For a JavaScript developer these past years have felt like a grace period of endless fun and continuous excitement. It’s Christmas every day!
However, either I have aged lately (I’m afraid that’s true anyway…) or something has changed in the way I look at code. In fact, with age, I think that I have started to be more critical with development in general and I look at it less as my favourite private playground and more as a tool that should be used to get somewhere with my client’s products (or mine, come to think of it!) as quickly as possible.
This critical perspective has been accentuated since I’ve been spending more time in a CTO position rather than a developer position. As a CTO you have to make a mind switch in which you’re putting your client’s interest ahead of your own framework or development preferences.
I remember very clearly when I read this awesome tweet (thanks Liran Tal for sharing it):
I laughed hard at first but then I remembered that I too spent a couple of days configuring webpack and Babel… When you’re a young programmer, you consider everything as a learning curve. But in the long run you realize that life is short, that you have many ideas that you would like to bring to life, and that 2 or 3 days are better spent coding rather than configuring your project for the n-th time or trying a new framework for each new project.
I recently had a discussion with a client that has an awesome start-up. He’s completely non technical. His goal is just to add the right features into his product and could not care less about the technology or framework that we were using. On our side the dev team was explaining thoroughly the interest of such and such framework and why we will need to refactor his code to match the latest trends and benefit from the latest new features. The contrast between the two positions was striking: the interest of the client and the focus of the developers were almost diametrically opposed. Watching the discussion I started to wonder: are we truly providing the optimal approach for our customer/product needs, or are we (JavaScript developers) just blindly in love with our favorite technology — and by extension with ourselves?
While exploring all of the amazing possibilities offered by our beautiful language, we should still pay attention to the ratio of our time being spent for features VS framework/ecosystem. I find the cost of decently learning React or Angular pretty high nowadays (and I’m not even speaking of going from Angular 1 to 2). According to some senior developers, it could take you somewhere up to 2 years to really master the main principles and start to use it wisely. Add to that the updates, ES5, ES6, ES7, the tools, the plugins and other package managers and I’d say that half of a developper’s life is going to be consumed to follow-up with the technology…
Great products and software have been written before with far less powerful technology. Let’s focus more on simplicity when possible and on bringing value instead of building over-sophisticated tools: often the simplest way is also the best.
Paul Brie, Head of JS
This article was orignialy published here.