GSoC Mentor Summit Observations and D Marketing

Gor Gyolchanyan gor.f.gyolchanyan at gmail.com
Tue Oct 25 02:15:13 PDT 2011


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
<gor.f.gyolchanyan at gmail.com> 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
> <newshound2 at digitalmars.com> 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!)
>>
>


More information about the Digitalmars-d mailing list