Over the course of the last 2 years I spent so much time figuring out how to use new libraries, tools and most of all frameworks, just to find out one basic thing: “Nope, that doesn’t fit my needs, but there is this other thing I can try out…”
Call me dumb - that is well deserved - but I am just too curious to see what someone else thinks is best for my application to resist. And in JS land there is always someone new around the corner: meteor, ember, riot, angular, knockout, knockback, backbone, elm (I do like this one… <3), cycle.js, redux, purescript, typescript, react, vue, webpack, gulp, grunt, babel, brunch, browserify.
By the way: I actually used all those in one way or the other in real projects…
After a while I felt like in Dantes “Inferno” at the gates of hell: “Abandon all hope — Ye Who Enter Here”.
Don’t get me wrong: some of those libraries and frameworks are awesome and absolutely delightful to work with. It is the attitude on when and how to use them that puts me off.
Just to make this point I typed into the search engine
jquery plugins and the fourth result was “51 Amazing jQuery Plugins That You Should Start Using Right Now…”.
Well… I don’t kn… what the heck?
Really: why on earth would such an article even exist? This is outrageous. Or does someone write these articles just to prove my point?
What all of this provokes is something I call the stupi-dev-ty. Developing that way might (or might not) be “fast”, “productive” and “good for business” but it also makes you dumb and lazy.
You don’t ask yourself the questions you should ask as a developer, which would be: “Given a programming language, how can I handle this task with datastructures, paradigms and creativity?”. You start asking yourself “Which framework / plugin can I deform until it somehow looks like an answer to my problem?”.
When you find yourself in this situation, stop what you do, step back and discover that you have failed your ideals.
Getting out of the wheel
I was there and it was stupid.
While doing some framework research for my current private project I came across some great posts and talks written and held by a bunch of really smart people, like Dan Abramov, Evan Czaplicky, Yassine Elouafi, André Staltz and many more explaining concepts and usage of diffent frameworks and on software engeneering in general.
But one post I read was by Alexander Schepanovski which opened my eyes, because it is a stroke of genious. Seriously read it: Boiling react down to a few lines of jQuery.
This post helped me understand the basic concepts of what the whole “single application-store, virtual-dom, state-driven” stuff is all about - really in a few lines of jQuery. At first I thought it would be an uninformed rant of someone who really does not understand the concepts behind react and now tries to convert some doubters like me. Boy was I wrong.
Since I read this I don’t say “If you can’t explain the concept to a child you haven’t understood it” anymore but “If you can’t explain the concept in a few lines of jQuery you haven’t understood it”.
So why this wall of text?
Mainly to remind myself that you should really think about what you are trying to achieve before you gather your tools and that you can safely omit “the next big thing” just by limiting yourself to concepts and basic computer science theory.