Make Comparison

From Biowiki
(Redirected from MakeComparison)
Jump to: navigation, search

Quick comparison of automated build tools & related frameworks

Changelog:

Tool Language Declarative MD5 triggers SQL hooks Extensible Parallelism SGE compatible Implemented Thriving Concise Practical GNU-compatible Tried it?
GNU make C TWikiDocGraphics.choice-yes.gif no no no (threads) no TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif
omake C TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif no no  ? no TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif no
distmake C TWikiDocGraphics.choice-yes.gif no no no TWikiDocGraphics.choice-yes.gif sort of TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif
qmake C TWikiDocGraphics.choice-yes.gif no no no TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif not working yet
makepp Perl TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif no TWikiDocGraphics.choice-yes.gif (threads) no TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif
Saps Modules Perl no no TWikiDocGraphics.choice-yes.gif no TWikiDocGraphics.choice-yes.gif no (PBS) TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif no (Perl) TWikiDocGraphics.choice-yes.gif no no
Post Make SQL/C TWikiDocGraphics.choice-yes.gif no TWikiDocGraphics.choice-yes.gif via Postgres  ? no TWikiDocGraphics.choice-yes.gif  ?  ?  ? no no
Apache Ant XML/Java TWikiDocGraphics.choice-yes.gif  ? no TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif no TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif no (XML) TWikiDocGraphics.choice-yes.gif no TWikiDocGraphics.choice-yes.gif
SCons Python TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif no TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif no TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif no TWikiDocGraphics.choice-yes.gif no TWikiDocGraphics.choice-yes.gif
Jam script/C TWikiDocGraphics.choice-yes.gif no no  ? TWikiDocGraphics.choice-yes.gif no TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif  ? TWikiDocGraphics.choice-yes.gif no no
Cook script/C TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif no  ? TWikiDocGraphics.choice-yes.gif no TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif  ? TWikiDocGraphics.choice-yes.gif no no
Ruby Make Ruby TWikiDocGraphics.choice-yes.gif no no TWikiDocGraphics.choice-yes.gif (threads) no TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif no TWikiDocGraphics.choice-yes.gif
Map Reduce C n/a n/a n/a n/a TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif no Google (+others?) TWikiDocGraphics.choice-yes.gif n/a not yet no no
Bio Make Prolog TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif no in theory TWikiDocGraphics.choice-yes.gif no no TWikiDocGraphics.choice-yes.gif no no no
Erlang make Erlang TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif no no no TWikiDocGraphics.choice-yes.gif no no, hypothetical (make.erl?) TWikiDocGraphics.choice-yes.gif n/a no no TWikiDocGraphics.choice-yes.gif
Termite Scheme make Scheme TWikiDocGraphics.choice-yes.gif TWikiDocGraphics.choice-yes.gif no no no TWikiDocGraphics.choice-yes.gif no no, hypothetical one guy n/a no no no
Taverna Java yes (GUI) no no no TWikiDocGraphics.choice-yes.gif  ? partially  ? no (XML) no no TWikiDocGraphics.choice-yes.gif
Ruffus Python TWikiDocGraphics.choice-yes.gif  ?  ? probably TWikiDocGraphics.choice-yes.gif early TWikiDocGraphics.choice-yes.gif ... TWikiDocGraphics.choice-yes.gif think so no hope to

Obviously some of the columns are very subjective. Here is an explanation of the meaning of some of them:

  • "Declarative" means that it uses concepts of Wikipedia:Declarative_programming
  • "SQL hooks" means that entries in relational database tables can be both targets and dependencies
  • "Parallelism" means built-in support for distributed processing (as opposed to being able to run multiple threads)
  • "MD5 triggers", "SQL hooks" and "Parallel" imply that the tool has such features built-in
    • as opposed to "Extensible" which means that it's possible to add such things
  • "Implemented" means that a "make"-type system is up & running in this framework
  • "Thriving" means that the framework itself is well-supported (so it can be true even if "Implemented" is false)
  • "Concise" is an unashamedly subjective call (let's just say that GNU make is, and XML isn't)
  • "Practical" means "practical for our purposes"

Miscellaneous notes

George Hartzell recommends Rose-DB as a Perl database interface.