C++ is like an age-old soviet nuclear missile: You can probably wipe out all your enemies with it, but you have a much greater chance of killing yourself and everyone around you.
On Tue, Oct 25, 2011 at 1:10 PM, Gor Gyolchanyan <[email protected]> wrote: > Many languages come with a built-in religion. That religion drives the > design of those languages towards particular goals or particular ways > of achieving goals. > D doesn't have a religion. D is an atheistic language. It's aware, > that many goals have nothing in common and that they gave their own > specific ways of achieving them. D allows you to do get whatever you > want however you want. It doesn't force you in a certain direction or > limit you with what you can do with it. > You might think, that C++ (the second least religious language IMO) > has the same philosophy, but it's not true. Here are some examples: > 1. C++ thinks, that every user-defined type is a class with > polymorphic behavior. > 2. C++ assumes, that every feature should be half-implemented: > 2.1. Templates in C++ look more, like a demo version of the real > thing. That's one of the reasons why many people resist from using C++ > templates. > 2.2. Polymorphism is built in a way, that discourages it's usage. You > can't guarantee a proper destruction of a polymorphic type and you > can't manipulate polymorphic types without pointer shenanigans. > 3. C++ is sure, that the code must be fast, but it need not be working: > 3.1. Default behavior is the one most prone to errors: > 3.1.1. Variable are initialized with garbage by default. > 3.1.2. Array of polymorphic objects doesn't call their constructors. > 3.1.3. Copying polymorphic objects results in a cut-in-half corpses, > instead of objects. > 3.1.4. Most of the stuff the programmer works with is > implementation-defined (in layman's terms, may or may not work at > will). > 4. C++ is designed for people who take pleasure of reading encrypted > Klingon, instead of a pretty and readable text. > > D works in the way, in which "the easy way is the right way". The > right way in C++ is using shared pointers, the right way in D is > using... well.. objects. That's the most obvious example. Indeed, C++ > is a good tool in the hands of a highly skilled professional. But > that's not a good thing. That's retarded. The things C++ allows you to > do are not worth all the time and effort, spent on studying all the > bugs and holes in the C++ standard. > > Other languages are just religious and that's it. Python is religious > about dynamicity (Nothing is known at compile time. Compile-time > doesn't exist), Java is religious about complexity (it's a > straitjacket, not a language), Perl is write-only language, religious > about text manipulation (perl thinks, that nothing ever exists besides > text), C is religious about stone-age tools (Design patterns, > high-level constructs are blasphemy for C). > > That's why one should consider D. > > On Tue, Oct 25, 2011 at 7:19 AM, Walter Bright > <[email protected]> wrote: >> On 10/24/2011 6:52 PM, Brad Roberts wrote: >>> >>> On Mon, 24 Oct 2011, Walter Bright wrote: >>> >>>> On 10/24/2011 5:42 PM, dsimcha wrote: >>>>> >>>>> I got the impression that D is not being used partly because of the >>>>> obvious >>>>> reasons (lack of libraries, legacy code in other languages) but also >>>>> partly >>>>> because most people, even if they've heard of it, don't know what its >>>>> most >>>>> important features/benefits are. I think that we need to develop a >>>>> short, >>>>> memorable "elevator speech" version of its selling points, even if we >>>>> ignore >>>>> some substantial areas in doing so. The one I used was basically >>>>> "compile-time >>>>> metaprogramming on steroids, static if, CTFE, string mixins, see >>>>> std.algorithm, >>>>> std.range and std.parallelism for examples". >>>> >>>> You're right, I've been recently wrestling with the elevator pitch thing >>>> for >>>> D. I know we need one. Bartosz has suggested "Systems programming safe >>>> and >>>> easy." >>> >>> That's not a pitch, that's a slogan or a catch phrase. It might be enough >>> to get the listener to invite the pitch. >> >> Right, but you need a headline that's 140 characters or less (tweet size). >> For example, the ipad was "1000 songs in your pocket". The iphone was >> "reinvention of the phone". >> >>> A pitch needs to be longer and more informative. You've got 20-30 seconds >>> to convince the person to look deeper. It's enough to list a couple >>> important points. Top three reasons it's worth looking at closer.. >>> something along those lines. >> >> The 3 keys come next. It has to be more than two, and less than 4. I've been >> toying with: >> >> 1. control >> 2. multi-paradigm >> 3. robustness >> >> (Yes, I've been reading a book on this!) >> >
