masahikotsujita / Asterism

C++ Package Manager
MIT License
1 stars 0 forks source link

Why not Vcpkg? #11

Open masahikotsujita opened 3 years ago

masahikotsujita commented 3 years ago

WHY

WHAT

masahikotsujita commented 3 years ago

Centralized vs Decentralized

Vcpkg is basically centralized, the versions of each modules are fixed (mainly to the latest version), and users cannot explicitly select or combine versions in the usual way. Of course, as Vcpkg claims, you can hack them by editing the cloned Vcpkg port list, but we think that such situations occur commonly, not exceptionally. So we wanted to incorporate support for that into the package management system itself so that users could get the dependencies of the version they wanted without any "hacking". Also, in order to register or update your module in a centralized repository, you need to submit a pull request, which requires to be accepted by the Vcpkg team. In most cases pull requests won't be rejected, but if you feel that your module isn't as important as publishing it through Vcpkg, you may hesitate to submit a pull request. As a result, only the existing modules reachable with the package management system will be in the spotlight, and it is difficult for new modules to be that. Asterism is inspired by Carthage, a popular package management system in Swift. With Asterism, you can publish your modules by simply putting a simple module spec file on your repository without asking for permission in a centralized repository, you can publish your modules and make it be used, at any stage of development.