August 30, 2016
On Monday, 29 August 2016 at 14:31:50 UTC, eugene wrote:
> On Monday, 29 August 2016 at 12:11:34 UTC, Markus wrote:
>> Take a look on this discussion thread and you know WHY D IS NOT SO POPULAR.
>>
>> The community discusses technical details and compares D to C++, but there is no clear mission statement, there is no vision statement...
>>
>
>
> Hello,
> the url https://dlang.org/overview.html states that "It's a practical language for practical programmers", i think this is the vision statement)))

Take a look on https://dlang.org/ : "D is a systems programming language with C-like syntax..."

The overview-page http://dlang.org/overview.html has two main sections which compares D with C++.

The tour https://tour.dlang.org/ is nearly empty, but on the first page it states that D is an "evolution of C++ (without the mistakes)" (the real content is hidden in the menu-sections).

Most of the (very good) articles in https://dlang.org/articles.html compare D-features with C++. If I want to learn how D templates work, I do not need to know what is bad in C++-Templates.

From my point of view this misleading for people comming to D first time. D is a mature full featured language by its own. D has its roots in C++ (and C) but is full fledged now and should represent its features and strength with continuously referencing C++ and without this repetitive "without mistakes".

Many young people are looking for alternatives to the boring Java Ecosystem. If you position D in the, from there perspective, grandparents-language C++ edge, you will miss them.

Regards

Markus
August 30, 2016
On Tuesday, 30 August 2016 at 07:56:06 UTC, Markus wrote:
> On Monday, 29 August 2016 at 14:31:50 UTC, eugene wrote:
>> On Monday, 29 August 2016 at 12:11:34 UTC, Markus wrote:
>>>[...]
>>
>>
>> Hello,
>> the url https://dlang.org/overview.html states that "It's a practical language for practical programmers", i think this is the vision statement)))
>
> Take a look on https://dlang.org/ : "D is a systems programming language with C-like syntax..."
>
> The overview-page http://dlang.org/overview.html has two main sections which compares D with C++.
>
> The tour https://tour.dlang.org/ is nearly empty, but on the first page it states that D is an "evolution of C++ (without the mistakes)" (the real content is hidden in the menu-sections).
>
> Most of the (very good) articles in https://dlang.org/articles.html compare D-features with C++. If I want to learn how D templates work, I do not need to know what is bad in C++-Templates.
>
> From my point of view this misleading for people comming to D first time. D is a mature full featured language by its own. D has its roots in C++ (and C) but is full fledged now and should represent its features and strength with continuously referencing C++ and without this repetitive "without mistakes".
>
> Many young people are looking for alternatives to the boring Java Ecosystem. If you position D in the, from there perspective, grandparents-language C++ edge, you will miss them.
>
> Regards
>
> Markus

Sorry, two typos, should be read as:
...
D has its roots in C++ (and C) but is full fledged now and should
represent its features and strength WITHOUT continuously
referencing C++ and without this repetitive "without mistakes".
...
From my point of view this is misleading for people coming to D
first time.



August 30, 2016
On Tuesday, 30 August 2016 at 08:00:35 UTC, Markus wrote:
> D has its roots in C++ (and C) but is full fledged now and should
> represent its features and strength WITHOUT continuously
> referencing C++ and without this repetitive "without mistakes".
> ...
> From my point of view this is misleading for people coming to D
> first time.

i think it is to invite C\C++ developers to use D instead of what they now use. I dont think D currently can supersede neither C\C++ nor java, since both sides have a huge amount of libs, frameworks as it's a key why they are still highly used, though java lacks in speed of evolution and C++ is becoming more complex and C lacks abstractions like OOP
August 30, 2016
On Tuesday, 30 August 2016 at 07:56:06 UTC, Markus wrote:

>
> Most of the (very good) articles in https://dlang.org/articles.html compare D-features with C++. If I want to learn how D templates work, I do not need to know what is bad in C++-Templates.

True. Any C++ programmer interested in this topic will see the differences anyway (or refer them to the section "D for C++ programmers").

> From my point of view this misleading for people comming to D first time. D is a mature full featured language by its own. D has its roots in C++ (and C) but is full fledged now and should represent its features and strength with continuously referencing C++ and without this repetitive "without mistakes".

The D community always links D to C++, which makes D look like the eternal "wanna be" or "runner-up". D has developed its own "style" and should no longer be compared to C++ feature by feature. It's useless because it's no longer applicable.

> Many young people are looking for alternatives to the boring Java Ecosystem. If you position D in the, from there perspective, grandparents-language C++ edge, you will miss them.

You have a point there. It's been said time and again that trying to win over the C++ crowd (that has put years of work into mastering the language) will not generate many new D users (the odd one, alright). But D can attract users from Python and Java etc. It's time D became a bit more self-confident about its own achievements. It'd make more sense to compare D, in terms of outlook, features and solutions, to other newer languages like Nim, Go or Swift, because those new languages are the real competition, that's where people go when they look for new languages once they're unhappy with Java or Python or whatever.

The constant references to C++ are understandable, though, if you consider that both Walter and Andrei come from a C++ background, so the whole issue of C++ may loom larger in their minds than in yours or mine.
August 30, 2016
On Tuesday, 30 August 2016 at 08:34:23 UTC, eugene wrote:
> On Tuesday, 30 August 2016 at 08:00:35 UTC, Markus wrote:
>> D has its roots in C++ (and C) but is full fledged now and should
>> represent its features and strength WITHOUT continuously
>> referencing C++ and without this repetitive "without mistakes".
>> ...
>> From my point of view this is misleading for people coming to D
>> first time.
>
> i think it is to invite C\C++ developers to use D instead of what they now use. I dont think D currently can supersede neither C\C++ nor java, since both sides have a huge amount of libs, frameworks as it's a key why they are still highly used, though java lacks in speed of evolution and C++ is becoming more complex and C lacks abstractions like OOP

One thing that put me off looking a D again for a long time was the code example on the front page.

Perhaps like many people, I like C, I liked early C++ as being a much better C, but I look at "Modern" C++ with dismay. I liked C and early C++ because they were systems programming languages, where you could always see and understand the mapping from the language to the underlying machine, both for instructions and memory usage. Modern C++ has lost this. It's no longer considered "best practice" to write code that maps directly to simple machine constructs and use libraries when you want something "bigger". I look at C++ with dismay now. Everything they added works by "magic" or template "tricks" where you have little or no idea how the underlying code works or how memory is used without going into real depth.


This is why I've looked for a new language and I think D fits that quite well. It's not lost the plot like C++ seems to have done. it's simple to write and understand, but it has higher level constructs when you want them.

This is why the example on the front page put me off for a long time :-

    stdin
        .byLineCopy
        .array
        .sort!((a, b) => a > b) // descending order
        .each!writeln;

It makes the language look like some weird high level functional language where you don't ask how it works and you shouldn't care how it maps to the machine instructions and memory.

I realize that the same is actually fairly simple using ranges etc.  and have no complaints about the code or having it as a sample.
But it reminded me of haskel and functional programming, and memory management where it all just works "by magic" and you're patted on the head and told not to worry about it.

I feel this is a good example for later on, and I'm in no way complaining about the code but a very bad thing for the first thing you see on the front page.

I'm willing to admit I might be the only one :P But I'd much rather see the "better C" side as my first view of typical D code than this.
August 30, 2016
On Tuesday, 30 August 2016 at 10:50:17 UTC, John Burton wrote:
> I'm willing to admit I might be the only one :P But I'd much rather see the "better C" side as my first view of typical D code than this.

And I want to be clear... None of this is a complaint. I just wanted to post what personally put me off looking at D again for a while as a data point :)
August 30, 2016
On Tuesday, 30 August 2016 at 10:50:17 UTC, John Burrton wrote:

>
> This is why the example on the front page put me off for a long time :-
>
>     stdin
>         .byLineCopy
>         .array
>         .sort!((a, b) => a > b) // descending order
>         .each!writeln;
>
> It makes the language look like some weird high level functional language where you don't ask how it works and you shouldn't care how it maps to the machine instructions and memory.
>

I bet you if you had a C-style example on the front page, people would complain that it's old fashioned and not really different from C, and they'd ask "Why can't I do things like `stdin.byLineCopy.array.sort!((a, b) => ...` in D?".
August 30, 2016
On Tuesday, 30 August 2016 at 11:17:33 UTC, Chris wrote:
> On Tuesday, 30 August 2016 at 10:50:17 UTC, John Burrton wrote:
>
>>
>> This is why the example on the front page put me off for a long time :-
>>
>>     stdin
>>         .byLineCopy
>>         .array
>>         .sort!((a, b) => a > b) // descending order
>>         .each!writeln;
>>
>> It makes the language look like some weird high level functional language where you don't ask how it works and you shouldn't care how it maps to the machine instructions and memory.
>>
>
> I bet you if you had a C-style example on the front page, people would complain that it's old fashioned and not really different from C, and they'd ask "Why can't I do things like `stdin.byLineCopy.array.sort!((a, b) => ...` in D?".

Yeah I know...
As I said not really a complaint ... But it d make me think d was too high level a language with too much 'magic' . Other people will have different opinions

August 30, 2016
On Tuesday, 30 August 2016 at 11:29:45 UTC, John Burton wrote:
> As I said not really a complaint ... But it d make me think d was too high level a language with too much 'magic' . Other people will have different opinions

Indeed, I'm not a fan of that example either...

but we could turn this weakness into a strength: have two side-by-side implementations and emphasize that the same language handles both styles.
August 30, 2016
On Tuesday, 30 August 2016 at 13:34:05 UTC, Adam D. Ruppe wrote:
> On Tuesday, 30 August 2016 at 11:29:45 UTC, John Burton wrote:
>> As I said not really a complaint ... But it d make me think d was too high level a language with too much 'magic' . Other people will have different opinions
>
> Indeed, I'm not a fan of that example either...
>
> but we could turn this weakness into a strength: have two side-by-side implementations and emphasize that the same language handles both styles.

i think it will lead to something like: "Why do they have different examples for the same thing?" or "Why there are only few different examples to do the same thing? I thought D could give me more abilities" and so on)))