carbon-language / carbon-lang

Carbon Language's main repository: documents, design, implementation, and related tools. (NOTE: Carbon Language is experimental; see README)
http://docs.carbon-lang.dev/
Other
32.31k stars 1.48k forks source link

Please improve the library and package manager like Npm, Cargo #1573

Closed sirlordt closed 2 years ago

sirlordt commented 2 years ago

Please implement something like npm, cargo. Is very important!!!!

davidzchen commented 2 years ago

I don't think the project is at the stage of building a package management system yet, since the core syntax is what is currently being worked out, but having an easy way to pull in external Carbon libraries is something we should consider.

The lack of an easy way to import external libraries such as via a standardized package management system has historically been a major pain point for C++, though part of the reason is that there is such a huge variation of build systems used by different C++ codebases.

I think there is a good opportunity to improve this area and create some kind of standardized package management offering for Carbon once the project gets to that stage.

robiot commented 2 years ago

What about the name Fiber for the package manager (from carbon Fiber)?

davidzchen commented 2 years ago

Carbon Fiber is a wonderful name. :)

One possible concern is that it might clash with Google Fiber, but hopefully, that is not enough of a reason against this.

jonmeow commented 2 years ago

To be sure -- infrastructure for package management is explicit in the goals, it's just a ways off.

https://github.com/carbon-language/carbon-lang/blob/trunk/docs/project/goals.md#language-tools-and-ecosystem

andrewfenn commented 2 years ago

Rather than state the obvious that one is needed, I would instead like to say that there needs to be a lot of planning and learning from the mistakes of other package managers. I hope that is done and someone doesn't just start coding their own. A lot of inspiration can be gathered from how for example Debian's package manager works.

When it comes to a package manager and central repository I would recommend all the following should be kept in mind for whatever a first version of a package manager looks like..

anton-roos commented 2 years ago

What about the name Fiber for the package manager (from carbon Fiber)?

I do like this name. Covalent might also be a cool name, it is how carbon bonds to other elements and to "package" something you are basically "bonding" your code with a package 📦 I think both names are cool.

Taack commented 2 years ago

What about the name Fiber for the package manager (from carbon Fiber)?

I do like this name. Covalent might also be a cool name, it is how carbon bonds to other elements and to "package" something you are basically "bonding" your code with a package package I think both names are cool.

Covalent bonds are not limited to carbon AFAIK :) .. There are so many cool names with Carbon, like diamond, Footballene, graphite, nanotube ...

MichaelBonnet commented 2 years ago

Perhaps "org" or "organ", as Carbon enables organic life to exist. And the code is made up of code "organs".

or something like that.

MichaelBonnet commented 2 years ago
  • A way to pre download all your dependent packages into one file to make deployment easy

How close is this proposed requirement to something like conda environments for Python?

anton-roos commented 2 years ago

What about the name Fiber for the package manager (from carbon Fiber)?

I do like this name. Covalent might also be a cool name, it is how carbon bonds to other elements and to "package" something you are basically "bonding" your code with a package package I think both names are cool.

Covalent bonds are not limited to carbon AFAIK :) .. There are so many cool names with Carbon, like diamond, Footballene, graphite, nanotube ...

I like Diamond and Nanotube.

chandlerc commented 2 years ago

Not that I don't enjoy all the fun names, but I don't think its really useful to have an issue tracking a package manager this early in the project. As Jon mentioned, it's tracked in our goals. Closing this as not-planned-right-now-but-definitely-in-the-future.