As the title says, I've been noticing this trend that have been all along the evolution of programming languages. Each one has had a niche build tool and a dedicated package/lib repository system.
Its hard for me to ignore that nearly all of them are:
- Downloading/uploading archives with certain files and metadata.
- Extracting/packing/altering some directory structure as per the programming language conventions.
- Calling the compiler or other tools, CLI etc to do work in the defined steps and tasks.
Although some cater to specific conventions of the programming language, but the major part of the same, repeated functionality is hard to miss.
Maven, npm, cargo, gradle, and the list goes on. How could it be not so obvious to see the pattern and how come there are no popular generic solutions or tools for this ? Its it just that programming language creators just don't want to collaborate in this space or there is some historical or technical reason I'm missing ?
In short, why not pack the language specific conventions in a plugin or extension that re-used existing agnostic tools/servers, instead of rolling out one more repository server and one more build tool ?
Note: The question is not about the tools themselves, but the common mechanics involved with "sharing code packages" that are re-invented again and again.