JavaScript Melting Pot
https://increment.com/development/the-melting-pot-of-javascript/
So no, it’s not the dependency iceberg itself that is worrying me. It’s the proliferation of configuration options.
— Dan Abramov
Old Coder
When I started professional development in the early-90’s I only had a few software development languages and tools at my disposal. C++ was just gaining steam and available to me on my PC in MS/DOS via Borland Turbo C++ (which I bought at a student discount.) NCSU provided very nice Sun SPARCstations in their computer labs. I spent many-a-late-night in the labs, but for personal use no student could afford buying a SPARCstation. Microsoft Visual Studio was evolving in Windows and sometimes unstable. Linux was spanking new. Java was also new (and controlled by Sun), but didn’t start rolling hard until about 1995. The primary source of learning new development-related skills was via books (not yet the Internet). The pace of change was slow and controlled by companies who built the compilers, just as as Abramov indicates. When Microsoft rolled out .NET and Windows XP circa 2000 it took about 3 years for .NET to gain full uptake in the Windows ecosystem. Even I shied away from it until .NET hit 2.0. .NET’s growth required a huge advertising and educational push from Microsoft to encourage developers to adopt it and yet they still had to keep around older API’s like Microsoft Foundation Classes, COM, ATL, and WTL because of the massive quantity of legacy code and developer lock-in.
Nowadays…
Does this globulous menagerie make you feel anxious?



What about today? We should expect at least one new software development language a year to appear and gain some traction. How many transpiled-to-JavaScript languages have appeared in the last few years? Expect a whole new paradigm of dev tools with JavaScript at least once or twice a year. I think this proliferation is the beauty of open source and from the abundance of developers. There are many more developers now than when I got started. There are many smart people in the ecosystem who are tired of waiting around to convince someone else to fix their problems. Smart folks argue best by making stuff. The modern JavaScript ecosystem both scares me and makes me giddy. If I work on something in June, then come back to it in October there’s a good chance what I was using is now outdated.
This pace is frightening and frustrating for those developers who have a nagging desire to always be using the best tool while craving stability. When the tooling keeps changing there is no “best” tool. A particular challenge in the modern JavaScript environment is creating longer-life corporate web-based products which need to be around for a few years to make good return on the development investment. Thus, finding peace requires a change of mindset. I liken it to the metaphor of grabbing a morphing cyborg by the hand and learning to dance.
Good Practice Make Good Play
The core challenge with all the new tools (and all the old tools) is figuring out how to apply good development practice and methodology. Good practice and design concepts are timeless. An amusing part of entering the JavaScript environment as a mature developer is watching the ecosystem walk through well-known growth pangs taken by all maturing development environments. A good example of this truth is the rising popularity of TypeScript. Duck-typing is great for single-developer smaller projects. But, when you need to scale a large application and involve lots of developers it causes problems. This was known over 40 years ago, but JavaScript was not initially intended for such large scale development. Now it is. The Community responded. Awesomesauce!
Nowadays Was Yesterday
My most recent efforts have been using React dev environment with Inferno (because React’s patent clause freaked many folks out and causes confusion). But, wait, Facebook is dropping the patent clause for React. Maybe we can move to full React. Time to change…