OT: on IDEs and code writing on steroids

BCS ao at pathlink.com
Tue May 19 13:58:04 PDT 2009

Reply to Yigal,

> BCS wrote:
>> Reply to Daniel,
>>> Yigal Chripun wrote:
>>>> BCS wrote:
>>>>>> one other thing, this thread discusses also the VS project files.
>>>>>> This is completely irrelevant. those XML files are VS specific
>>>>>> and their complexity is MS' problem. Nothing prevents a developer
>>>>>> from using different build tools like make, rake or scons with
>>>>>> their C# sources since VS comes with a command line compiler. the
>>>>>> issue is not the build tool but rather the compilation model
>>>>>> itself.
>>>>> I think you are in error here as the c# files don't contain enough
>>>>> information for the compiler to know where to resolve symbols. You
>>>>> might be able to get away with throwing every single
>>>>> .cs/.dll/whatever file in the project at the compiler all at once.
>>>>> (Now if you want to talk about archaic!) Aside from that, how can
>>>>> it find meta-data for your types?
>>>> you're mistaken since there are build tools that support C#. I
>>>> think I saw this in Scons last time I looked.
>>> Maybe you should back up your statements instead of just guessing.
>>> http://www.scons.org/wiki/CsharpBuilder
>>> Oh look, you have to list all the source files because C# source
>>> files *do not contain enough information*.
>>> A C# source file containing "using Foo.Bar;" tells you exactly ZERO
>>> about what other files it depends on.
>>> -- Daniel
>> Exactly. The only practical way to deal with C# is an IDE or build
>> system of some kind that is aware of C#. You /can/ deal with it by
>> hand but IMHO that would be about half way from D to using C without
>> even a make file or build script.
> first, thanks Daniel for the evidence I missed.
> BCS wrote that a programmer needs to compile all the source files at
> once to make it work without an IDE. as I already said, he's wrong,
> and Daniel provided the proof above.

minor point; I said you have to give the compiler all the source files. You 
might not actually nned to compile them all, but without some external meta 
data, it still needs to be handled the full because it can't find them on 
it's own. And at that point you might as well compile them anyway.

> sure, you don't get the full power of an IDE that can track all the
> source files in the project for you. That just means that it's worth
> the money you pay for it.
> you can write makefiles or what ever (scons, rake, ant, ...) in the
> same way you'd do for C and C++. In other words:
> if you prefer commnad line tools you get the same experience and if
> you do use an IDE you get a *much* better experience.
> same goes for D - either write your own makefile or use rebuild which

> uses the compiler front-end to parse the source files just like you
> suggested above for C#.

where did I suggest that?

> where in all of that, do you see any contradiction to what I said?
> again, I said the D compilation model is ancient legacy and should be
> replaced and that has nothing to do with the format you prefer for
> your build scripts.

I think that you think I'm saying something other than what I'm trying to 
say. I'm struggling to make my argument clear but can't seem to put it in 
words. My thesis is that, in effect, C# is married to VS and that D is married 
only to the compiler.

My argument is that a D project can be done as nothing but a collection of 
.d files with no extra project files of any kind. In c# this is theoretically 
possible, but from any practical standpoint it's not going to be done. There 
is going to be some extra files that list, in some form, extra information 
the compiler needs to resolve symbols and figure out where to look for stuff. 
In any practical environment this extra bit that c# more or less forces you 
to have (and the D doesn't) will be maintain by some sort of IDE.

To put it quantitatively:

productivity on a scale of 0 to whatever
c# w/o IDE -> ~1
D w/o IDE -> 10
c# w/ IDE -> 100+
D w/ IDE -> 100+

Either C# or D will be lots more productive with an IDE but D without an 
IDE will be lots more productive than C# without an IDE. D is designed to 
be used however you want, IDE or not. C# is *designed* to be used from within 
VS. I rather suspect that the usability of C# without VS is very low on MS 
"things we care about" list.

More information about the Digitalmars-d mailing list