You could write that
I have programmed since I was in elementary school, first doing basic scripting with HyperTalk and HyperCard back in the mid-1990s, then later moving on to TI graphing calculators, where I made my first tic-tac-toe AI in fifth grade (should have used deep learning to stay ahead of the buzzword curve, but alas). In high school, I mostly programmed in Java, trying to build a really awkward Civilization clone that never really got anywhere (called, inventively, StrategyGame).
I played with JS on and off for the next three years, and experimented with some of the new frontend frameworks as they were released. But by the end of my degree in 2011, I was really quite done with coding for the internet. I was spending more and more time in the Python world, particularly around statistics, and Python was just a joy to program compared to the kluge that web development always turned into.
So I took a hiatus. For five years.
Fast-Forward Five Years Later
(To be honest, I struggled in my first sandbox app even to get started, but eventually, the construction of these apps became much clearer as I figured out my program requirements. My recommendation is to ignore the create_react_app library and to build your first app entirely from scratch. It’s super helpful, even though it can take the better part of a weekend to get all the pieces to fit together.)
Finally, there are compilers and build tools like Webpack that help to put all this together. Webpack is one of those tools that is annoying to setup (seriously, “batteries included” is definitely not a good description), but once you play around with the scripts, add in the right plugins and get the correct result, it is so quick and painless to rebuild an entire app that it is almost magical.
In short, there has just been a sea change when it comes to the maturity of the JS ecosystem. Sure, there are a lot of tools, but there are also are a lot of problems that crop up in web development. It’s great to see the community building best-of-breed tools that solve each of these problems in a modular way, and the cooperation to orchestrate them together for the developer.
There are also some key cultural changes that have improved the community. Test coverage was not something that was actively discussed outside of some marquee projects, but now I am pleasantly surprised how even some small libraries are building testing into their codebases from line one. Documentation, the great bane of web development a decade ago, is actually quite good. Not only are developers are documenting their work better, but the huge number of StackOverflow questions and blog posts means that an issue can almost always be solved in a short period of time.
So for those who are thinking of walking away, my advice is simple: don’t. Maybe take a few months off (definitely not five years!) Dart around an Elm tree, or Go play with a Python while drinking Java. But don’t knock the changes we have seen: they may not all be linear improvements, but they have collectively created one of the best environments for building great products I have seen. Now excuse me, I have a new frontend library to make.