Java and Scala’s open-source ecosystem faces several challenges. Writing and maintaining build configurations is too difficult, and publishing is even harder, coming with additional friction of having to support an increasing multiplicity of targets targets.
But worse, this workflow puts a burden on a few key people in the open-source community to publish their libraries quickly so that their downstream users can publish theirs, and it can take months for some projects to be published. How is it that the multi-billion-dollar industry has become so dependent on so few people?
I will introduce Fury, a fast, source-based dependency manager and build tool for JVM-based languages which aspires to radically disrupt the ecosystem for the better. Fury defines builds as static data, not code, making reasoning about them simple and fast. Fury facilitates a new, distributed and version-controlled ecosystem where publishing is as simple as tagging a signed commit. And builds can be external to projects, so there’s no need to impose Fury upon any existing developers who are happy with their current build setup.
The utopia we are striving for is a new, fluid and versatile ecosystem in which developers are liberated to publish more easily and frequently, and where it becomes easier for anyone to make contributions to open-source projects.