On 2011-07-14 00:32, Ulrik Mikaelsson wrote
Not trying to be argumentative, but what exactly do you see as the
gains in having a D-buildtool built in D (or D-specific build-tool in
any language, for that matter)? Seriously, I'm really asking, since
I'm having a hard time seeing it? Personally, I can only see the
drawbacks;

  * Building druntime and phobos might be difficult with a d-based buildtool
  * The build-tool itself will need bootstrapping. A user that wants to
test some D-project, will first have to aquire (build) and install
some D-compiler with custom tools. Then install druntime with another
custom build-system. Then Phobos. Then drake. And THEN, the
application/library he/she was interested in. Shortening this path is
IMHO REALLY important to see more D adoption. From my personal
experience, convincing developers and testers to fight through this
path is HARD.

The build tool should provide pre-compiled binaries on all supported platforms. Then the build tool should provide a build script for it self, so the build tool can build it self.

  * Cross-language builds (project with bindings), and builds with
external targets might be more difficult than need be, if the "2nd"
language is not supported by drake.

You can offer to run system commands.

  * Verbose build-script is IMHO a _really_ undesireable trait.

I agree with this.

  * How soon will I as a developer be able to "just build" a D-binding
to a C++-app (with needed C-glue-code) in Drake? Will a user of, say
Gentoo, be able to count on this working in his/her envrironment too?
  * Non-compilation actions will have to be reimplemented; document
generation, test execution, install-tasks following OS-specific
install procedures (XDG-guidelines etc.), ...

Yes, this is preferable to have.

IMHO, it sounds like a case of the NIH-syndrome, but I might be
missing something obvious?

In my experience other build tools aren't good enough in at least:

1. Making it as easy as it could be to build simple executables and libraries

2. Syntax is not as good/clean as it could be

1. Is because they don't know about D and D compilers.
2. I don't know about this one. This is an example of a Rubygems file:

spec = Gem::Specification.new do |s|
  s.name = 'example'
  s.version = '1.0'
  s.summary = 'Example gem specification'
end

Even this tool, which uses Ruby, has unnecessary noise in the syntax. This could instead be written as:

gem do
  name 'example'
  version '1.0'
  summary 'Example gem specification'
end

In this case the Ruby syntax doesn't allow to use the equal sign, like this: "name = 'example'".

--
/Jacob Carlborg

Reply via email to