December 27, 2017
On Wednesday, 27 December 2017 at 08:59:10 UTC, Dan Partelly wrote:
>
> The D personality is mixed:
>...

I think stating it that way implies some kind of psychopathology ;-)

It would be better, and more accurate, to state that 'The D personality has had to evolve over a long period of time'.

Rust appeared..what..only 7 years ago? It has the advantage of not having to evolve from a period beginning at least 10 years before that..

IMHO..What will help the cause, in terms of keeping D as a 'modern' programming language, is the willingness of its designers and its community to make and embrace 'breaking changes' ... for example, making @safe the default, instead of @system.

December 27, 2017
On 12/27/2017 12:24 AM, Dan Partelly wrote:
> So then why not have first class support for them in language instead of having the programmer go through hoops to use them ?

Because then it is no longer betterC, because it will require the druntime.
December 27, 2017
On 12/27/2017 12:59 AM, Dan Partelly wrote:
> All could have been prevented by going the C++ route of 0 cost abstraction,
C++ is not 0 cost abstraction, despite the marketing. It's why C++ compilers have switches to disable things like EH and RTTI.
December 27, 2017
On Wednesday, 27 December 2017 at 09:39:22 UTC, codephantom wrote:
> IMHO..What will help the cause, in terms of keeping D as a 'modern' programming language, is the willingness of its designers and its community to make and embrace 'breaking changes' ... for example, making @safe the default, instead of @system.
It's been expressed that there are now too many codebases such that introducing "breaking changes" would upset many people and companies. D is a mature language, not a young one.


December 27, 2017
On Wednesday, 27 December 2017 at 10:10:03 UTC, Pawn wrote:
>
> It's been expressed that there are now too many codebases such that introducing "breaking changes" would upset many people and companies. D is a mature language, not a young one.

To that.. I say...tuff ;-)

A breaking change between major version releases, should be something users can accomodate. If they are not willing to accomodate that, then fine, they can stay stuck on a working version that works on their code.

But let that be a decision for them, rather than a decision they force on everyone else.

D needs to be bold, and go where no one as has gone before... .. .

I just finished watching Walter's opening talk at D conf 2017, and it seems that a lot of work has gone on to make D safe by default, and yet, it is still not safe 'by default'.

December 27, 2017
On Wednesday, 27 December 2017 at 10:10:03 UTC, Pawn wrote:
> It's been expressed that there are now too many codebases such that introducing "breaking changes" would upset many people and companies. D is a mature language, not a young one.

Just make it opt in at the module level and have the opposite attributes added. I suggest:

@strict module foo;


And that little @strict (or whatever name) thing indicates you want newer stuff for the entire module.

No breakage, no community split, very little hassle. Javascript has had a fair amount of success with opt in stuff like this.
December 27, 2017
On Wednesday, 27 December 2017 at 12:46:20 UTC, codephantom wrote:
> To that.. I say...tuff ;-)
>
> A breaking change between major version releases, should be something users can accomodate. If they are not willing to accomodate that, then fine, they can stay stuck on a working version that works on their code.
>
> But let that be a decision for them, rather than a decision they force on everyone else.
>
> D needs to be bold, and go where no one as has gone before... .. .
>
> I just finished watching Walter's opening talk at D conf 2017, and it seems that a lot of work has gone on to make D safe by default, and yet, it is still not safe 'by default'.
I'd love for @safe to be the default, and yeah, a major version change should implicate breaking changes. With that said, it's still D2. So perhaps D3 can include these "radical" ideas?

On Wednesday, 27 December 2017 at 13:37:17 UTC, Adam D. Ruppe wrote:
> Just make it opt in at the module level and have the opposite attributes added. I suggest:
>
> @strict module foo;
>
>
> And that little @strict (or whatever name) thing indicates you want newer stuff for the entire module.
>
> No breakage, no community split, very little hassle. Javascript has had a fair amount of success with opt in stuff like this.
This is a good compromise!
December 27, 2017
On Wednesday, 27 December 2017 at 09:39:22 UTC, codephantom wrote:
>
> I think stating it that way implies some kind of psychopathology ;-)
>
> It would be better, and more accurate, to state that 'The D personality has had to evolve over a long period of time'.
>


Well, C++ had to evolve over a very long period of time, and maintain compatibility with C. No other programming language had to deal with technical and social issues C++ had to deal with.

By comparison, D is young, and had the advantage it had no constrains to be compatible (language wise) with another language. Evolution time is not an excuse to a mixed personality (even if perceived). For all it's evolution time and mistakes and idiotic size of the language to pay for C's sins and omissions I do not see C++ as mixed personality. I never did. It evolved consistently. Also, another language, Ada went through 1 standard and 3 major revisions in almost 35 years and retained it's personality basically unchanged. Too bad it was designed with a  Wirthian syntax, which IMO was one of the factors it doomed it.

D went GC, but no quite mandatory GC, also not quite able to run its in entirety without GC, then in it's old age, went for cosmetic surgery to look like slim and sexy miss C. Much like a beautiful and capricious women with commitment issues and a fear of aging which went through 5 husbands. And it all started with a GC and several wrong defaults ....


>
> IMHO..What will help the cause, in terms of keeping D as a 'modern' programming language, is the willingness of its designers and its community to make and embrace 'breaking changes' ... for example, making @safe the default, instead of @system.

God knows. All "x" users of D would scream bloody murder, imo.
December 27, 2017
On Wednesday, 27 December 2017 at 14:06:51 UTC, Dan Partelly wrote:
> On Wednesday, 27 December 2017 at 09:39:22 UTC, codephantom wrote:
>>[...]
>
>
> Well, C++ had to evolve over a very long period of time, and maintain compatibility with C. No other programming language had to deal with technical and social issues C++ had to deal with.
>
> By comparison, D is young, and had the advantage it had no constrains to be compatible (language wise) with another language. Evolution time is not an excuse to a mixed personality (even if perceived). For all it's evolution time and mistakes and idiotic size of the language to pay for C's sins and omissions I do not see C++ as mixed personality. I never did. It evolved consistently. Also, another language, Ada went through 1 standard and 3 major revisions in almost 35 years and retained it's personality basically unchanged. Too bad it was designed with a  Wirthian syntax, which IMO was one of the factors it doomed it.
>
> D went GC, but no quite mandatory GC, also not quite able to run its in entirety without GC, then in it's old age, went for cosmetic surgery to look like slim and sexy miss C. Much like a beautiful and capricious women with commitment issues and a fear of aging which went through 5 husbands. And it all started with a GC and several wrong defaults ....
>
>
>> [...]
>
> God knows. All "x" users of D would scream bloody murder, imo.

if that would become the d way and made us write memory safe code, why not? rust developers already have to write code under compiler dictated terms and nobody's complaining. d developers who write d code like java are small in numbers compared to those who don't. heck, i'll go even further and wish pure was also default.
December 27, 2017
On Wed, 2017-12-27 at 01:39 +0000, bachmeier via Digitalmars-d wrote:
> On Tuesday, 26 December 2017 at 19:34:35 UTC, Mike Franklin wrote:
> 
> > Rust is an example of a language that got it right.
> 
> Rust got it right for a single, very specialized use case. The cost is that the language is of interest to the tiny fraction of programmers for whom that use case is relevant. Most don't want to read a dissertation on memory management to write Hello World, and having a weirder syntax than Haskell doesn't help either. D is a programming language appropriate for many use cases.

Don't you believe it. Rust is attracting a lot of people and financial support from people who used C and failed to be interested in C++ because it didn't add memory safety. The example I am interested in is GStreamer. It's a C system that has C++, Python, D, etc. bindings but had no interested in not being a C system until Rust arrived. Now there is a huge push to it being a Rust system, exactly because Rust provides something C doesn't have and C++ didn't support. D wasn't an option here due to lack of knowledge by the GStreamer crew. Now D has no future in this arena despite GtkD providing a D binding, it is all Rust-bound.

-- 
Russel.
==========================================
Dr Russel Winder      t: +44 20 7585 2200
41 Buckmaster Road    m: +44 7770 465 077
London SW11 1EN, UK   w: www.russel.org.uk