开源依赖管理器新秀

目前还没有读者喜欢这篇文章。
Business as usual is a dead end

Opensource.com

Daniel Pfeifer 去年在 Meeting C++ 大会上就依赖管理问题作题为当依赖地狱冰封的演讲时,他说:“请尝试完成以下句子:Python 有 Pip,Ruby 有 Gem,Dart 有 Pub,C++ 有...”

遗憾的是,我们无法继续完成这个句子,因为对于 C/C++ 项目,目前还没有解决方案来解决和跟踪依赖关系以及版本兼容性。而这正是 biicode 试图填补的空白。

当 biicode लगभग 两年前开始时,创始人与投资者都承担了许多风险。我们的资助者仅凭一个简单的原型就投入了大量资金。我们的创始人 辞去了他们在著名大学中安全且高薪的职位。然而,机会非常巨大,因为大约有 400 万 C/C++ 开发人员,并且这两种语言的代码总共占世界代码的近 20%。此外,这些工具很容易变得标准化。一旦某个依赖管理器能够轻松有效地处理特定编程语言中最流行和重用的库,该工具自然就会成为标准。

考虑到这些因素,我们继续前进... 但决定保持代码私有。

竞争

我们从一开始就知道我们具有竞争优势:我们是基于文件的依赖管理器,因此当您可以指向您想要依赖的 特定文件 并获取它时,无需下载庞大的库或软件包。我们也知道,我们并非孤身一人在尝试为 C 和 C++ 社区提供依赖管理器。RYPPL 已经存在一段时间了,而且它不仅是一个开源项目,其贡献者还是著名的开发人员。

说实话:我们嫉妒了。

我们一直欢迎竞争,并且我们认为拥有这样的竞争对手只会激励我们。然而,作为开源软件的倡导者和用户,我们知道社区的大部分人不仅会支持他们,还会为该项目做出贡献。但是,我们不断看到和注意到,几乎每天都有开源问题得到处理。不仅如此,我们工具的主要目的之一是用于 快速原型设计,并且我们坚信开源之道的支柱。

到夏季末,我们知道我们必须做什么:我们必须开源。

社区

那时,biicode 已经拥有一个支持性且不断增长的社区,并且我们已在国际标准化组织(ISO)委员会的网站上被重点介绍。我们是该领域的重要参与者!但是,当在我们的董事会会议上提出“开源”时,很快就清楚地表明并非所有人都意见一致。我们竭尽全力展示参与、构建和贡献开源社区的好处。我们最终与投资者达成协议,即一旦注册用户达到 10,000 人,我们将发布 biicode 的代码,并欢迎社区参与其维护和改进。

对于某些人来说,这可能是一种特殊的开源方式,但也许您也听说过类似的故事?

我们完全致力于此,并将此视为一项集体挑战。我们现在都是开源用户、倡导者和协作者。

biicode 代码贡献者 T 恤,达斯·维达++有人说 C 和 C++ 是老派编程语言,因此我们选择达斯·维达++ 来代表我们;他可能是老派的,但他经久不衰!了解我们的全部内容,加入我们,也许可以为您的 代码贡献 赢得一件我们的“我是你父亲”T恤。

标签
Jordi Mon kissing a trophy.
Weaveworks (https://www.weave.works/) 的产品营销总监。CNCF 捐赠和维护的 Flux、Flagger 等项目。GitOps 重点。OpenUK 大使。英国开放技术业务组织,代表 3 个开放:开源软件、开源硬件和开放数据,遍及英国。

5 条评论

Jordi,

感谢这篇精彩的文章。

很高兴看到 C/C++ 的依赖工具正在涌现。
感谢您分享拥抱开源的理由。

愿原力与你同在!

谢谢你,Luis!我们真的希望社区支持我们的项目,并且我们能够与他们一起前进。

回复 作者:Luis Ibanez

我完全不相信

您如何处理命名空间冲突?

Ruby、Python 等在设计上是惰性的。C++ 不是。如果我需要一个库,我会下载它,并将其放在我的 externals(第三方,或其他)中。这样我就可以完全控制。我当然不会让工具尝试为我解决依赖关系。

完全尊重。对我来说,那是一种缓慢且不方便的工作流程。但再说一次,这取决于你。我喜欢将我的库放在同一空间中,并自动管理我的依赖项。

回复 作者:Smit-Tay (未验证)

Smit-Tay,

您提出了一个很好的观点,值得思考;但并非不可逾越的障碍。

我们不需要完全放弃对依赖工具的控制。但我们可以获得有价值的支持,这样我们就无需处理琐碎的依赖关系案例(例如,我需要 jpeg 或 boost)。

面对命名空间冲突,依赖工具可以简单地将其报告给您(开发人员),以便您可以应用您对库和代码之间相互作用的更高层次的知识。也许那时您可以通过在配置文件中提供额外的提示来解决歧义。

如果一个工具能够解决我代码 20 个依赖项中的 19 个,并且提示我找出一种方法来消除无法自动解决的剩余一个依赖项的歧义,我就会感到高兴了。

回复 作者:Smit-Tay (未验证)

知识共享许可协议本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.