[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