[Scons-users] ANNOUNCE: Fubsy 0.0.1: the universal build tool

Greg Ward greg at gerg.ca
Tue Jan 15 16:46:14 EST 2013


On 06 January 2013, Russel Winder said:

> On Sat, 2013-01-05 at 20:37 -0500, Greg Ward wrote:

> […]

> > * like SCons, Fubsy strongly encourages you to describe your

> > dependencies fully and accurately; in return for that effort,

> > Fubsy will guarantee a correct and optimal build

>

> "Dependency" is a term of dubious semantics, sadly. In the JVM-based

> community it generally means the jars you have to have to be able to

> build your source code. In the C/C++/Fortran/D arenas it can often mean

> all the relationships between source, intermediate compilation products

> and final build products.


There's a footnote in the user guide that tries to explain this: see
the bottom of https://fubsy.readthedocs.org/en/latest/intro.html.


> […]

> > * Fubsy is designed to have a small, language/tool/policy-neutral

> > core, with all interesting decisions happening in plugins.

> > Someday, it will be possible to write plugins in multiple

> > languages (Python, Ruby, Lua, JavaScript, ... whatever someone

> > implements support for).

>

> All of those are dynamic languages, will you support plugins in

> languages such as D and Go?


Well, it has to be an embeddable language. Either that or I need
plugins over RPC, which is a can of worms I'd rather not open up.
Anyways, Go will necessarily be the first plugin language, because it
so happens that Fubsy is written in Go. I hadn't considered D. I'm
skeptical that people will really want to write build script plugins
in low-level languages, though, so I'm unlikely to spend a lot of time
there unless the demand appears.


>

> > * Fubsy will provide first-class support for both C/C++ and Java in

> > standard plugins, making it one of the very few build tools to

> > support the world's most widely-used programming languages.

>

> Java necessarily now interworks with Groovy, Scala, Ceylon, Kotlin,

> Jython, JRuby, Clojure, Fantom. A Java-only build framework will get no

> traction in the JVM-verse.


Yeah, but I gotta start somewhere! The version number is 0.0.1 for a
reason.


> I think you will need to relate Fubsy to Waf, CMake, Autotools, Gradle,

> Maven, Gant, Ant, SBT, Leiningen, as well as Make and SCons.


Excerpt from a Fubsy user guide in the far future:

Comparison to other build tools
-------------------------------
[...]

* Unlike Leiningen, you can spell Fubsy.

;-)

First of all, I didn't want to overwhelm the user guide. Second of
all, I'm completely ignorant of some of those tools and highly
experienced with only two of them. Finally, I really dislike that
documentation written like "$tool is just like $oldtool except for X".
That just assumes too much about the reader. If $tool is worth using,
it's worth documenting on its own terms. This is one of the best
things about SCons' documentation.


> Every language leads to the creation of a build framework for that

> language


... which works fine in a universe where all software projects use
exactly one language. Ooops, wrong universe.


> the question is whether a "universal build tool" is either

> possible, or likely to gain traction due to sociological factors.


I'm pretty sure it's possible, or I wouldn't be doing this. I never
said it would be easy. Whether it will take off... well, we shall see.

Greg
--
Greg Ward http://www.gerg.ca
<greg at gerg.ca> @gergdotca


More information about the Scons-users mailing list