Definition of religion
1a : the state of a religious
b(1) : the service and worship of God or the supernatural
(2) : commitment or devotion to religious faith or observance
2 : a personal set or institutionalized system of religious attitudes, beliefs, and practices
3 archaic : scrupulous conformity : CONSCIENTIOUSNESS
4 : a cause, principle, or system of beliefs held to with ardor and faith
In 2016, I wrote:
This 2016 list of frameworks one should learn includes Angular, React, Polymer, VUE, and Ember. A similar article for 2015 lists out Angular, Backbone, React, Meteor, Ember, Polymer, and Aurelia. In one year alone, it would seem as if Backbone and Aurelia fell off the radar and VUE showed up out of nowhere.
Meanwhile 96% of web apps use JQuery. Yes, that is ninety-six percent.
Let’s see what the 2018 list of JS frameworks to learn include: Angular, React and VUE are still on the list; GraphQL, Next.js, Storybook, Reason, and Jest replace the others from my 2016 list. Web apps have been around for 20 years, you’d think by now there would be some movement towards standardization.
So, while JS itself is relatively pure, the frameworks needed to build a modern application are not. The only good thing about JS frameworks and libraries is that they encourage some of the JS religious rituals such as installing hundreds of megabytes worth of modules and arguing about bower vs. NPM and the color of the bike shed.
I have yet to meet a business user who is interested in learning to code. Period.
Now that we covered the three JS myths from 2016, let me throw in a few more that seem to persist:
Reality is that you can create an enterprise application in any language. This is not an argument in favor of JS per se. Of course, you can build simple forms-based apps.
Lack of high-performance precision math and single-CPU nature of JS make it an inappropriate language for anything involving high-volume financial transactions. That same single-CPU nature of JS makes it scale poorly for privacy, security, and encryption related tasks.
There was a time when COBOL developers felt that COBOL was the only language they ever needed to learn. Let’s leave it at that.
6) The same developer can work on both client and backend
This holds true for only simple applications. The reality is that front-end development is very different from back-end; front-end frameworks are very distinct from server-side. Writing for the front-end, you don’t have to worry about a million users exercising the same bottleneck in your code at the same time; on the server-side you do.
All developers should learn one new programming language every year, even if they don’t end up coding in it. Cross-pollination of ideas is a good thing, and using the right tool for the job is what distinguishes a religious zealot from a qualified engineer.