Pros and Cons
There is no panacea to web development. If we choose VanillaJS we have complete control and likely a smaller code base overall, but is it as maintainable? If we choose to use popular and stable libraries we get a lot out of the box to jump-start us and help us long-term with maintenance, but at what cost?
The VanillaJS is appealing as you know exactly what you are getting. There is no box of chocolates here Forrest! You want to interact with the DOM, go for it. You want AJAX or promises, code them yourself. No jQuery and no other libraries.
The downside of VanillaJS is that you may be reinventing the wheel at times. You could spend a week (or even a day) writing code that already exists in a stable library. Is that bad? Not necessarily, but you need to decide the value for your time spent writing your code and then the long-term up-keep of it. Do you want to be writing cross browser code, test it in all environments, and keep it updated when something already exists? It might be more performant (yeah I know that’s not a real word, but it sounds cool).
The other side is choosing a library that handles it for you. If you choose a stable library you can save those hours or days (or weeks) of coding and gain a lot of maintainability. But Are you using the library for 1% of its features and thus carrying a ton of baggage with you for features you are not using? That baggage could be in latent bugs or simply in the size of the library (think performance). You definitely need to consider this as you don’t want a massive footprint in memory and size if you are not using 90%+ of it.
What Do We Do?
The picture gets a bit cloudy if you see this as an “either or” situation. But if instead of thrashing one side or the other as a global solution you consider when and where it makes sense to use each, the picture becomes much clearer.
It’s all about value. If you find value in it and can live with the costs, then go for it. This applies to both libraries and VanillaJS. Don’t kid yourself, they both have costs. What we get paid to do is decide how to balance those costs with the project and company needs.
There is nothing wrong with using a stable library. If you can add value to your project by integrating that with some of your own VanillaJS, then go for it. That’s even better! I recommend striking a good balance between the two.