When to Follow Technology When Not to
Technology evolves at a rapid rate, JavaScript often feels even worse but developers also love the next new thing. Just how do you decide when a technology is worth the time and when to skip it?
GitHub is littered with the husks of failed projects ranging from Frameworks to small plugins and the more accessible the language the more failed projects seem to follow it. It often feels that JavaScript reigns supreme in this field as anyone is able to build any kind of library and push it to npm and boom new JS library is created.
This is one of the best things about JavaScript, it is also one of its biggest failures as it allows for anyone to start anything regardless of what is already available. New exciting ideas come at a rapid rate, but this makes it hard to filter out the noise and figure out what is worthwhile and what is a dead end, the problem is how to tell?
What Problem is it Solving?
It is always important to look at any package with the same question, and that is about what problem is this package solving? Has it been solved before? and finally is this method better?
In this industry everything should be created for a reason, and we don't need to reinvent the wheel so when we come across a problem we have a habit to tackle it ourself; or think we can do it better; or our way addresses the problem from a different angle that isn't considered elsewhere. And it is great to tinker and play around with thinks, it is awesome to test out new ideas but when it comes to coming up with a production ready solution for something we need to look at what is available, see if it does what we want and if it does it is generally better to use it.
Look Before Leaping
When we want to solve a problem the right way and optimise it, generally we need to look at what is available and most cases have been covered before, especially in any tried and tested library/ framework. So the first step is normally to search around a little and look up how this problem has been solved before, there is almost a guarantee that several tickets are already on StackOverflow talking about the exact same problem.
Use the collective knowledge and if needed iterate on it, if it doesn't for-fill you exact niche fork it and edit it to work the way you need it to and then you have created a variant that can be pretty useful and even be given back to the community, as the rule of infinity shows that if you had the issue someone else will probably encounter the same problem and need the same solution.
Take Away
New technologies are awesome and fun and JavaScript is really fast moving and evolving. JavaScript is a great language to pick up something new play with it and try to understand its value. Bigger projects from big organisations will have more of a purpose but even those can be depreciated any minute, RIP Angular 1.x showing you can never know what is next in line for a lot of these technologies. Development is ever evolving this is both awesome and tiring and can be really painful but working in a fast moving industry also allows for a lot of really cool projects and with the tools for creation in everyone's hands we see a lot of quirky and awesome niche ideas created.
JavaScript represents both the best (rapid, exciting, open, quirky) of the industry and the worst (rapid, quirky, flexible, lacks standards) of the industry so it is always important to consider what it is you are trying to solve. Usually the major packages will solve the problem, sometimes they don't but in a lot of those cases a quick search will find the answer on StackOverflow and provide a clean implementation that can be adjusted for your need. But of course in the rare cases your niche doesn't exist then it is time to create it.