On Fri, 06 Jan 2012 23:31:52 -0800, torhu <no@spam.invalid> wrote:
On 06.01.2012 21:02, Adam Wilson wrote:
COFF is an absolute requirements when working on Windows, yet DMD
doesn't
support it. Everything, every programming interface, every application
running on x64 Windows is built with COFF, the default output of every
other compiler on Windows is COFF, everyone else programming on Windows
is
expecting COFF.
Windows represents the largest OS install base in the world; and yet,
Windows based D programmers are told that they have to dig up extremely
esoteric tools from the darkest, smelliest, most cobwebbed corners of
the
Internet, just to be able to interact with the the rest of the Windows
world.
This situation is simply unacceptable.
It's not that bad. Most libraries can be compiled to DLL files, in fact
that's often the default. DMD/Optlink can use DLL files created by
other tool chains just fine. If an import library in the correct format
is not available, just use implib or coffimplib to create one. No
problem.
First of all, what if I want to use a DLL lib file that was created by DMD
in VC++? Oh right, can't do that either. I know there are converter tools
available, but all of them are closed source, and what if the creator
decides one day that he is done? I'm stuck with no source and potential
bugs.
Second, as a professional, the idea that somehow the advice to download
Esoteric Tool X from Shady FTP Server Y is acceptable is completely beyond
me. No professional compiler implementation would DARE give that advice to
it's clients, they'd laugh and find another compiler that did what they
want. The concept of kludging together a build toolchain is uniquely open
source. DMD will never get buy-in from large groups of professionals
without natively supporting the things those professionals expect.
Let me state that again for clarity. If DMD does not natively support the
standard outputs that professionals have come to expect and demand, then
DMD will forever remain a hobby toy.
Professionals don't have time to kludge together a [fragile] build
toolchain and support it, they have work to do. Given the choice for a
large project right now, i'd have to say VC++ wins on Windows every time,
it's got COFF, excellent tooling and libraries, and x64 support; but
mostly, it works with everything Windows. DMD does not. Until DMD does,
professionals cannot seriously consider DMD.
Some of the D bindings for C libraries include build scripts for
building the library with DMC, to allow for static linking with D
programs. Most don't, but you can still get by just fine with the DLL
build of the library.
--
Adam Wilson
Project Coordinator
The Horizon Project
http://www.thehorizonproject.org/