Advocacy (Was: Who here actually uses D?)
Nick Sabalausky
a at a.a
Sun Jan 2 00:19:04 PST 2011
"Caligo" <iteronvexor at gmail.com> wrote in message
news:mailman.348.1293955294.4748.digitalmars-d at puremagic.com...
> On Sun, Jan 2, 2011 at 1:42 AM, Nick Sabalausky <a at a.a> wrote:
>
>>
>> I don't have a link, but I read a post he made somewhere that explained
>> the
>> reason Linux kernal is plain-C-only is because, IIRC, they frequently
>> need
>> a
>> very, very tight mapping between the source and the generated
>> instructions.
>> Partly for tight control over the instruction generation, and partly
>> becase
>> they often needed be be able to look at the source and know what got
>> generated. I don't know, but I suspect D may be even further from C++ in
>> than regard.
>>
>>
>>
> Linus also doesn't want C++ to be used for Git.
>
> "
>
> On Wed, 5 Sep 2007, Dmitry Kakurin wrote:
>>
>> When I first looked at Git source code two things struck me as odd:
>> 1. Pure C as opposed to C++. No idea why. Please don't talk about
>> portability,
>> it's BS.
>
> **YOU** are full of bullshit.
>
> C++ is a horrible language. It's made more horrible by the fact that a lot
> of substandard programmers use it, to the point where it's much much
> easier to generate total and utter crap with it. Quite frankly, even if
> the choice of C were to do **nothing** but keep the C++ programmers out,
> that in itself would be a huge reason to use C.
>
> In other words: the choice of C is the only sane choice. I know Miles
> Bader jokingly said "to piss you off", but it's actually true. I've come
> to the conclusion that any programmer that would prefer the project to be
> in C++ over C is likely a programmer that I really **would** prefer to
> piss
> off, so that he doesn't come and screw up any project I'm involved with.
>
> C++ leads to really really bad design choices. You invariably start using
> the "nice" library features of the language like STL and Boost and other
> total and utter crap, that may "help" you program, but causes:
>
> - infinite amounts of pain when they don't work (and anybody who tells me
> that STL and especially Boost are stable and portable is just so full
> of BS that it's not even funny)
>
> - inefficient abstracted programming models where two years down the road
> you notice that some abstraction wasn't very efficient, but now all
> your code depends on all the nice object models around it, and you
> cannot fix it without rewriting your app.
>
> In other words, the only way to do good, efficient, and system-level and
> portable C++ ends up to limit yourself to all the things that are
> basically available in C. And limiting your project to C means that people
> don't screw that up, and also means that you get a lot of programmers that
> do actually understand low-level issues and don't screw things up with any
> idiotic "object model" crap.
>
> So I'm sorry, but for something like git, where efficiency was a primary
> objective, the "advantages" of C++ is just a huge mistake. The fact that
> we also piss off people who cannot see that is just a big additional
> advantage.
>
> If you want a VCS that is written in C++, go play with Monotone. Really.
> They use a "real database". They use "nice object-oriented libraries".
> They use "nice C++ abstractions". And quite frankly, as a result of all
> these design decisions that sound so appealing to some CS people, the end
> result is a horrible and unmaintainable mess.
>
> But I'm sure you'd like it more than git.
>
> Linus
> "
>
>
> Source:
> http://thread.gmane.org/gmane.comp.version-control.git/57643/focus=57918
>
Hmm, from that I get the impression that Linus is basically just like the
old Java-evangelists except instead of OO being his silver bullet, it's
zero-abstraction. I'm almost suprised he allows things like functions, or
anything other than Asm for that matter, or cares about portability. I
really doubt he'd like D. Maybe he'd dislike parts of it less than C++, but
that's probably about it.
More information about the Digitalmars-d
mailing list