The convergence of compilers, build systems and package managers https://blog.ezyang.com/2015/12/the-convergence-of-compilers-build-systems-and-package-managers/ (superb discussion on how we build lang ecosystems)
miniblog.
Related Posts
One remarkable aspect of the JS packaging ecosystem is that people package individual functions. For example, lodash.sortby: https://www.npmjs.com/package/lodash.sortby
It shows how lightweight the packaging process is. I've not seen this happen in other ecosystems.
Languages with large ecosystems often develop interoperable languages. Scala, Clojure, F# and Typescript all benefit from compatible packages in the "primary" language.
I think Rust will eventually see these too. What will they look
https://www.virtuouscode.com/2015/07/08/ruby-is-defined-by-terrible-tools/
Despite the title, this is a good article on the relationship between programming languages, tooling, the resulting ecosystems and our mental models.