GSoC Mentor Summit Observations and D Marketing

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


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