OT: on IDEs and code writing on steroids
grauzone
none at example.net
Sun May 17 22:33:19 PDT 2009
Yigal Chripun wrote:
> BCS wrote:
>> Hello Yigal,
>>
>>> second, D needs to update its stone age compilation model copied from
>>> C++. I'm not saying we need to copy the C# or Java models exactly, but
>>> we need to throw away the current legacy model.
>>> Java has convenient Jar files: you can package everything into nice
>>> modular packages with optional source code and documentation.
>>> similar stuff is done in .net.
>>
>> NO ABSOLUTELY NOT! (and I will /not/ apologies for yelling) I will
>> fight that tooth and nail!
>>
>> One of the best thing about D IMNSHO is that a D program is "just a
>> collection of text files". I can, without any special tools, dive in
>> an view or edit any file I want. I can build with nothing but dmd and
>> a command line. I can use the the source control system of my choice.
>> And very importantly, the normal build model produces a stand alone OS
>> native executable.
>> (Note: the above reasons applies to a pure D app, as for non pure D
>> apps, your toast anyway as D or the other language will have to fit in
>> the opposite language's model and something will always leak. The best
>> bet in that system is the simplest system possible and that to is
>> "just text files".
>>
>>
>
> hmm. that is *not* what I was suggesting.
> I was discussing the compilation model and the object file problems.
> D promises link-time compatibility with C but that's bullshit - you
> can't link on windows obj files for C and object files for D _unless_
> you use the same compiler vendor (DMD & DMC) or you use some conversion
> tool and that doesn't always work.
Just because it doesn't work on your shitty (SCNR) platform, it doesn't
mean it's wrong. On Unix, there's a single ABI for C, and linking Just
Works (TM).
But I kind of agree. The most useful thing about compiling each module
to an object file is to enable separate compilation. But this is
useless: it doesn't work because of bugs, it doesn't "scale" (because a
single module is likely to have way too many transitive dependencies).
> I'm not suggesting coping Java's model letter for letter or using a VM
> either, but rather using a better representation.
Ew, that's even worse. Java's model is right out retarded.
I'd just compile a D project to a single (classic) object file. That
would preserve C compatibility. Because the compiler knows _all_ D
modules at compilation, we could enable some spiffy stuff, like virtual
template functions or inter-procedural optimization.
More information about the Digitalmars-d
mailing list