Really appreciate the response, it focused my attention on why I was drawn to the “opinionatedness” of Go.

Specifically, you reminded me of that makes me unsettled with JavaScript development; the sheer number of third-party libraries available. This can be seen both as a blessing and a curse.

The blessing is that there is a vibrant community supporting JavaScript and there are solutions to most problems already written. The curse comes in multiple forms:

First, sometimes it is hard to figure out which library to use for a problem; cannot tell you how many times I have been asked what frontend charting library they should use.

Also, libraries vary widely in quality and longevity. I often pick a library because it is where the herd is. You don’t want to find yourself depending on an abandoned project.

Second, the sheer number of third-party libraries that even the simplest of projects depend on is staggering. For example, just adding the following three dependencies for a decent linting setup in Node.js results in 166 third-party libraries being installed.

"devDependencies": {
"eslint": "^4.16.0",
"eslint-config-airbnb-base": "^12.1.0",
"eslint-plugin-import": "^2.8.0"
}

Just adding Express…

"dependencies": {
"express": "^4.16.2"
}

adds another 42 for a total of 208 third libraries that a “hello express” application depends on. Just listing the files in a project’s node_modules folder is a eye opener; you see a list of libraries that you have no idea what they do or who supports them.

accepts
acorn
acorn-jsx
ajv
...
wrappy
write
yallist

It is interesting that after awhile you become immune to this (I don’t often look at my node_modules folder). But every so often you read articles like:

I Peeked Into My Node_Modules Directory And You Won’t Believe What Happened Next

and

How one developer just broke Node, Babel and thousands of projects in 11 lines of JavaScript

that remind you of the problem.

At the same time, I have rarely run into problem with third-party libraries (where-as many other colleagues of mine have). I attribute my success to limiting my usage of third-party libraries in general and when I use them I limit myself to the most popular and thus well supported ones.

With any reasonable choice of development language / platform (Go, JavaScript, etc.) today, you undoubtedly find yourself trusting that a lot of open-source dependencies will not blow up your project.

In the case of Go, from my understanding, the dependencies are internal to Go (managed by a smaller group of individuals). In the case of JavaScript, those dependencies are external to JavaScript (managed by a larger group of individuals).

In the end, I really don’t have a solid reason to believe that the more free-wheeling JavaScript approach will win out, but nevertheless I do.

Written by

Broad infrastructure, development, and soft-skill background

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store