Simplicity is a virtue (at least sometimes).
Which part of JS, as a programming language, do you see as great or even adequate when compared with contemporary programming languages?
> Adding types post-hoc has never improved a codebase that I've seen but it has caused a lot more bad patterns to show up.
That assertion makes no sense. I mean, all TypeScript does is impose arbitrary sanity checks on a programming language which is plagued for not having any. Where do you interpret the addition of sanity checks as a source of problems?
I mostly meant that I do all my greenfield JS dev using TypeScript. Out of curiosity, what bad patterns have you seen caused by adding types “post-hoc”?
- .eslintrc.json to configure ESLint
- .prettierignore because it tries to format package-lock.json
- prettier.config.json
- npm/yarn and package.json + node_modules
- .nvmrc to pin your node version
- storybook
- renovate to update dependencies
- .editorconfig to ignore node_modules
- mocha for testing and .mochaarc.js
- stylelint and .stylelintrc.json + .stylelintignore
And maybe throw in Jest, tsconfig.json, a gulpfile, and some other stuff.
Hell, I thought Flask's root directory was getting a bit fluttery with .gitignore, .venv, .flaskenv, __pycache__, and requirements.txt...
Having lots of tools is, in some ways a good thing. That's how Unix was designed: have lots of little tools, each designed really well for its job. If you have a problem, and there is a tool for that problem, there's nothing wrong with using the tool to solve the problem. It may come with a learning curve, but what often happens without the tool is you end up evolving your own tool anyway, it's just not as well designed as the industry leader.
The problem described on this git issue is generally less of a problem on the Java projects I've worked on, since most of the equivalent configuration ends up in the pom.xml. The JS equivalent problem isn't a problem of too many tools in itself, but rather that no tool in JS has done what Maven has for Java.
There's lots to complain about in JavaScript land but IMO having a bunch of config files in the root is a feature, not a bug.
And no, splitting the Go part and the React part is not an option as it makes releasing ten times harder.
Telling people to "just use fewer tools" might make you feel clever, but it's just snarky, really.