Re: D is dead

2018-09-15 Thread Walter Bright via Digitalmars-d

On 8/22/2018 10:37 PM, Shachar Shemesh wrote:

Let's start with this one:
https://issues.dlang.org/show_bug.cgi?id=14246#c6


https://github.com/dlang/dmd/pull/8697



Re: D is dead

2018-09-05 Thread Ecstatic Coder via Digitalmars-d

Hang on a second.

assert(preserve == Yes.preserveAttributes);

Something is smelling an awful lot here.

Up to Windows 7 CopyFileW which is used for Windows didn't copy 
the attributes over[0] but it does now.


This is a bug on our end, which should include a fallback to 
copying manually the file contents over.


[0] 
https://docs.microsoft.com/en-us/windows/desktop/api/winbase/nf-winbase-copyfilew


Yeah, keeping exactly the same behavior on every supported 
platform is never easy.


And when you need to support Windows too, by experience I know it 
can quickly become a pain in the *ss...


Re: D is dead

2018-09-04 Thread Walter Bright via Digitalmars-d

https://issues.dlang.org/show_bug.cgi?id=19221


Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-04 Thread Ola Fosheim Grøstad via Digitalmars-d
On Tuesday, 4 September 2018 at 13:34:03 UTC, 
TheSixMillionDollarMan wrote:
I think D's 'core' problem, is that it's trying to compete 
with, what are now, widely used, powerful, and well supported 
languages, with sophisticate ecosystems in place already. 
C/C++/Java/C# .. just for beginners.


Yes, I believe there was an academic early on that allowed 
students to use D, but when C++17 (etc) came about he held the 
view that it would be better for D to align its semantics with 
C++. He was met with silence, except me, who supported that view. 
D is too much like C++ for a skilled modern C++ programmer to 
switch over, but D semantics are also too different to compile to 
C++ in a useful manner.


Then it's also trying to compete with startup languages (Go, 
Rust ) - and some of those languages have billion dollar 
organisations behind them, not to mention the talent levels of 
their *many* designers and contributors.


Ok, so my take on this is that Rust is in the same group as D 
right now,  and I consider it experimental as I am not convinced 
that it is sufficient for effective low level programming. 
Although Rust has more momentum, it depends too much on a single 
entity (with unclear profitability) despite being open sourced, 
just like D. Too much singular ownership. Go is also open source 
in theory, but if we put legalities aside then I think it is 
having the traits of a proprietary language. They are building up 
a solid runtime, and it has massive momentum within services, but 
the language itself is somewhat primitive and messy. Go could be 
a decent compilation target for a high level language.


That said , I think most languages don't compete directly with 
other languages, but compete within specific niches.


Rust: for writing services and command line programs where C++ 
would have been a natural candidate, but for people who want a 
higher level language or dislike C++.


Go: for writing web-services where Python, Java  and C# is 
expected to be too resource-intensive.


D: based on what seems to be recurring themes in the forums D 
seems to be  used by independent programmers (personal taste?) 
and programmers in finance that find interpreted languages too 
slow and aren't willing to adopt C++.


C++ is much more than just a langauge. It's an established, 
international treaty on what the language must be.


Yes, it is an ISO-standard, and evolve using a global 
standardisation community as input. As such it evolves with the 
feedback from a wide range of user groups by the nature of the 
process.


That is not a statement about the quality of D. It's a 
statement about the competitive nature of programming languages.


It kinda is both, but the issue is really what you aim to be 
supporting and what you do to move in that direction.


When there is no focus on any particular use case, just language 
features, then it becomes very difficult to move and difficult to 
engage people in a way that make them pull in the same direction.



I wonder has already happened to D.


No, it mostly comes down to a lack of focus and a process to back 
it up. Also, memory management should be the first feature to 
nail down, should come before language semantics...



I just do not see, how D can even defeat its' major competitors.


But are they really competitors? Is D predominantly used for 
writing web-services? What is D primarily used for? Fast 
scripting-style programming?


Instead D could be a place where those competitors come to look 
for great ideas (which, as I understand it, does occur .. 
ranges for example).


No, there are thousands of such languages. Each university has a 
handful of languages that they create in order to back their 
comp.sci. research.


No need to focus on performance in that setting.

You seem to be saying that, raising money so you can pay 
people, is enough.


But I wonder about that.


There has to be a focus based on analysis of where you can be a 
lot better for a specific use scenario, define the core goals 
that will enable something valuable for that scenario, then cut 
back on secondary ambitions and set up a process to achieve those 
core goals (pertaining to a concrete usage scenario).


Being everything for everybody isn't really a strategy. Unless 
you are Amazon, and not even then.


Without defining a core usage scenario you cannot really evaluate 
the situation or the process that has to be set up to change the 
situation...


Well, I've said this stuff many times before.



Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-04 Thread Ola Fosheim Grøstad via Digitalmars-d

On Friday, 24 August 2018 at 13:21:25 UTC, Jonathan M Davis wrote:
On Friday, August 24, 2018 6:05:40 AM MDT Mike Franklin via 
Digitalmars-d wrote:
> You're basically trying to bypass the OS' public API if 
> you're trying to bypass libc.


No I'm trying to bypass libc and use the OS API directly.


And my point is that most OSes consider libc to be their OS API 
(Linux doesn't, but it's very much abnormal in that respect).


Well, it used to be the case that it was normal to call OS 
directly by using traps, but since the context switch is so 
expensive on modern CPUs we a have a situation where the calling 
stub is a fraction of the calling cost these days. Thus most 
don't bother with it.


What usually can happen if you don't use the c-stubs with dynamic 
linkage is that your precompiled program won't work with new 
versions of the OS. But that can also happen with static linkage.


Trying to bypass it means reimplementing core OS functionality 
and risking all of the bugs that go with it.


It is the right thing to do for a low level language. Why have 
libc as a dependency if you want to enable hardware oriented 
programming? Using existing libraries also put limits on low 
level language semantics.


If you're talking about avoiding libc functions like strcmp 
that's one thing, but if you're talking about reimplementing 
stuff that uses syscalls, then honestly, I think that you're 
crazy.


No it isn't a crazy position, why the hostile tone? Libc isn't 
available in many settings. Not even in webassembly.





Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-04 Thread Ola Fosheim Grøstad via Digitalmars-d
The first search engines were created in 1993, google came 
along in 1998 after at least two dozen others in that list, and 
didn't make a profit till 2001. Some of those early competitors 
were giant "billion dollar global companies," yet it's google 
that dominates the web search engine market today.


Why is that?


Their original page-rank algorithm. Basically, they found an 
efficient way of emulating random clicks to all outgoing links 
from a page and thus got better search result rankings.


It was a matter of timing.



Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-04 Thread Neia Neutuladh via Digitalmars-d

On Tuesday, 4 September 2018 at 14:23:33 UTC, Joakim wrote:
The first search engines were created in 1993, google came 
along in 1998 after at least two dozen others in that list, and 
didn't make a profit till 2001. Some of those early competitors 
were giant "billion dollar global companies," yet it's google 
that dominates the web search engine market today.


Why is that? Well, for one, resources don't matter for software 
on the internet as much as ideas. It's not that resources don't 
matter, but that they take a back seat to your fundamental 
design and the ideas behind it.


Google had a $100k angel round in 1998 and a $25 million Series A 
in 1999. The difference between Google and the $12 billion-ish 
valued Lycos of the time was not insurmountable, yes, but $25 
million was enough to hire dozens of developers, lease offices, 
and buy the hardware they needed.


Similarly, we don't need Google-level funding to produce a 
developer ecosystem that's sufficiently polished not to be a 
blocker for corporate VS-only types who rely on autocomplete. But 
we need a bit more than $4k for that, or it's always going to be 
someone's personal project that's mostly complete but might be 
abandoned in six months.


Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-04 Thread Joakim via Digitalmars-d
On Tuesday, 4 September 2018 at 13:34:03 UTC, 
TheSixMillionDollarMan wrote:

On Tuesday, 4 September 2018 at 01:36:53 UTC, Mike Parker wrote:

On Monday, 3 September 2018 at 18:26:57 UTC, Chris wrote:

And of course, low manpower and funding aren't the complete 
picture. Management also play a role. Both Walter and Andrei 
have freely admitted they are not managers and that they're 
learning as they go. Mistakes have been made. In hindsight, 
some decisions should have gone a different way. But that is 
not the same as not caring, or not understanding/


So please, don't attribute any disingenuous motives to any of 
the core team members. They all want D to succeed. Identifying 
core problems and discussing ways to solve them is a more 
productive way to spend our bandwidth.


I think D's 'core' problem, is that it's trying to compete 
with, what are now, widely used, powerful, and well supported 
languages, with sophisticate ecosystems in place already. 
C/C++/Java/C# .. just for beginners.


Then it's also trying to compete with startup languages (Go, 
Rust ) - and some of those languages have billion dollar 
organisations behind them, not to mention the talent levels of 
their *many* designers and contributors.


C++ is much more than just a langauge. It's an established, 
international treaty on what the language must be.


Java is backed by Oracle (one the of the largest organisations 
in the world).


Go is backed by Google...Rust by Mozilla...(both billion dollar 
global companies).


So one has to wonder, what would motivate a person (or an 
organisation) to focus their attention on D.


That is not a statement about the quality of D. It's a 
statement about the competitive nature of programming languages.


If you've ever read 'No Contest - the case against competition' 
by Alfie Kohn, then you'd know (or at least you might agree 
with that statement) that competition  is not an inevitable 
part of human nature. "It warps recreation by turning the 
playing into a battlefield."


I wonder has already happened to D.

D should, perhaps, focus on being a place for recreation, where 
one can focus on technical excellence, instead of trying to 
compete in the battlefield.


I just do not see, how D can even defeat its' major competitors.

Instead D could be a place where those competitors come to look 
for great ideas (which, as I understand it, does occur .. 
ranges for example).


In any case, you have to work out what it is, that is going to 
motivate people to focus their attention on D.


You seem to be saying that, raising money so you can pay 
people, is enough.


But I wonder about that.


That's a good question, let me see if I can answer it.

Do you know what the first search engine for the web was and when 
it was created? It wasn't Yahoo, google, or Bing:


https://en.m.wikipedia.org/wiki/Web_search_engine#History

The first search engines were created in 1993, google came along 
in 1998 after at least two dozen others in that list, and didn't 
make a profit till 2001. Some of those early competitors were 
giant "billion dollar global companies," yet it's google that 
dominates the web search engine market today.


Why is that? Well, for one, resources don't matter for software 
on the internet as much as ideas. It's not that resources don't 
matter, but that they take a back seat to your fundamental design 
and the ideas behind it.


And coming up with that design and ideas takes time, the 
"developmental stage" that Laeeth refers to above. In that 
incubation stage, you're better off _not_ having a bunch of 
normal users who want a highly polished product, just a bunch of 
early adopters who can give you good feedback and are okay with 
rough edges. For D, that means all the advanced features don't 
fully play together well yet, and there are various bugs here and 
there. To use it, you have to be okay with that.


Now, it's a fair question to ask when D will leave that 
developmental stage and get more resources towards that polish, 
as Chris asks, and I'm not saying I know the answers to those 
questions. And let me be clear: as long as you don't push the 
envelope with mixing those advanced D features and are okay 
working around some bugs here and there, you're probably good now.


But simply asserting that others are rushing full-speed ahead 
with more resources and therefore they will win completely 
misunderstands how the game has changed online. Resources do 
matter, but they're not the dominant factor like they used to be 
for armies or manufacturing. Ideas are now the dominant factor, 
and D has plenty of those. ;)


Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-04 Thread TheSixMillionDollarMan via Digitalmars-d

On Tuesday, 4 September 2018 at 01:36:53 UTC, Mike Parker wrote:

On Monday, 3 September 2018 at 18:26:57 UTC, Chris wrote:

And of course, low manpower and funding aren't the complete 
picture. Management also play a role. Both Walter and Andrei 
have freely admitted they are not managers and that they're 
learning as they go. Mistakes have been made. In hindsight, 
some decisions should have gone a different way. But that is 
not the same as not caring, or not understanding/


So please, don't attribute any disingenuous motives to any of 
the core team members. They all want D to succeed. Identifying 
core problems and discussing ways to solve them is a more 
productive way to spend our bandwidth.


I think D's 'core' problem, is that it's trying to compete with, 
what are now, widely used, powerful, and well supported 
languages, with sophisticate ecosystems in place already. 
C/C++/Java/C# .. just for beginners.


Then it's also trying to compete with startup languages (Go, Rust 
) - and some of those languages have billion dollar 
organisations behind them, not to mention the talent levels of 
their *many* designers and contributors.


C++ is much more than just a langauge. It's an established, 
international treaty on what the language must be.


Java is backed by Oracle (one the of the largest organisations in 
the world).


Go is backed by Google...Rust by Mozilla...(both billion dollar 
global companies).


So one has to wonder, what would motivate a person (or an 
organisation) to focus their attention on D.


That is not a statement about the quality of D. It's a statement 
about the competitive nature of programming languages.


If you've ever read 'No Contest - the case against competition' 
by Alfie Kohn, then you'd know (or at least you might agree with 
that statement) that competition  is not an inevitable part of 
human nature. "It warps recreation by turning the playing into a 
battlefield."


I wonder has already happened to D.

D should, perhaps, focus on being a place for recreation, where 
one can focus on technical excellence, instead of trying to 
compete in the battlefield.


I just do not see, how D can even defeat its' major competitors.

Instead D could be a place where those competitors come to look 
for great ideas (which, as I understand it, does occur .. ranges 
for example).


In any case, you have to work out what it is, that is going to 
motivate people to focus their attention on D.


You seem to be saying that, raising money so you can pay people, 
is enough.


But I wonder about that.


Re: D is dead

2018-09-04 Thread rikki cattermole via Digitalmars-d

On 04/09/2018 10:27 PM, Ecstatic Coder wrote:

On Tuesday, 4 September 2018 at 09:56:13 UTC, rikki cattermole wrote:

On 04/09/2018 9:40 PM, Ecstatic Coder wrote:
But it seems that the latest version of "std.file.copy" now 
completely ignores the "PreserveAttributes.no" argument on Windows, 
which made recent Windows builds of Resync fail on read-only files.


What???

There is nothing in the changelog between 2.080.0 and 2.082.0 for 
changes to std.file.


Version from July 2017[0]. Version from 2.082.0[1]. They look the same 
to me.


[0] 
https://github.com/dlang/phobos/blob/d8959320e0c47a1861e32bbbf6a3ba30a019798e/std/file.d#L3430 


[1] https://github.com/dlang/phobos/blob/v2.082.0/std/file.d#L4216


Mayb I'm wrong, but what I can say is that I've recently updated DMD and 
compiled a windows build of Resync, and that I *HAD* to make 
Windows-specific code that removes the "read-only" attributes only on 
Windows.


attributes = source_file_path.getAttributes();
source_file_path.getTimes( access_time, modification_time );

version ( Windows )
{
     if ( target_file_path.exists() )
     {
     target_file_path.setAttributes( attributes & ~1 );
     }

     source_file_path.copy( target_file_path, PreserveAttributes.no );
     target_file_path.setAttributes( attributes & ~1 );
     target_file_path.setTimes( access_time, modification_time );
     target_file_path.setAttributes( attributes );
}
else
{
     if ( target_file_path.exists() )
     {
     target_file_path.setAttributes( 511 );
     }

     source_file_path.copy( target_file_path, PreserveAttributes.no );
     target_file_path.setAttributes( attributes );
     target_file_path.setTimes( access_time, modification_time );
}

Honestly I don't see why I have to make this ugly fix on Windows, while 
the Linux version has always worked fine on read-only files.


Hang on a second.

assert(preserve == Yes.preserveAttributes);

Something is smelling an awful lot here.

Up to Windows 7 CopyFileW which is used for Windows didn't copy the 
attributes over[0] but it does now.


This is a bug on our end, which should include a fallback to copying 
manually the file contents over.


[0] 
https://docs.microsoft.com/en-us/windows/desktop/api/winbase/nf-winbase-copyfilew


Re: D is dead

2018-09-04 Thread Ecstatic Coder via Digitalmars-d
On Tuesday, 4 September 2018 at 09:56:13 UTC, rikki cattermole 
wrote:

On 04/09/2018 9:40 PM, Ecstatic Coder wrote:
But it seems that the latest version of "std.file.copy" now 
completely ignores the "PreserveAttributes.no" argument on 
Windows, which made recent Windows builds of Resync fail on 
read-only files.


What???

There is nothing in the changelog between 2.080.0 and 2.082.0 
for changes to std.file.


Version from July 2017[0]. Version from 2.082.0[1]. They look 
the same to me.


[0] 
https://github.com/dlang/phobos/blob/d8959320e0c47a1861e32bbbf6a3ba30a019798e/std/file.d#L3430
[1] 
https://github.com/dlang/phobos/blob/v2.082.0/std/file.d#L4216


Mayb I'm wrong, but what I can say is that I've recently updated 
DMD and compiled a windows build of Resync, and that I *HAD* to 
make Windows-specific code that removes the "read-only" 
attributes only on Windows.


attributes = source_file_path.getAttributes();
source_file_path.getTimes( access_time, modification_time );

version ( Windows )
{
if ( target_file_path.exists() )
{
target_file_path.setAttributes( attributes & ~1 );
}

source_file_path.copy( target_file_path, 
PreserveAttributes.no );

target_file_path.setAttributes( attributes & ~1 );
target_file_path.setTimes( access_time, modification_time );
target_file_path.setAttributes( attributes );
}
else
{
if ( target_file_path.exists() )
{
target_file_path.setAttributes( 511 );
}

source_file_path.copy( target_file_path, 
PreserveAttributes.no );

target_file_path.setAttributes( attributes );
target_file_path.setTimes( access_time, modification_time );
}

Honestly I don't see why I have to make this ugly fix on Windows, 
while the Linux version has always worked fine on read-only files.




Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-04 Thread Laurent Tréguier via Digitalmars-d
On Tuesday, 4 September 2018 at 09:40:23 UTC, Ecstatic Coder 
wrote:
But it seems that the latest version of "std.file.copy" now 
completely ignores the "PreserveAttributes.no" argument on 
Windows, which made recent Windows builds of Resync fail on 
read-only files.


Very typical...

While D remains my favorite file scripting language, I must 
admit that this is quite disappointing for such an old 
language, compared to similar languages like Crystal.


Windows can simply be a pain to work with though. Look at Crystal 
itself, it doesn't support Windows natively as far as I know, so 
of course you won't have Windows-specific bugs in Crystal...


Re: D is dead

2018-09-04 Thread Ecstatic Coder via Digitalmars-d

On Thursday, 23 August 2018 at 06:34:01 UTC, nkm1 wrote:
On Thursday, 23 August 2018 at 05:37:12 UTC, Shachar Shemesh 
wrote:

Let's start with this one:
https://issues.dlang.org/show_bug.cgi?id=14246#c6

The problems I'm talking about are not easily fixable. They 
stem from features not playing well together.


One that hurt me lately was a way to pass a scoped lazy 
argument (i.e. - to specify that the implicit delegate need 
not allocate its frame, because it is not used outside the 
function call).


The only real problem with D is that it's a language designed 
with
GC in mind, yet there are numerous attempts to use it without 
GC.
Also, supporting GC-less programming gets in the way of 
improving

D's GC (which is pretty damn bad by modern standards).
That's the only real technical problem.
For example, the "bug" above just means that D doesn't support 
RAII
(in the C++ sense). That's hardly a *fatal flaw*. Lots of 
languages don't
support RAII. Python, Java, C# - tons of code were written in 
those.
And yes, most of those just use GC to dispose of memory - other 
resources
are rarely used (compared to memory) and it's not a problem to 
manage them

manually.
You also mentioned lazy parameters allocating... GC thing 
again. Just

allocate then? No?
IMO, if getting the maximum number of users is the main goal, D 
is indeed
going the wrong way. It would be better to get rid of @nogc, 
betterC, dip1000,
implement write barriers and use them to improve GC. Martin 
Nowak (I think)
mentioned that write barriers will decrease performance of D 
programs by 1-5%.
Seems like a small price to pay for better GC with shorter 
pauses. It would also
probably be simpler technically than stuff like dip1000 and 
rewriting Phobos.
Of course, maximizing the number of users is not the only goal, 
or even the
main one. My understanding is that Walter wants a "systems 
language" with
"zero cost abstractions". Well, it's very well possible that 
D's design

precludes that.
Other than memory management, I don't see any real fundamental 
problems.


+1

Making D a "true" C++ competitor is not going to happen soon.

Even Rust, which IS by definition a true C++ competitor (no GC, 
etc), will still find it very hard to replace C++ in its current 
niche markets, like embedded and game development.


While putting all the "funded" efforts in making D a *direct* 
competitor to GC languages (like Go, Crystal, C#, Java, etc) 
would be an achievable goal, IMHO...







Re: D is dead

2018-09-04 Thread rikki cattermole via Digitalmars-d

On 04/09/2018 9:40 PM, Ecstatic Coder wrote:
But it seems that the latest version of "std.file.copy" now completely 
ignores the "PreserveAttributes.no" argument on Windows, which made 
recent Windows builds of Resync fail on read-only files.


What???

There is nothing in the changelog between 2.080.0 and 2.082.0 for 
changes to std.file.


Version from July 2017[0]. Version from 2.082.0[1]. They look the same 
to me.


[0] 
https://github.com/dlang/phobos/blob/d8959320e0c47a1861e32bbbf6a3ba30a019798e/std/file.d#L3430

[1] https://github.com/dlang/phobos/blob/v2.082.0/std/file.d#L4216


Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-04 Thread Ecstatic Coder via Digitalmars-d
On Thursday, 23 August 2018 at 03:50:44 UTC, Shachar Shemesh 
wrote:

On 22/08/18 21:34, Ali wrote:

On Wednesday, 22 August 2018 at 17:42:56 UTC, Joakim wrote:
Pretty positive overall, and the negatives he mentions are 
fairly obvious to anyone paying attention.


Yea, I agree, the negatives are not really negative

Walter not matter how smart he is, he is one man who can work 
on the so many things at the same time


Its a chicken and egg situation, D needs more core 
contributors, and to get more contributors it needs more 
users, and to get more users it need more core contributors




No, no and no.

I was holding out on replying to this thread to see how the 
community would react. The vibe I'm getting, however, is that 
the people who are seeing D's problems have given up on 
affecting change.


It is no secret that when I joined Weka, I was a sole D 
detractor among a company quite enamored with the language. I 
used to have quite heated water cooler debates about that point 
of view.


Every single one of the people rushing to defend D at the time 
has since come around. There is still some debate on whether, 
points vs. counter points, choosing D was a good idea, but the 
overwhelming consensus inside Weka today is that D has *fatal* 
flaws and no path to fixing them.


And by "fatal", I mean literally flaws that are likely to 
literally kill the language.


And the thing that brought them around is not my power of 
persuasion. The thing that brought them around was spending a 
couple of years working with the language on an every-day basis.


And you will notice this in the way Weka employees talk on this 
forum: except me, they all disappeared. You used to see Idan, 
Tomer and Eyal post here. Where are they?


This forum is hostile to criticism, and generally tries to keep 
everyone using D the same way. If you're cutting edge D, the 
forum is almost no help at all. Consensus among former posters 
here is that it is generally a waste of time, so almost 
everyone left, and those who didn't, stopped posting.


And it's not just Weka. I've had a chance to talk in private to 
some other developers. Quite a lot have serious, fundamental 
issues with the language. You will notice none of them speaks 
up on this thread.


They don't see the point.

No technical project is born great. If you want a technical 
project to be great, the people working on it have to focus on 
its *flaws*. The D's community just doesn't do that.


To sum it up: fatal flaws + no path to fixing + no push from 
the community = inevitable eventual death.


With great regrets,
Shachar


Same feeling here btw.

I regularly have to face strange bugs while updating the compiler 
or its libraries.


For instance, my Resync tool used to work fine both on Windows 
and Linux.


But it seems that the latest version of "std.file.copy" now 
completely ignores the "PreserveAttributes.no" argument on 
Windows, which made recent Windows builds of Resync fail on 
read-only files.


Very typical...

While D remains my favorite file scripting language, I must admit 
that this is quite disappointing for such an old language, 
compared to similar languages like Crystal.




Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-04 Thread Laeeth Isharc via Digitalmars-d

On Tuesday, 4 September 2018 at 05:38:49 UTC, Iain Buclaw wrote:
On 4 September 2018 at 04:19, Laeeth Isharc via Digitalmars-d 
 wrote:

On Monday, 3 September 2018 at 16:07:21 UTC, RhyS wrote:


A good example being the resources going into DMD, LDC, 
GDC... 3 Compilers for one language, when even well funded 
languages stick to one compiler. And now some people think 
its a good idea to have DMD also cross compile because "its 
not hard to do". No, maybe not but who will do all the 
testing, what resources are going to spend when things do not 
work for some users ( and the negative impact on their 
experience )... Its a long list but people do not look past 
this. It sounds like fun, lets think / or do it.



What resources do you think go into GDC?  I think Iain would 
love to hear about all these resources because I am not sure 
he has been made aware of them because they don't exist beyond 
him and possibly a tiny number of others helping in part at 
certain stages.




*Looks behind self*

*Looks under desk*

*Looks under keyboard*

There must be resources somewhere, but none appear to be within 
reach. :-)


If Iain had a beer for every person that complained about the 
effort spent by team GDC without having first thanked him and his 
vast team then...


People are sometimes quite disconnected from reality.  At least I 
have no other explanation for people demanding others do this or 
do that without doing the minimum necessary to make it appealing 
for others to work on it.  I mean my experience is that you can 
pay people a lot of money and ask them beforehand do you want to 
work on X, and it's no guarantee they actually will be willing to 
when it comes to it.  Programmers in general can be very 
independent-minded people, and if somebody is looking for 
especially meek and compliant people then if you have come to the 
D forums you are in the wrong place!


One can be much more persuasive with positive words than 
complaints.  Most people are well aware of that so if they are 
complaining it's in my judgement because they want to complain.  
People with high standards will do that when they feel powerless. 
 I'm not talking here about notorious highly intelligent trolls 
like Ola and sock-puppets who never seem to actually write code 
in D.


But nobody who can keep up here is powerless.

It's possible to change the world you know, and from the most 
unpromising start.  Forget about what's realistic, and focus on 
what you want to achieve.  Believe me, you can achieve an awful 
lot from the most unpromising start.


People talk about how most people are not super-hackers and one 
shouldn't expect them to manage without polish.  Well hacker is a 
state of mind,a way of being in the world.  Ask Iain if his 
self-conception is as a super-hacker with l33t skillz that a mere 
professional programmer couldn't match and you might be surprised 
(I think his self-conception might be wrong, but that's Dunning 
Kruger in action for you).


It's really much more about values and virtues then capabilities. 
 Are you able to tolerate discomfort and the accurate initial 
feeling of conscious incompetence?  Because that's what real 
learning feels like once you leave the spoon-feeding stream of 
education.


D is a gift to the world from Walter, Andrei, and those who 
contributed after it was begun.  Just demanding people do stuff 
for you without doing anything to contribute back - that's not 
how life works.


I don't think I have ever seen this degree of a feeling of 
entitlement in my life! And I've been working in finance since 
1993.


If doesn't want to pay money towards the development of IDE 
integration, doesn't want to do any work themselves, then the 
least they could do is draw up a feature list of what's missing 
and find a way to help from time to time with the organisation of 
the work.


That's the only way things ever get done anyway.

Have you noticed how the documentation has gotten much better?  
Runnable examples too.  Did that happen because people 
complained?  No - it happened because Seb Wilzbach (and maybe 
others) took the initiative to make it happen and did the work 
themselves.


A little money goes a long way in open source.  So if you're a 
company and you're complaining and not donating money to the 
Foundation then what exactly do you expect?  We have a few 
support contracts with MongoDB (a choice made before I got 
involved) and the legal fees alone were 20k and we pay about 30k 
USD a year.  If a few companies contributed at that scale to the 
Foundation that's at least a couple of full-time developers.


And if you disagree with Andrei and Walter choices about 
priorities you know you can just direct where the money should be 
spent as we are with SAoC.





Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-04 Thread Ola Fosheim Grøstad via Digitalmars-d

On Monday, 3 September 2018 at 16:41:32 UTC, Iain Buclaw wrote:
15 years ago, people were complaining that there was only one D 
compiler.  It is ironic that people now complain that there's 
too many.


One needs multiple implementations to confirm the accuracy of the 
language specification. D still has one implementation, i.e. one 
compiler with multiple backends, distributed as multiple 
executables (with tweaks).


Anyway, I think people complained about the first and only 
compiler being non-free. That's not relevant  now, of course.




Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-04 Thread Chris via Digitalmars-d

On Tuesday, 4 September 2018 at 01:36:53 UTC, Mike Parker wrote:

On Monday, 3 September 2018 at 18:26:57 UTC, Chris wrote:



I think this sort of misunderstanding is the source of a lot 
of friction on this forum. Some users think (or in my case: 
thought) that D will be a sound and stable language one day, a 
language they can use for loads of stuff, while the leadership 
prefers to keep it at a stage where they can test ideas to see 
what works and what doesn't, wait let me rephrase this, where 
the user can test other people's ideas with every new release.




First of all, thanks a lot for your answer. I appreciate it. I 
have to know where I'm standing in order to be able to plan 
ahead. I don't think this is unreasonable.


D is not a petri dish for testing ideas. It's not an 
experiment. It's a serious language. Walter, Andrei, and 
everyone involved in maintaining and developing it want to see 
it succeed. They aren't just treading water, wasting everyone's 
time. And I know you keep hearing this, but I'll say it anyway: 
most of the development is based on volunteer work, and trying 
to get volunteers to do anything they don't want to do is like 
asking them to voluntarily have their teeth pulled when they 
don't need to.


I have no doubt at all that Walter, Andrei et al are a 100% 
serious about D, as in "a professional tool" and I do not 
question their expertise and experience. However, for a bit more 
than a year I've been under the impression that scarce resources 
are spent on features and details that are not critical to 
production when you use D, while more basic things that are 
sometimes not related to D as such are put on the long finger.


Walter has said that people come to him and ask what they 
should work on. He provides them with a list of priority tasks. 
Then they go off and work on something else. That's the nature 
of unsponsored open-source development and has been the biggest 
challenge for D for years.


I can imagine that. This is why volunteers are not the way to go 
when it comes to core development and the ecosystem. This is why 
foundations with a lot of funding and IT companies spend a lot of 
resources on these two aspects.


I have high hopes that some of this can be turned around by 
raising more money and I have long-term plans to try and 
facilitate that over the coming months. With more money, we can 
get people to work on targeted tasks even when they have no 
vested interest in it. We can pull in full-time coders, maybe 
get someone to oversee PR reviews so they don't stay open so 
long, fund development of broader ecosystem projects.


There isn't anyone involved in the core D development who isn't 
aware of the broader issues in the community or the ecosystem, 
and they are working to bring improvements. I have been around 
this community since 2003. From my perspective, it has been one 
continuous march of progress. Sometimes slow, sometimes fast, 
but always moving, always getting better. And right now there 
are more people involved than ever in moving it forward.


Unfortunately, there are also more demands on more fronts than 
ever. There are longtime users who become increasingly 
frustrated when the issues that matter to them still aren't 
resolved, newcomers who have no context of all the progress 
that has been made and instead hold D in comparison to Rust, 
Go, and other languages that have stronger backing and more 
manpower. That's perfectly legitimate.


Which is what I've been talking about in this thread. D is too 
old to live with its parents :) Too many people already use it in 
production or are interested in it. There are a) longtime users 
who still have to put up with OSS style hacks and are growing 
tired of it (after years of putting in a lot of effort). There 
are b) new users who are put off by the lack of a smooth 
ecosystem. And both groups are told that "that's the way we do 
things around here".


And of course, low manpower and funding aren't the complete 
picture. Management also play a role. Both Walter and Andrei 
have freely admitted they are not managers and that they're 
learning as they go. Mistakes have been made. In hindsight, 
some decisions should have gone a different way. But that is 
not the same as not caring, or not understanding/


Exactly. As I said in an earlier message, it's not just the money 
(or the lack thereof), it's the approach. In my opinion Both 
Walter and Andrei should hire a manager who is not involved in 
the core development. If you're involved in the core development 
you cannot be managing things at the same time and "learn as you 
go along". That's a recipe for disaster. It's not a good idea to 
mix management and development because they are two completely 
different things, and you might end up not being good at any of 
them.


A manager could lay down a practical road map based on what users 
need _most_, secure funding and direct the funding towards the 
most urgent issues. Everyone 

Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-04 Thread Ola Fosheim Grøstad via Digitalmars-d

On Tuesday, 4 September 2018 at 01:36:53 UTC, Mike Parker wrote:

D is not a petri dish for testing ideas. It's not an experiment.


Well, the general consensus for programming languages is that it 
a language is experimental
 (or proprietary) until it is fully specced out as a stable 
formal standard with multiple _independent_ implementations...




Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-04 Thread Laurent Tréguier via Digitalmars-d

On Tuesday, 4 September 2018 at 02:19:20 UTC, Laeeth Isharc wrote:

On Monday, 3 September 2018 at 16:07:21 UTC, RhyS wrote:
On Monday, 3 September 2018 at 15:41:48 UTC, Laurent Tréguier 
wrote:
Yes. It almost sounds like a smooth experience would be a bad 
thing to have, especially with the classic "you don't need an 
IDE anyway" speech. Editing experience seems often dismissed 
as unimportant, when it's one of the first things new users 
will come across when trying out D. First impressions can 
matter a lot.


I didn't give a you don't need an IDE speech, and I didn't say 
a smooth experience was a bad thing.


I know, I know. But it's always the same story, whenever people 
wonder about D's state in IDE integration, often other people 
will just say that vim + terminal is enough.


But in my experience a strong reality orientation leads to good 
things coming out of life and telling the universe it should be 
something different from what it is is a recipe for misery and 
suffering, and why would you do that to yourself?


So if you want the world to be different, come up with a plan.  
It could be I am going to donate X dollars a month to the 
Foundation to fund IDE development, or if could be figuring out 
how you can help with the work in whatever way.  But just 
grumbling - I really think that mistakes the nature of the 
situation, and not to mention human psychology.  You can 
accomplish things with a vision that's thought through and 
inspires others.  Negativity is part of being creative but not 
if you stop there.


I stated it in an earlier post, I've been working on editor/IDE 
integration myself because of this. I don't just grumble, 
although I do like grumbling a lot :)


Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-03 Thread Laurent Tréguier via Digitalmars-d

On Monday, 3 September 2018 at 22:30:47 UTC, Chris wrote:
On Monday, 3 September 2018 at 18:52:45 UTC, Laurent Tréguier 
wrote:

On Monday, 3 September 2018 at 18:26:57 UTC, Chris wrote:
it should come with a warning label that says "D is in many 
parts still at an experimental stage and ships with no 
guarantees whatsoever. Use at your own risk."


Well it comes with the Boost license that says: `THE SOFTWARE 
IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND`


You know exactly what I mean, don't you?


I think I know what you mean. But licenses are not decorative. If 
it says "WITHOUT WARRANTY OF ANY KIND", it means that it actually 
comes without warranty of any kind.


Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-03 Thread Iain Buclaw via Digitalmars-d
On 4 September 2018 at 04:19, Laeeth Isharc via Digitalmars-d
 wrote:
> On Monday, 3 September 2018 at 16:07:21 UTC, RhyS wrote:
>>
>> A good example being the resources going into DMD, LDC, GDC... 3 Compilers
>> for one language, when even well funded languages stick to one compiler. And
>> now some people think its a good idea to have DMD also cross compile because
>> "its not hard to do". No, maybe not but who will do all the testing, what
>> resources are going to spend when things do not work for some users ( and
>> the negative impact on their experience )... Its a long list but people do
>> not look past this. It sounds like fun, lets think / or do it.
>
>
> What resources do you think go into GDC?  I think Iain would love to hear
> about all these resources because I am not sure he has been made aware of
> them because they don't exist beyond him and possibly a tiny number of
> others helping in part at certain stages.
>

*Looks behind self*

*Looks under desk*

*Looks under keyboard*

There must be resources somewhere, but none appear to be within reach. :-)


Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-03 Thread Manu via Digitalmars-d
On Mon, 3 Sep 2018 at 19:35, Laeeth Isharc via Digitalmars-d
 wrote:
>
> On Tuesday, 4 September 2018 at 02:24:25 UTC, Manu wrote:
> > On Mon, 3 Sep 2018 at 18:45, Laeeth Isharc via Digitalmars-d
> >  wrote:
> >>
> >> On Monday, 3 September 2018 at 17:15:03 UTC, Laurent Tréguier
> >> wrote:
> >> > On Monday, 3 September 2018 at 16:55:10 UTC, Jonathan M
> >> > Davis wrote:
> >> >> Most of the work that gets done is the stuff that the folks
> >> >> contributing think is the most important - frequently what
> >> >> is most important for them for what they do, and very few
> >> >> (if any) of the major contributors use or care about IDEs
> >> >> for their own use. And there's tons to do that has nothing
> >> >> to do with IDEs. There are folks who care about it enough
> >> >> to work on it, which is why projects such as VisualD exist
> >> >> at all, and AFAIK, they work reasonably well, but the only
> >> >> two ways that they're going to get more work done on them
> >> >> than is currently happening is if the folks who care about
> >> >> that sort of thing contribute or if they donate money for
> >> >> it to be worked on. Not long ago, the D Foundation
> >> >> announced that they were going to use donations to pay
> >> >> someone to work on his plugin for Visual Studio Code:
> >> >>
> >> >> https://forum.dlang.org/post/rmqvglgccmgoajmhy...@forum.dlang.org
> >> >>
> >> >> So, if you want stuff like that to get worked on, then
> >> >> donate or pitch in.
> >> >>
> >> >> The situation with D - both with IDEs and in general - has
> >> >> improved greatly over time even if it may not be where you
> >> >> want it to be. But if you're ever expecting IDE support to
> >> >> be a top priority of many of the contributors, then you're
> >> >> going to be sorely disappointed. It's the sort of thing
> >> >> that we care about because we care about D being
> >> >> successful, but it's not the sort of thing that we see any
> >> >> value in whatsoever for ourselves, and selfish as it may
> >> >> be, when we spend the time to contribute to D, we're
> >> >> generally going to work on the stuff that we see as having
> >> >> the most value for getting done what we care about. And
> >> >> there's a lot to get done which impacts pretty much every D
> >> >> user and not just those who want something that's
> >> >> IDE-related.
> >> >>
> >> >> - Jonathan M Davis
> >> >
> >> > The complaints I have is exactly why I'm myself maintaining
> >> > plugins for VSCode, Atom, and others soon. Don't worry, I
> >> > still
> >> > think D is worth putting some time and effort into and I know
> >> > actions generally get more things done than words.
> >> > I also know that tons of stuff is yet to be done in regards
> >> > to
> >> > the actual compilers and such.
> >> >
> >> > It just baffles me a bit to see the state of D in this
> >> > department, when languages like Go or Rust (hooray for yet
> >> > another comparison to Go and Rust) are a lot younger, but
> >> > already have what looks like very good tooling.
> >> > Then again they do have major industry players backing them
> >> > though...
> >>
> >> Why is Go's IDE support baffling?  It was a necessity to
> >> achieve Google's commercial aims, I should think.
> >>
> >> "
> >> The key point here is our programmers are Googlers, they’re not
> >> researchers. They’re typically, fairly young, fresh out of
> >> school, probably learned Java, maybe learned C or C++, probably
> >> learned Python. They’re not capable of understanding a
> >> brilliant
> >> language but we want to use them to build good software. So,
> >> the
> >> language that we give them has to be easy for them to
> >> understand
> >> and easy to adopt."
> >>   – Rob Pike
> >>
> >> I don't know the story of Rust, but if I were working on a
> >> project as large as Firefox I guess I would want an IDE too!
> >> Whereas it doesn't seem like it's so important to some of D's
> >> commercial users because they have a different context.
> >>
> >> I don't think it's overall baffling that D hasn't got the best
> >> IDE support of emerging languages.  The people that contribute
> >> to it, as Jonathan says, seen to be leas interested in IDEs
> >> and no company has found it important enough to pay someone
> >> else to work on it.  So far anyway but as adoption grows maybe
> >> that will change.
> >
> > It's been a key hurdle for as long as I've been around here.
> > I've been saying for 10 years that no company I've ever worked
> > at can
> > take D seriously without industry standard IDE support.
> > My feeling is that we have recently reached MVP status...
> > that's a
> > huge step, 10 years in the making ;)
> > I think it's now at a point where more people *wouldn't* reject
> > it on
> > contact than those who would. But we need to go much further to
> > make
> > developers genuinely comfortable, and thereby go out of their
> > way to
> > prefer using D than C++ and pitch as such to their managers.
> > Among all developers I've demo-ed or 

Re: D is dead

2018-09-03 Thread Walter Bright via Digitalmars-d

On 9/3/2018 7:19 PM, Laeeth Isharc wrote:
The way for D to appeal to more people is not to address 
the complaints of those who spend more time writing on the forum grumbling but 
don't use it much, because in my experience you do much better appealing to the 
people who are your best customers than to those who tell you if only you could 
do X there would be huge demand.  I think that has been Walter's experience too.


I've bin in this business a long time. Fun anecdotes:

---

I was out jogging with a colleague in the 1990's one day. He said what the world 
really needs, and what he really needed, was a Java implementation that 
generated native code. It would set the world on fire!


I told him I wrote one, he could get it today from Symantec. He never said 
another word on the subject. It turns out nobody wanted a native Java compiler.


---

Back in the old Datalight days in the 1980s, a big customer said they couldn't 
use Datalight C because it didn't have Feature X. If only it had X, they'd place 
a Big Order. So I implemented X, and excitedly showed it to them and asked for 
the Big Order. They hemmed and hawed, then said what they really needed was 
Feature Y!


After that, I was a lot less credulous of dangling promises of a Big Order. I'd 
often say sure, and ask for an advance on the order, which worked well at 
filtering out the chain-jerking.


---

Related to me by a friend: X told me that what he really wanted in a C++ 
compiler was compile speed. It was the most important feature. He went on and on 
about it. I laughed and said that compile speed was at the bottom of his list. 
He looked perplexed, and asked how could I say that? I told him that he was 
using Cfront, a translator, with Microsoft C as the backend, a combination that 
compiled 4 times slower than Zortech C++, and didn't have critical (for DOS) 
features like near/far pointers. What he really regarded as the most important 
feature was being a name brand.


---

Henry Ford said that his market research suggested that people wanted a faster 
horse.


---

Trying to figure out where we should allocate our scarce resources is probably 
the most difficult task I face. I know it looks easy, but it is all too easy to 
wind up with a faster horse when everyone else developed a car.


Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-03 Thread Laeeth Isharc via Digitalmars-d

On Tuesday, 4 September 2018 at 02:24:25 UTC, Manu wrote:
On Mon, 3 Sep 2018 at 18:45, Laeeth Isharc via Digitalmars-d 
 wrote:


On Monday, 3 September 2018 at 17:15:03 UTC, Laurent Tréguier 
wrote:
> On Monday, 3 September 2018 at 16:55:10 UTC, Jonathan M 
> Davis wrote:
>> Most of the work that gets done is the stuff that the folks 
>> contributing think is the most important - frequently what 
>> is most important for them for what they do, and very few 
>> (if any) of the major contributors use or care about IDEs 
>> for their own use. And there's tons to do that has nothing 
>> to do with IDEs. There are folks who care about it enough 
>> to work on it, which is why projects such as VisualD exist 
>> at all, and AFAIK, they work reasonably well, but the only 
>> two ways that they're going to get more work done on them 
>> than is currently happening is if the folks who care about 
>> that sort of thing contribute or if they donate money for 
>> it to be worked on. Not long ago, the D Foundation 
>> announced that they were going to use donations to pay 
>> someone to work on his plugin for Visual Studio Code:

>>
>> https://forum.dlang.org/post/rmqvglgccmgoajmhy...@forum.dlang.org
>>
>> So, if you want stuff like that to get worked on, then 
>> donate or pitch in.

>>
>> The situation with D - both with IDEs and in general - has 
>> improved greatly over time even if it may not be where you 
>> want it to be. But if you're ever expecting IDE support to 
>> be a top priority of many of the contributors, then you're 
>> going to be sorely disappointed. It's the sort of thing 
>> that we care about because we care about D being 
>> successful, but it's not the sort of thing that we see any 
>> value in whatsoever for ourselves, and selfish as it may 
>> be, when we spend the time to contribute to D, we're 
>> generally going to work on the stuff that we see as having 
>> the most value for getting done what we care about. And 
>> there's a lot to get done which impacts pretty much every D 
>> user and not just those who want something that's 
>> IDE-related.

>>
>> - Jonathan M Davis
>
> The complaints I have is exactly why I'm myself maintaining
> plugins for VSCode, Atom, and others soon. Don't worry, I 
> still

> think D is worth putting some time and effort into and I know
> actions generally get more things done than words.
> I also know that tons of stuff is yet to be done in regards 
> to

> the actual compilers and such.
>
> It just baffles me a bit to see the state of D in this
> department, when languages like Go or Rust (hooray for yet
> another comparison to Go and Rust) are a lot younger, but
> already have what looks like very good tooling.
> Then again they do have major industry players backing them
> though...

Why is Go's IDE support baffling?  It was a necessity to 
achieve Google's commercial aims, I should think.


"
The key point here is our programmers are Googlers, they’re not
researchers. They’re typically, fairly young, fresh out of
school, probably learned Java, maybe learned C or C++, probably
learned Python. They’re not capable of understanding a 
brilliant
language but we want to use them to build good software. So, 
the
language that we give them has to be easy for them to 
understand

and easy to adopt."
  – Rob Pike

I don't know the story of Rust, but if I were working on a 
project as large as Firefox I guess I would want an IDE too! 
Whereas it doesn't seem like it's so important to some of D's 
commercial users because they have a different context.


I don't think it's overall baffling that D hasn't got the best 
IDE support of emerging languages.  The people that contribute 
to it, as Jonathan says, seen to be leas interested in IDEs 
and no company has found it important enough to pay someone 
else to work on it.  So far anyway but as adoption grows maybe 
that will change.


It's been a key hurdle for as long as I've been around here.
I've been saying for 10 years that no company I've ever worked 
at can

take D seriously without industry standard IDE support.
My feeling is that we have recently reached MVP status... 
that's a

huge step, 10 years in the making ;)
I think it's now at a point where more people *wouldn't* reject 
it on
contact than those who would. But we need to go much further to 
make
developers genuinely comfortable, and thereby go out of their 
way to

prefer using D than C++ and pitch as such to their managers.
Among all developers I've demo-ed or introduced recently, I can 
say
for certain that developer enthusiasm is driven by their 
perception of

the tooling in the order of 10x more than the language.


That's only because you insist on working for companies where 
people use IDEs and think the ones that don't must be in boring 
industries :)


Kidding aside, would you care to enumerate what capabilities are 
missing that would tip the balance for such people were they to 
be there?


And then would you care to estimate the degree of 

Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-03 Thread Manu via Digitalmars-d
On Mon, 3 Sep 2018 at 18:45, Laeeth Isharc via Digitalmars-d
 wrote:
>
> On Monday, 3 September 2018 at 17:15:03 UTC, Laurent Tréguier
> wrote:
> > On Monday, 3 September 2018 at 16:55:10 UTC, Jonathan M Davis
> > wrote:
> >> Most of the work that gets done is the stuff that the folks
> >> contributing think is the most important - frequently what is
> >> most important for them for what they do, and very few (if
> >> any) of the major contributors use or care about IDEs for
> >> their own use. And there's tons to do that has nothing to do
> >> with IDEs. There are folks who care about it enough to work on
> >> it, which is why projects such as VisualD exist at all, and
> >> AFAIK, they work reasonably well, but the only two ways that
> >> they're going to get more work done on them than is currently
> >> happening is if the folks who care about that sort of thing
> >> contribute or if they donate money for it to be worked on. Not
> >> long ago, the D Foundation announced that they were going to
> >> use donations to pay someone to work on his plugin for Visual
> >> Studio Code:
> >>
> >> https://forum.dlang.org/post/rmqvglgccmgoajmhy...@forum.dlang.org
> >>
> >> So, if you want stuff like that to get worked on, then donate
> >> or pitch in.
> >>
> >> The situation with D - both with IDEs and in general - has
> >> improved greatly over time even if it may not be where you
> >> want it to be. But if you're ever expecting IDE support to be
> >> a top priority of many of the contributors, then you're going
> >> to be sorely disappointed. It's the sort of thing that we care
> >> about because we care about D being successful, but it's not
> >> the sort of thing that we see any value in whatsoever for
> >> ourselves, and selfish as it may be, when we spend the time to
> >> contribute to D, we're generally going to work on the stuff
> >> that we see as having the most value for getting done what we
> >> care about. And there's a lot to get done which impacts pretty
> >> much every D user and not just those who want something that's
> >> IDE-related.
> >>
> >> - Jonathan M Davis
> >
> > The complaints I have is exactly why I'm myself maintaining
> > plugins for VSCode, Atom, and others soon. Don't worry, I still
> > think D is worth putting some time and effort into and I know
> > actions generally get more things done than words.
> > I also know that tons of stuff is yet to be done in regards to
> > the actual compilers and such.
> >
> > It just baffles me a bit to see the state of D in this
> > department, when languages like Go or Rust (hooray for yet
> > another comparison to Go and Rust) are a lot younger, but
> > already have what looks like very good tooling.
> > Then again they do have major industry players backing them
> > though...
>
> Why is Go's IDE support baffling?  It was a necessity to achieve
> Google's commercial aims, I should think.
>
> "
> The key point here is our programmers are Googlers, they’re not
> researchers. They’re typically, fairly young, fresh out of
> school, probably learned Java, maybe learned C or C++, probably
> learned Python. They’re not capable of understanding a brilliant
> language but we want to use them to build good software. So, the
> language that we give them has to be easy for them to understand
> and easy to adopt."
>   – Rob Pike
>
> I don't know the story of Rust, but if I were working on a
> project as large as Firefox I guess I would want an IDE too!
> Whereas it doesn't seem like it's so important to some of D's
> commercial users because they have a different context.
>
> I don't think it's overall baffling that D hasn't got the best
> IDE support of emerging languages.  The people that contribute to
> it, as Jonathan says, seen to be leas interested in IDEs and no
> company has found it important enough to pay someone else to work
> on it.  So far anyway but as adoption grows maybe that will
> change.

It's been a key hurdle for as long as I've been around here.
I've been saying for 10 years that no company I've ever worked at can
take D seriously without industry standard IDE support.
My feeling is that we have recently reached MVP status... that's a
huge step, 10 years in the making ;)
I think it's now at a point where more people *wouldn't* reject it on
contact than those who would. But we need to go much further to make
developers genuinely comfortable, and thereby go out of their way to
prefer using D than C++ and pitch as such to their managers.
Among all developers I've demo-ed or introduced recently, I can say
for certain that developer enthusiasm is driven by their perception of
the tooling in the order of 10x more than the language.



Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-03 Thread Laeeth Isharc via Digitalmars-d

On Monday, 3 September 2018 at 16:07:21 UTC, RhyS wrote:
On Monday, 3 September 2018 at 15:41:48 UTC, Laurent Tréguier 
wrote:
Yes. It almost sounds like a smooth experience would be a bad 
thing to have, especially with the classic "you don't need an 
IDE anyway" speech. Editing experience seems often dismissed 
as unimportant, when it's one of the first things new users 
will come across when trying out D. First impressions can 
matter a lot.


I didn't give a you don't need an IDE speech, and I didn't say a 
smooth experience was a bad thing.


But in my experience a strong reality orientation leads to good 
things coming out of life and telling the universe it should be 
something different from what it is is a recipe for misery and 
suffering, and why would you do that to yourself?


So if you want the world to be different, come up with a plan.  
It could be I am going to donate X dollars a month to the 
Foundation to fund IDE development, or if could be figuring out 
how you can help with the work in whatever way.  But just 
grumbling - I really think that mistakes the nature of the 
situation, and not to mention human psychology.  You can 
accomplish things with a vision that's thought through and 
inspires others.  Negativity is part of being creative but not if 
you stop there.



Its the same issue why Linux as a Desktop has been stuck with 
almost no growth. Its easy to break things ( nvidia graphical 
driver *lol* ), too much is so focused on the Cli that people 
who do have a issue and are not system users quick run into a 
flooding swamp.


Too much resources split among too many distributions, 
graphical desktops etc. Choice is good but too much choice 
means projects are starved for resources, comparability are 
issues, bugs are even more present, ...


Chrome books and Android seem to be doing okay.  I run Linux on 
the desktop and have done full-time since 2014.  Maybe you're 
right that it's not for everyone at this point.  And so ?  There 
just wasn't a path for people to put effort into making it 
utterly easy for non technical people beyond a certain point.  
Does that mean Linux or Linux on the desktop has failed?  I don't 
think so.  It's just not for everyone.
It's interesting to see Microsoft making it possible to run Linux 
on Windows - turns out a minority audience can be an important 
audience.


A good example being the resources going into DMD, LDC, GDC... 
3 Compilers for one language, when even well funded languages 
stick to one compiler. And now some people think its a good 
idea to have DMD also cross compile because "its not hard to 
do". No, maybe not but who will do all the testing, what 
resources are going to spend when things do not work for some 
users ( and the negative impact on their experience )... Its a 
long list but people do not look past this. It sounds like fun, 
lets think / or do it.


What resources do you think go into GDC?  I think Iain would love 
to hear about all these resources because I am not sure he has 
been made aware of them because they don't exist beyond him and 
possibly a tiny number of others helping in part at certain 
stages.


Its just so frustrating that a lot of people here do not 
understand. Most programmers are not open-source developers, 
they are not coding gods, they are simply people who want 
things to good smooth. Install compiler, install good supported 
graphical IDE ( and no, VIM does not count! ), read up some 
simple documentation and off we go... We are not looking to be 
bug testers, core code implementer's, etc...


Sure, and probably most people would be better off at this point 
using a language that makes getting started easy.  One doesn't 
need to appeal to most people to succeed.  That's just a 
pragmatic statement of the obvious.  In time it will change but j 
don't see how recognising your observation could rationally lead 
anyone to do something differently from what they would have done 
before.


To change the world you need a goal and a first cut at a plan for 
getting there. Whether the goal is entirely realistic is much 
less important than having a plan to begin.  And I speak from 
experience here having at certain points not much more than that.



Selfish, ... sure ... but this is how D gain more people. The 
more people work with your language, the more potential people 
you have that slowly are interested in helping out.


I disagree.  At this point the way for D to appeal to more people 
is to increase its appeal just a bit more to those who are 
already on the cusp of using D or would be if they had looked 
into it and to those who  use D already in some way but could use 
it more. The way for D to appeal to more people is not to address 
the complaints of those who spend more time writing on the forum 
grumbling but don't use it much, because in my experience you do 
much better appealing to the people who are your best customers 
than to those who tell you if only you could do X there 

Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-03 Thread Laeeth Isharc via Digitalmars-d
On Monday, 3 September 2018 at 17:15:03 UTC, Laurent Tréguier 
wrote:
On Monday, 3 September 2018 at 16:55:10 UTC, Jonathan M Davis 
wrote:
Most of the work that gets done is the stuff that the folks 
contributing think is the most important - frequently what is 
most important for them for what they do, and very few (if 
any) of the major contributors use or care about IDEs for 
their own use. And there's tons to do that has nothing to do 
with IDEs. There are folks who care about it enough to work on 
it, which is why projects such as VisualD exist at all, and 
AFAIK, they work reasonably well, but the only two ways that 
they're going to get more work done on them than is currently 
happening is if the folks who care about that sort of thing 
contribute or if they donate money for it to be worked on. Not 
long ago, the D Foundation announced that they were going to 
use donations to pay someone to work on his plugin for Visual 
Studio Code:


https://forum.dlang.org/post/rmqvglgccmgoajmhy...@forum.dlang.org

So, if you want stuff like that to get worked on, then donate 
or pitch in.


The situation with D - both with IDEs and in general - has 
improved greatly over time even if it may not be where you 
want it to be. But if you're ever expecting IDE support to be 
a top priority of many of the contributors, then you're going 
to be sorely disappointed. It's the sort of thing that we care 
about because we care about D being successful, but it's not 
the sort of thing that we see any value in whatsoever for 
ourselves, and selfish as it may be, when we spend the time to 
contribute to D, we're generally going to work on the stuff 
that we see as having the most value for getting done what we 
care about. And there's a lot to get done which impacts pretty 
much every D user and not just those who want something that's 
IDE-related.


- Jonathan M Davis


The complaints I have is exactly why I'm myself maintaining 
plugins for VSCode, Atom, and others soon. Don't worry, I still 
think D is worth putting some time and effort into and I know 
actions generally get more things done than words.
I also know that tons of stuff is yet to be done in regards to 
the actual compilers and such.


It just baffles me a bit to see the state of D in this 
department, when languages like Go or Rust (hooray for yet 
another comparison to Go and Rust) are a lot younger, but 
already have what looks like very good tooling.
Then again they do have major industry players backing them 
though...


Why is Go's IDE support baffling?  It was a necessity to achieve 
Google's commercial aims, I should think.


"
The key point here is our programmers are Googlers, they’re not 
researchers. They’re typically, fairly young, fresh out of 
school, probably learned Java, maybe learned C or C++, probably 
learned Python. They’re not capable of understanding a brilliant 
language but we want to use them to build good software. So, the 
language that we give them has to be easy for them to understand 
and easy to adopt."

 – Rob Pike

I don't know the story of Rust, but if I were working on a 
project as large as Firefox I guess I would want an IDE too!  
Whereas it doesn't seem like it's so important to some of D's 
commercial users because they have a different context.


I don't think it's overall baffling that D hasn't got the best 
IDE support of emerging languages.  The people that contribute to 
it, as Jonathan says, seen to be leas interested in IDEs and no 
company has found it important enough to pay someone else to work 
on it.  So far anyway but as adoption grows maybe that will 
change.




Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-03 Thread Mike Parker via Digitalmars-d

On Monday, 3 September 2018 at 18:26:57 UTC, Chris wrote:



I think this sort of misunderstanding is the source of a lot of 
friction on this forum. Some users think (or in my case: 
thought) that D will be a sound and stable language one day, a 
language they can use for loads of stuff, while the leadership 
prefers to keep it at a stage where they can test ideas to see 
what works and what doesn't, wait let me rephrase this, where 
the user can test other people's ideas with every new release.


D is not a petri dish for testing ideas. It's not an experiment. 
It's a serious language. Walter, Andrei, and everyone involved in 
maintaining and developing it want to see it succeed. They aren't 
just treading water, wasting everyone's time. And I know you keep 
hearing this, but I'll say it anyway: most of the development is 
based on volunteer work, and trying to get volunteers to do 
anything they don't want to do is like asking them to voluntarily 
have their teeth pulled when they don't need to.


Walter has said that people come to him and ask what they should 
work on. He provides them with a list of priority tasks. Then 
they go off and work on something else. That's the nature of 
unsponsored open-source development and has been the biggest 
challenge for D for years.


I have high hopes that some of this can be turned around by 
raising more money and I have long-term plans to try and 
facilitate that over the coming months. With more money, we can 
get people to work on targeted tasks even when they have no 
vested interest in it. We can pull in full-time coders, maybe get 
someone to oversee PR reviews so they don't stay open so long, 
fund development of broader ecosystem projects.


There isn't anyone involved in the core D development who isn't 
aware of the broader issues in the community or the ecosystem, 
and they are working to bring improvements. I have been around 
this community since 2003. From my perspective, it has been one 
continuous march of progress. Sometimes slow, sometimes fast, but 
always moving, always getting better. And right now there are 
more people involved than ever in moving it forward.


Unfortunately, there are also more demands on more fronts than 
ever. There are longtime users who become increasingly frustrated 
when the issues that matter to them still aren't resolved, 
newcomers who have no context of all the progress that has been 
made and instead hold D in comparison to Rust, Go, and other 
languages that have stronger backing and more manpower. That's 
perfectly legitimate.


And of course, low manpower and funding aren't the complete 
picture. Management also play a role. Both Walter and Andrei have 
freely admitted they are not managers and that they're learning 
as they go. Mistakes have been made. In hindsight, some decisions 
should have gone a different way. But that is not the same as not 
caring, or not understanding/


So please, don't attribute any disingenuous motives to any of the 
core team members. They all want D to succeed. Identifying core 
problems and discussing ways to solve them is a more productive 
way to spend our bandwidth.


Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-03 Thread Chris via Digitalmars-d
On Monday, 3 September 2018 at 18:52:45 UTC, Laurent Tréguier 
wrote:

On Monday, 3 September 2018 at 18:26:57 UTC, Chris wrote:
it should come with a warning label that says "D is in many 
parts still at an experimental stage and ships with no 
guarantees whatsoever. Use at your own risk."


Well it comes with the Boost license that says: `THE SOFTWARE 
IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND`


You know exactly what I mean, don't you?


Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-03 Thread Jonathan M Davis via Digitalmars-d
On Monday, September 3, 2018 12:26:57 PM MDT Chris via Digitalmars-d wrote:
> There is no real plan and
> only problems that someone deems interesting or challenging at a
> given moment are tackled. If they solve a problem for a lot of
> users, it's only a side effect. The advent of a D Foundation
> hasn't changed anything in this regard, and it seems not to be
> just a financial issue. It's the mentality. In other words, D is
> still unreliable, and if that what the community wants, fine, but
> instead of promoting it as a substitute for C/C++, Java etc. it
> should come with a warning label that says "D is in many parts
> still at an experimental stage and ships with no guarantees
> whatsoever. Use at your own risk." That would save both the
> language developers and (potential) users a lot of headaches.
>
> I think this sort of misunderstanding is the source of a lot of
> friction on this forum. Some users think (or in my case: thought)
> that D will be a sound and stable language one day, a language
> they can use for loads of stuff, while the leadership prefers to
> keep it at a stage where they can test ideas to see what works
> and what doesn't, wait let me rephrase this, where the user can
> test other people's ideas with every new release.

Plenty of people - whole companies included - use D for real projects and
products. It is an extremely powerful tool which can be used for real work.
Is it as polished as some other languages? Maybe not, but it's plenty stable
for real world use. And it's continually improving.

All programming languages and tools are "used at your own risk." They all
come with their own sets of pros and cons. If what you want is a language
that doesn't change much, then there are plenty of other choices, just like
there are plenty of languages that change all the time. Over time D has
become more stable, and it doesn't change anywhere near as rapidly as it
used to, but if you don't like how it works or is developed, then feel free
to go elsewhere. Those of use that stick around find that its pros outweigh
its cons. Plenty of folks disagree with us, and they've chosen different
languages, which is just fine.

In any case, I have better things to do than argue about whether D is a
solid, useful language or not. It's the language that I prefer. I'm going to
use it as much as I can, and I'm going to continue to contribute to it. If
you don't like where D is, and you don't think that it's worth your time to
contribute to it, then that's perfectly fine, but it's a waste of my time to
continue to argue about it. I spend too much of my time in this newsgroup as
it is, and this sort of argument doesn't contribute anything to improving D.

- Jonathan M Davis





Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-03 Thread Meta via Digitalmars-d

On Monday, 3 September 2018 at 14:26:46 UTC, Laeeth Isharc wrote:
I just spoke with Dicebot about work stuff.  He incidentally 
mentioned what I said before based on my impressions.  The 
people doing work with a language have better things to do than 
spend a lot of time on forums.  And I think in open source you 
earn the right to be listened to by doing work of some kind.  
He said (which I knew already) it was an old post he didn't put 
up in the end - somebody discovered it in his repo.  He is 
working fulltime as a consultant with me for Symmetry and is 
writing D as part of that role.  I don't think that indicates 
he didn't mean his criticisms, and maybe one could learn from 
those.  But a whole thread triggered by this is quite 
entertaining.


Interesting, I did not realize that he had left Sociomantic. Even 
if he did not release the article, I think it's a good idea that 
we take some of his criticisms to heart. I, at the very least, 
agree with at least a few of them, and as we've seen, so do 
others.


Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-03 Thread Paolo Invernizzi via Digitalmars-d

On Monday, 3 September 2018 at 14:26:46 UTC, Laeeth Isharc wrote:

I just spoke with Dicebot about work stuff.  He incidentally 
mentioned what I said before based on my impressions.  The 
people doing work with a language have better things to do than 
spend a lot of time on forums.  And I think in open source you 
earn the right to be listened to by doing work of some kind.  
He said (which I knew already) it was an old post he didn't put 
up in the end - somebody discovered it in his repo.  He is 
working fulltime as a consultant with me for Symmetry and is 
writing D as part of that role.  I don't think that indicates 
he didn't mean his criticisms, and maybe one could learn from 
those.  But a whole thread triggered by this is quite 
entertaining.


I'm the person how found the post, and I'm enjoying the 
readings... and I'm learning something also!


I'm amused by the amount of different topics, minus one, the 
original: why feature branches are not an option in DLangLand.


/Paolo


Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-03 Thread Laurent Tréguier via Digitalmars-d

On Monday, 3 September 2018 at 18:26:57 UTC, Chris wrote:
it should come with a warning label that says "D is in many 
parts still at an experimental stage and ships with no 
guarantees whatsoever. Use at your own risk."


Well it comes with the Boost license that says: `THE SOFTWARE IS 
PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND`


Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-03 Thread Chris via Digitalmars-d
On Monday, 3 September 2018 at 16:55:10 UTC, Jonathan M Davis 
wrote:


Most of the work that gets done is the stuff that the folks 
contributing think is the most important - frequently what is 
most important for them for what they do, and very few (if any) 
of the major contributors use or care about IDEs for their own 
use. And there's tons to do that has nothing to do with IDEs. 
There are folks who care about it enough to work on it, which 
is why projects such as VisualD exist at all, and AFAIK, they 
work reasonably well, but the only two ways that they're going 
to get more work done on them than is currently happening is if 
the folks who care about that sort of thing contribute or if 
they donate money for it to be worked on. Not long ago, the D 
Foundation announced that they were going to use donations to 
pay someone to work on his plugin for Visual Studio Code:


https://forum.dlang.org/post/rmqvglgccmgoajmhy...@forum.dlang.org

So, if you want stuff like that to get worked on, then donate 
or pitch in.


The situation with D - both with IDEs and in general - has 
improved greatly over time even if it may not be where you want 
it to be. But if you're ever expecting IDE support to be a top 
priority of many of the contributors, then you're going to be 
sorely disappointed. It's the sort of thing that we care about 
because we care about D being successful, but it's not the sort 
of thing that we see any value in whatsoever for ourselves, and 
selfish as it may be, when we spend the time to contribute to 
D, we're generally going to work on the stuff that we see as 
having the most value for getting done what we care about. And 
there's a lot to get done which impacts pretty much every D 
user and not just those who want something that's IDE-related.


- Jonathan M Davis


Dear Jonathan, you've just said it. There is no real plan and 
only problems that someone deems interesting or challenging at a 
given moment are tackled. If they solve a problem for a lot of 
users, it's only a side effect. The advent of a D Foundation 
hasn't changed anything in this regard, and it seems not to be 
just a financial issue. It's the mentality. In other words, D is 
still unreliable, and if that what the community wants, fine, but 
instead of promoting it as a substitute for C/C++, Java etc. it 
should come with a warning label that says "D is in many parts 
still at an experimental stage and ships with no guarantees 
whatsoever. Use at your own risk." That would save both the 
language developers and (potential) users a lot of headaches.


I think this sort of misunderstanding is the source of a lot of 
friction on this forum. Some users think (or in my case: thought) 
that D will be a sound and stable language one day, a language 
they can use for loads of stuff, while the leadership prefers to 
keep it at a stage where they can test ideas to see what works 
and what doesn't, wait let me rephrase this, where the user can 
test other people's ideas with every new release.


Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-03 Thread Jonathan M Davis via Digitalmars-d
On Monday, September 3, 2018 11:15:03 AM MDT Laurent Tréguier via 
Digitalmars-d wrote:
> It just baffles me a bit to see the state of D in this
> department, when languages like Go or Rust (hooray for yet
> another comparison to Go and Rust) are a lot younger, but already
> have what looks like very good tooling.
> Then again they do have major industry players backing them
> though...

The dynamics are fundamentally different when you're paying someone to work
on something. As I understand it, in addition to whatever volunteer work is
done, Google and Mozilla pay people to work on those languages. And when
you're doing that, it's trivial enough to say that you think that something
matters enough to pay someone to work on it even if it's not something that
anyone contributing actually wants to do or really cares about having for
themselves. Relatively little time has been spent contributing to D by
people who are paid to work on it. Even if both Walter and Andrei agreed
that something should be treated as top priority, aside from paying someone
to work on it through the D Foundation, they really can't make anyone work
on it. What gets done is usually what the contributors care about. That's
one reason why donations could end up being a game changer over time. It
makes it possible to pay someone to do something that no contributors want
to spend their free time doing.

- Jonathan M Davis






Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-03 Thread Laurent Tréguier via Digitalmars-d
On Monday, 3 September 2018 at 16:55:10 UTC, Jonathan M Davis 
wrote:
Most of the work that gets done is the stuff that the folks 
contributing think is the most important - frequently what is 
most important for them for what they do, and very few (if any) 
of the major contributors use or care about IDEs for their own 
use. And there's tons to do that has nothing to do with IDEs. 
There are folks who care about it enough to work on it, which 
is why projects such as VisualD exist at all, and AFAIK, they 
work reasonably well, but the only two ways that they're going 
to get more work done on them than is currently happening is if 
the folks who care about that sort of thing contribute or if 
they donate money for it to be worked on. Not long ago, the D 
Foundation announced that they were going to use donations to 
pay someone to work on his plugin for Visual Studio Code:


https://forum.dlang.org/post/rmqvglgccmgoajmhy...@forum.dlang.org

So, if you want stuff like that to get worked on, then donate 
or pitch in.


The situation with D - both with IDEs and in general - has 
improved greatly over time even if it may not be where you want 
it to be. But if you're ever expecting IDE support to be a top 
priority of many of the contributors, then you're going to be 
sorely disappointed. It's the sort of thing that we care about 
because we care about D being successful, but it's not the sort 
of thing that we see any value in whatsoever for ourselves, and 
selfish as it may be, when we spend the time to contribute to 
D, we're generally going to work on the stuff that we see as 
having the most value for getting done what we care about. And 
there's a lot to get done which impacts pretty much every D 
user and not just those who want something that's IDE-related.


- Jonathan M Davis


The complaints I have is exactly why I'm myself maintaining 
plugins for VSCode, Atom, and others soon. Don't worry, I still 
think D is worth putting some time and effort into and I know 
actions generally get more things done than words.
I also know that tons of stuff is yet to be done in regards to 
the actual compilers and such.


It just baffles me a bit to see the state of D in this 
department, when languages like Go or Rust (hooray for yet 
another comparison to Go and Rust) are a lot younger, but already 
have what looks like very good tooling.
Then again they do have major industry players backing them 
though...


Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-03 Thread Jonathan M Davis via Digitalmars-d
On Monday, September 3, 2018 9:41:48 AM MDT Laurent Tréguier via 
Digitalmars-d wrote:
> On Monday, 3 September 2018 at 15:23:12 UTC, Chris wrote:
> > On Monday, 3 September 2018 at 14:26:46 UTC, Laeeth Isharc
> >
> > wrote:
> >> On Monday, 3 September 2018 at 11:32:42 UTC, Chris wrote:
> >>> [...]
> >>
> >> D has never been about smooth experiences!  That's a
> >> commercial benefit if you think that hormesis brings benefits
> >> and you are not looking for programmers of the trained-monkey,
> >> strap a few APIs together type.
> >
> > It's high time it got a bit smoother if you want people to use
> > it. Is everybody who doesn't use cli and knows all compiler
> > flags by heart a coding monkey? Has it ever occurred to you
> > that people want a smooth experience so they can concentrate on
> > a job and get done with it?
>
> Yes. It almost sounds like a smooth experience would be a bad
> thing to have, especially with the classic "you don't need an IDE
> anyway" speech. Editing experience seems often dismissed as
> unimportant, when it's one of the first things new users will
> come across when trying out D. First impressions can matter a lot.

Most of the work that gets done is the stuff that the folks contributing
think is the most important - frequently what is most important for them for
what they do, and very few (if any) of the major contributors use or care
about IDEs for their own use. And there's tons to do that has nothing to do
with IDEs. There are folks who care about it enough to work on it, which is
why projects such as VisualD exist at all, and AFAIK, they work reasonably
well, but the only two ways that they're going to get more work done on them
than is currently happening is if the folks who care about that sort of
thing contribute or if they donate money for it to be worked on. Not long
ago, the D Foundation announced that they were going to use donations to pay
someone to work on his plugin for Visual Studio Code:

https://forum.dlang.org/post/rmqvglgccmgoajmhy...@forum.dlang.org

So, if you want stuff like that to get worked on, then donate or pitch in.

The situation with D - both with IDEs and in general - has improved greatly
over time even if it may not be where you want it to be. But if you're ever
expecting IDE support to be a top priority of many of the contributors, then
you're going to be sorely disappointed. It's the sort of thing that we care
about because we care about D being successful, but it's not the sort of
thing that we see any value in whatsoever for ourselves, and selfish as it
may be, when we spend the time to contribute to D, we're generally going to
work on the stuff that we see as having the most value for getting done what
we care about. And there's a lot to get done which impacts pretty much every
D user and not just those who want something that's IDE-related.

- Jonathan M Davis






Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-03 Thread Iain Buclaw via Digitalmars-d
On 3 September 2018 at 18:07, RhyS via Digitalmars-d
 wrote:
>
> Too much resources split among too many distributions, graphical desktops
> etc. Choice is good but too much choice means projects are starved for
> resources, comparability are issues, bugs are even more present, ...
>
> A good example being the resources going into DMD, LDC, GDC... 3 Compilers
> for one language, when even well funded languages stick to one compiler.

This is an argument that has been batted to death and rebutted for
nearly 2 decades now.

15 years ago, people were complaining that there was only one D
compiler.  It is ironic that people now complain that there's too
many.


Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-03 Thread RhyS via Digitalmars-d
On Monday, 3 September 2018 at 15:41:48 UTC, Laurent Tréguier 
wrote:
Yes. It almost sounds like a smooth experience would be a bad 
thing to have, especially with the classic "you don't need an 
IDE anyway" speech. Editing experience seems often dismissed as 
unimportant, when it's one of the first things new users will 
come across when trying out D. First impressions can matter a 
lot.


Its the same issue why Linux as a Desktop has been stuck with 
almost no growth. Its easy to break things ( nvidia graphical 
driver *lol* ), too much is so focused on the Cli that people who 
do have a issue and are not system users quick run into a 
flooding swamp.


Too much resources split among too many distributions, graphical 
desktops etc. Choice is good but too much choice means projects 
are starved for resources, comparability are issues, bugs are 
even more present, ...


A good example being the resources going into DMD, LDC, GDC... 3 
Compilers for one language, when even well funded languages stick 
to one compiler. And now some people think its a good idea to 
have DMD also cross compile because "its not hard to do". No, 
maybe not but who will do all the testing, what resources are 
going to spend when things do not work for some users ( and the 
negative impact on their experience )... Its a long list but 
people do not look past this. It sounds like fun, lets think / or 
do it.


Its just so frustrating that a lot of people here do not 
understand. Most programmers are not open-source developers, they 
are not coding gods, they are simply people who want things to 
good smooth. Install compiler, install good supported graphical 
IDE ( and no, VIM does not count! ), read up some simple 
documentation and off we go... We are not looking to be bug 
testers, core code implementer's, etc...


Selfish, ... sure ... but this is how D gain more people. The 
more people work with your language, the more potential people 
you have that slowly are interested in helping out.


But when D puts the carrot in front of the cart instead of the 
mule. Then do not be so surprised that a lot of people find D 
extreme frustrating and have a love-hate relationship with it.


Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-03 Thread Laurent Tréguier via Digitalmars-d

On Monday, 3 September 2018 at 15:23:12 UTC, Chris wrote:
On Monday, 3 September 2018 at 14:26:46 UTC, Laeeth Isharc 
wrote:

On Monday, 3 September 2018 at 11:32:42 UTC, Chris wrote:



[...]




D has never been about smooth experiences!  That's a 
commercial benefit if you think that hormesis brings benefits 
and you are not looking for programmers of the trained-monkey, 
strap a few APIs together type.


It's high time it got a bit smoother if you want people to use 
it. Is everybody who doesn't use cli and knows all compiler 
flags by heart a coding monkey? Has it ever occurred to you 
that people want a smooth experience so they can concentrate on 
a job and get done with it?


Yes. It almost sounds like a smooth experience would be a bad 
thing to have, especially with the classic "you don't need an IDE 
anyway" speech. Editing experience seems often dismissed as 
unimportant, when it's one of the first things new users will 
come across when trying out D. First impressions can matter a lot.


Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-03 Thread Chris via Digitalmars-d

On Monday, 3 September 2018 at 14:26:46 UTC, Laeeth Isharc wrote:

On Monday, 3 September 2018 at 11:32:42 UTC, Chris wrote:



[...]




D has never been about smooth experiences!  That's a commercial 
benefit if you think that hormesis brings benefits and you are 
not looking for programmers of the trained-monkey, strap a few 
APIs together type.


It's high time it got a bit smoother if you want people to use 
it. Is everybody who doesn't use cli and knows all compiler flags 
by heart a coding monkey? Has it ever occurred to you that people 
want a smooth experience so they can concentrate on a job and get 
done with it?


It's a question of developmental stages too.  I was a late 
developer as a person, but then I continued to develop into my 
30s and perhaps 40s too.  For human beings there are different 
kinds of people and implicit life strategies and natural fits 
with niches.  Some are quick to grow up, but stop developing 
sooner and others mature more slowly but this process may 
continue long after others are done.  I'm not saying a computer 
language is like a human being, but it is in part an organic 
phenomenon and social institutions develop according to their 
own logic and rhythm in my experience of studying them.


This is not a yoga class.

D is a late developer, and I think that's because it is a 
tremendously ambitious language.  What use case is D intended 
to target?  Well it's not like that - it's a general purpose 
programming language at a time when people have given up on 
that idea and think that it simply must be that you pick one 
tool for the job and couldn't possibly have a tool that does 
many different kind of things reasonably well.  So the kind of 
use cases D is suited for depends much more on the capabilities 
and virtues of the people using it than is the case for other 
languages.  (In truth in a negative sense that's true also of 
other languages - Go was designed to be easy to learn and to 
use for people who didn't have much programming experience).


It's not D's usefulness I'm concerned with, it can do a lot of 
things. It's just a bit awkward to use in production and there's 
no reason why things should still be like in 2010.






[...]


Sure.  I would agree with what you write but say that it's a 
case of capabilities and hormesis too sometime.  Nassim Taleb 
told a story about checking into a hotel and seeing a guy in a 
suit tip the bellboy to carry his bags upstairs.  Later on he 
saw the same guy in a gym lifting weights (and I think on a 
Nautilus-type machine which is much inferior to free weights).  
So any tool can make you lazy, and yet any tool - no matter how 
shiny, polished, and expensive - sometimes will break and then 
if you are afraid of the command line or just very out of 
practice you can end up utterly helpless.  It's a matter of 
balance to be sure.


Funny story, but this is not the place for esoteric 
contemplations.



[...]


I didn't find the experience last time I tried to be worse than 
just going through the Android C/C++ native SDK instructions.  
The first time I tried it was quite tough as I struggled to 
even build the compiler as the instructions weren't quite 
right.  I disagree about it not being maintainable as it's much 
easier to keep something you understand and can reason about 
working, but it's harder to use in the beginning, for sure.


I think that the point for Android and ARM is not the build 
process but integration with Java APIs.  If you can't figure 
out a build process that when I tried it mostly just worked and 
that doesn't have too much dark magic, I fear for how easy you 
are going to find JNI.  (JNI is fine, but building a D project 
on Android requires less demanding technical capabilities).


I know JNI, I've connected D with Java (and vice versa) a few 
times.



[...]


You had one or two people who stubbornly devoted considerable 
parts of their lives to getting D to build on Android.  And 
instead of saying what a remarkable achievement, and thank you 
so much for this work, and this is very cool but we really 
should consider in a constructive manner how to make this easy 
to use, you are saying I want more!  Fair enough - it's a free 
society, although I don't think you were ever promised that the 
Android experience would be something different from what it is.


I never gave out about the guys (I think one of them is Joakim) 
who made it possible in the end, because without their efforts we 
wouldn't have anything. I'm just surprised they don't get more 
full time support to wrap it up nicely.


But I really am not surprised that people burn out doing open 
source.  It's very odd to see, because I came back to this 
world after a long break.  My first 'open source' contribution 
was to part of Tom Jenning's work on FidoNet in 1989 - an 
improvement to some node routing table, and in those days 
people used to be pretty appreciative.  Same thing with Chuck 
Forsberg who invented ZModem and 

Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-03 Thread Laeeth Isharc via Digitalmars-d

On Monday, 3 September 2018 at 11:32:42 UTC, Chris wrote:
On Sunday, 2 September 2018 at 12:07:17 UTC, Laeeth Isharc 
wrote:




That's why the people that adopt D will inordinately be 
principals not agents in the beginning. They will either be 
residual claimants on earnings or will have acquired the 
authority to make decisions without persuading a committee 
that makes decisions on the grounds of social factors.


If D becomes another C++ ?  C++ was ugly from the beginning 
(in my personal subjective assessment) whereas D was designed 
by people with good taste.


That's why it appeals inordinately to people with good taste.


[snip]

Be that as it may, however, you forget the fact that people 
"with good taste" who have (had) an intrinsic motivation to 
learn D are also very critical people who take no bs, else they 
wouldn't have ended up using D in the first place. Since 
they've already learned a lot of concepts etc. with D over the 
years,


it's technically easy for them to move on to either an easier 
language or one that offers more or less the same features as D.


I don't think so.  If we are talking about the set of technically 
very capable people with an aesthetic sense then I don't think 
easier or feature set in a less beautiful way is appealing.


This is based on revealed preference, because the conversations I 
have with technically very capable people that know many other 
languages as well or better than D go like "what compensation are 
you expecting?  X.  But if it's to write D, I can be flexible" 
and so on.


Template meta-programming in D is quite simple.  C++ has many of 
the features that D has.  Therefore it's easy to do template 
meta-programming in C++, and just as easy for others to read your 
code in C++ as D?  I don't think so.  Having learnt the concepts 
in D and that it can be beautiful and easy kind of ruins you for 
inferior approaches.


BTW I was grumbling about some C# wrapper code written manually.  
It talks to a C style API (connected to an internal C++ code base 
developed before I became involved).  So you have a low level C# 
side declaration of the C function that returns an exception 
string by argument.  Then you have a C# declaration of a wrapper 
function that throws an exception if the exception string is not 
empty.  Then you have a layer on top that puts the class back 
together.  Then you have a high level wrapper layer.  Then you 
have the bit that talks to Excel.


I thought surely there must be decent code generation 
possibilities in C#.  It's not too bad as a language.  I looked 
it up.  Microsoft say use HTML templates.  Well, okay... but I'm 
not sure I like the trade-off of having to do stuff like that 
versus having to deal with some pain at the command-line now and 
then.


So once they're no longer happy with the way things are, they 
can dive into a any language fast enough for the cost of 
transition to be low.


You're making an implicit empirical statement that I don't 
believe to be accurate based on my experience.  I would say if a 
representative programmer from the D community decides the costs 
no longer offset the benefits then sure they can learn another 
language because the representative programmer here is pretty 
talented.  But so what?




Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-03 Thread Laeeth Isharc via Digitalmars-d

On Monday, 3 September 2018 at 11:32:42 UTC, Chris wrote:
On Sunday, 2 September 2018 at 12:07:17 UTC, Laeeth Isharc 
wrote:




That's why the people that adopt D will inordinately be 
principals not agents in the beginning. They will either be 
residual claimants on earnings or will have acquired the 
authority to make decisions without persuading a committee 
that makes decisions on the grounds of social factors.


If D becomes another C++ ?  C++ was ugly from the beginning 
(in my personal subjective assessment) whereas D was designed 
by people with good taste.


That's why it appeals inordinately to people with good taste.


[snip]

Be that as it may, however, you forget the fact that people 
"with good taste" who have (had) an intrinsic motivation to 
learn D are also very critical people who take no bs, else they 
wouldn't have ended up using D in the first place. Since 
they've already learned a lot of concepts etc. with D over the 
years, it's technically easy for them to move on to either an 
easier language or one that offers more or less the same 
features as D. So once they're no longer happy with the way 
things are, they can dive into a any language fast enough for 
the cost of transition to be low.




One has to be practical too.
Yes!  And being practical involves recognising different 
objectives, starting points and considerations apply to different 
situations and contexts.


Programming involves more than just features and concepts. 
Good, out of the box system integration (e.g. Android, iOS) is 
important too and he who ignores this simple truth will have to 
pay a high price.


Important for whom?  It depends a lot!  Ask Sociomantic, Bastian, 
Weka if the lack of Android or iOS integration is a big problem 
for them, and I don't think you will get the answer that it is 
important.  For what I am doing, Android or iOS would be nice, 
but it doesn't need to be out of the box, and you can do quite a 
lot on Android already.  I compiled ldc on my Huawei watch, which 
I never expected to be possible though given it has 4 Gig of RAM 
it's not that surprising.  JNI is not that bad though could 
certainly be made easier with a bit of work.  And I haven't 
tried, but I guess you could write the GUI stuff in Python or Lua 
for a simple app and do the heavy lifting with D.


Of course for the ecosystem generally yes it matters.

why developers of new languages are so keen on giving users a 
smooth experience when it comes to app development and cross 
compilation which leads me to the next point: IDEs.


D has never been about smooth experiences!  That's a commercial 
benefit if you think that hormesis brings benefits and you are 
not looking for programmers of the trained-monkey, strap a few 
APIs together type.


It's a question of developmental stages too.  I was a late 
developer as a person, but then I continued to develop into my 
30s and perhaps 40s too.  For human beings there are different 
kinds of people and implicit life strategies and natural fits 
with niches.  Some are quick to grow up, but stop developing 
sooner and others mature more slowly but this process may 
continue long after others are done.  I'm not saying a computer 
language is like a human being, but it is in part an organic 
phenomenon and social institutions develop according to their own 
logic and rhythm in my experience of studying them.


D is a late developer, and I think that's because it is a 
tremendously ambitious language.  What use case is D intended to 
target?  Well it's not like that - it's a general purpose 
programming language at a time when people have given up on that 
idea and think that it simply must be that you pick one tool for 
the job and couldn't possibly have a tool that does many 
different kind of things reasonably well.  So the kind of use 
cases D is suited for depends much more on the capabilities and 
virtues of the people using it than is the case for other 
languages.  (In truth in a negative sense that's true also of 
other languages - Go was designed to be easy to learn and to use 
for people who didn't have much programming experience).



No. You don't need an IDE to develop in D


Indeed, and much less so than with some other languages because 
you can understand the code that's out of focus more easily and 
hold more of it in your head and reason about it.  I personally 
use Sublime and vim, but tools are very personal because problems 
are different and people think differently and there's not much 
upside in engaging in a holy war about tools.


However, an IDE can a) make coding comfortable and b) boost 
your productivity.

Sure - in can do for some people in some cases.

to a): maybe you just grow tired of the text editor & cli 
approach and you just want to click a few buttons to fix 
imports or correct typos and be done with it, and as to b): all 
this helps to boost your productivity, especially when you can 
easily set up an app or a web service with a few mouse 

Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-03 Thread walker via Digitalmars-d

On Monday, 3 September 2018 at 06:29:02 UTC, Pjotr Prins wrote:
One thing I want to add that we ought to be appreciative of the 
work people put in - much of it in their spare time. I wonder 
if W and others sometimes despair for the lack of 
appreciation they get. Guido van Rossum burning out (W, 
notably, was the one to post that here first) is a shame. Even 
though he created a language which I find less tasteful he did 
not deserve to be treated like that. Simple.


I feel the same. There is no need to put a huge burden on them 
even if there is something could not be fixed. A good subset of a 
language is still a good language I think. Powerful, expressive, 
precise, that's important for me.


Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-03 Thread Chris via Digitalmars-d

On Monday, 3 September 2018 at 06:29:02 UTC, Pjotr Prins wrote:


Hear, hear!

Even though some languages like Julia, Rust and Go are much 
better funded than D - and their creators have excellent taste 
in different ways - they still have to go through similar 
evolutionary steps. There is no fast path. Whatever design 
decision you make, you always end up fixes bugs and corner 
cases. I was amazed how behind Rust's debugger support was last 
year (I witnessed a talk at FOSDEM). They are catching up, but 
it just goes to show...


No programming language is ever finished. But most programming 
languages try to get the basics right first and then add new 
features. If you want to run you have to learn how to walk first. 
Languages take time to evolve, but we shouldn't be in a situation 
where the fixing of basic bugs and flaws are considered part of 
the "long term goals".


One thing I want to add that we ought to be appreciative of the 
work people put in - much of it in their spare time. I wonder 
if W and others sometimes despair for the lack of 
appreciation they get. Guido van Rossum burning out (W, 
notably, was the one to post that here first) is a shame. Even 
though he created a language which I find less tasteful he did 
not deserve to be treated like that. Simple.


I hold both Walter and Andrei (and all the other great 
contributors) in high esteem and D was the right tool for me back 
in the day. Without it things would have been a lot harder. But I 
think D is past the laboratory stage and I as a user feel that 
our actual experience is less important than design experiments. 
Respect goes both ways, after all it's the users who keep a 
programming language alive. If there isn't something 
fundamentally wrong in the communication between the leadership / 
language developers and the users, why do we get posts like this:


"Thanks! Please add anything you think is missing to 
https://github.com/dlang/dlang.org/pull/2453 since Walter doesn't 
seem to be interested."


https://forum.dlang.org/post/mxgyoflrsibeyavvm...@forum.dlang.org

Not good.


Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-03 Thread Chris via Digitalmars-d

On Sunday, 2 September 2018 at 12:07:17 UTC, Laeeth Isharc wrote:



That's why the people that adopt D will inordinately be 
principals not agents in the beginning. They will either be 
residual claimants on earnings or will have acquired the 
authority to make decisions without persuading a committee that 
makes decisions on the grounds of social factors.


If D becomes another C++ ?  C++ was ugly from the beginning (in 
my personal subjective assessment) whereas D was designed by 
people with good taste.


That's why it appeals inordinately to people with good taste.


[snip]

Be that as it may, however, you forget the fact that people "with 
good taste" who have (had) an intrinsic motivation to learn D are 
also very critical people who take no bs, else they wouldn't have 
ended up using D in the first place. Since they've already 
learned a lot of concepts etc. with D over the years, it's 
technically easy for them to move on to either an easier language 
or one that offers more or less the same features as D. So once 
they're no longer happy with the way things are, they can dive 
into a any language fast enough for the cost of transition to be 
low.


One has to be practical too. Programming involves more than just 
features and concepts. Good, out of the box system integration 
(e.g. Android, iOS) is important too and he who ignores this 
simple truth will have to pay a high price. That's why developers 
of new languages are so keen on giving users a smooth experience 
when it comes to app development and cross compilation which 
leads me to the next point: IDEs.


No. You don't need an IDE to develop in D. However, an IDE can a) 
make coding comfortable and b) boost your productivity. As to a): 
maybe you just grow tired of the text editor & cli approach and 
you just want to click a few buttons to fix imports or correct 
typos and be done with it, and as to b): all this helps to boost 
your productivity, especially when you can easily set up an app 
or a web service with a few mouse clicks. In D, if you want to do 
something with ARM/Android you will invariably end up with a 
potpourri of build scripts and spaghetti lines full of compiler 
flags etc. Not smooth, it takes a lot of time to set it up 
manually and it's not easily maintainable. Doable, yes, but just 
because something is doable doesn't mean it's recommendable nor 
that people will actually bother with doing it. I'm under the 
impression that the D Foundation doesn't pay much attention to 
these things once they are kind of "doable" and somebody has 
volunteered to "look into it" with no guarantee whatsoever if and 
when it will be available to users. And if there are complaints, 
hey, it is not "official" ask the guy who's looking into it. Not 
very professional. See, that doesn't really give you confidence 
in D and it gives you an uneasy feeling. Nothing worse in 
software development than to be programming thinking "Am I 
actually wasting my time here?", and of course, you become 
reluctant to start anything new in D - which is only natural.





Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-03 Thread Pjotr Prins via Digitalmars-d

On Sunday, 2 September 2018 at 12:07:17 UTC, Laeeth Isharc wrote:
I've only been programming since 1983 so I had the benefit of 
high level languages like BBC BASIC, C, a Forth I wrote myself, 
and Modula 3.  And although I had to write a disassembler at 
least I has assemblers built in.  Programming using a hex 
keypad is not that satisfying after a while.  It takes a long 
time to develop a language, its ecosystem and community.


Hear, hear!

Even though some languages like Julia, Rust and Go are much 
better funded than D - and their creators have excellent taste in 
different ways - they still have to go through similar 
evolutionary steps. There is no fast path. Whatever design 
decision you make, you always end up fixes bugs and corner cases. 
I was amazed how behind Rust's debugger support was last year (I 
witnessed a talk at FOSDEM). They are catching up, but it just 
goes to show...


One thing I want to add that we ought to be appreciative of the 
work people put in - much of it in their spare time. I wonder if 
W and others sometimes despair for the lack of appreciation 
they get. Guido van Rossum burning out (W, notably, was the one 
to post that here first) is a shame. Even though he created a 
language which I find less tasteful he did not deserve to be 
treated like that. Simple.






Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-02 Thread bauss via Digitalmars-d

On Sunday, 2 September 2018 at 14:48:34 UTC, lurker wrote:

after the beta i tried it the final again - just to be fair.

1.) install d, install visual d.
2.) trying to to look at options under visual d without a 
project crashes VS2017 - latest

service pack.
3.) VS2017 - displays a problem on startup
4.) creating the dummy project - compile for x64. error 
something is missing.

5.) deinstall everything and wait for another year

this crap does not even work out of the box - what else is not 
tested in D?


i guess you don't intend to draw crowds to D and just keep 
talking on how to this and that a little better in the compiler 
pet project.


is D that dead that the releases are not tested or do you want 
to keep all windows users out?


Oh and also your error is probably that you're missing the C++ 
build tools which come with the correct linker for x64, as far as 
I remember.


Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-02 Thread bauss via Digitalmars-d

On Sunday, 2 September 2018 at 14:48:34 UTC, lurker wrote:

after the beta i tried it the final again - just to be fair.

1.) install d, install visual d.
2.) trying to to look at options under visual d without a 
project crashes VS2017 - latest

service pack.
3.) VS2017 - displays a problem on startup
4.) creating the dummy project - compile for x64. error 
something is missing.

5.) deinstall everything and wait for another year

this crap does not even work out of the box - what else is not 
tested in D?


i guess you don't intend to draw crowds to D and just keep 
talking on how to this and that a little better in the compiler 
pet project.


is D that dead that the releases are not tested or do you want 
to keep all windows users out?


Visual D is not official, remember that.

Most people would go with VS Code anyway.


Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-02 Thread Manu via Digitalmars-d
On Sun, 2 Sep 2018 at 16:05, Andre Pany via Digitalmars-d
 wrote:
>
> On Sunday, 2 September 2018 at 14:48:34 UTC, lurker wrote:
> > after the beta i tried it the final again - just to be fair.
> >
> > 1.) install d, install visual d.
> > 2.) trying to to look at options under visual d without a
> > project crashes VS2017 - latest
> > service pack.
> > 3.) VS2017 - displays a problem on startup
> > 4.) creating the dummy project - compile for x64. error
> > something is missing.
> > 5.) deinstall everything and wait for another year
> >
> > this crap does not even work out of the box - what else is not
> > tested in D?
> >
> > i guess you don't intend to draw crowds to D and just keep
> > talking on how to this and that a little better in the compiler
> > pet project.
> >
> > is D that dead that the releases are not tested or do you want
> > to keep all windows users out?
>
> There are a lot of motivated people here willing to help you to
> get your issue solved if you provide the details.
>
> I can confirm that DMD is working like a charm for me (different
> visual studio versions on build servers, MS build tools on local
> pc). I use IntelliJ instead of Visual Studio, but that is only my
> personal preferation.
>
> Kind regards
> Andre

I'm currently installing VS2017 to test your anecdote (been on 2015
for ages)... although I use VS2017 at work and haven't had any
problems.


Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-02 Thread Andre Pany via Digitalmars-d

On Sunday, 2 September 2018 at 14:48:34 UTC, lurker wrote:

after the beta i tried it the final again - just to be fair.

1.) install d, install visual d.
2.) trying to to look at options under visual d without a 
project crashes VS2017 - latest

service pack.
3.) VS2017 - displays a problem on startup
4.) creating the dummy project - compile for x64. error 
something is missing.

5.) deinstall everything and wait for another year

this crap does not even work out of the box - what else is not 
tested in D?


i guess you don't intend to draw crowds to D and just keep 
talking on how to this and that a little better in the compiler 
pet project.


is D that dead that the releases are not tested or do you want 
to keep all windows users out?


There are a lot of motivated people here willing to help you to 
get your issue solved if you provide the details.


I can confirm that DMD is working like a charm for me (different 
visual studio versions on build servers, MS build tools on local 
pc). I use IntelliJ instead of Visual Studio, but that is only my 
personal preferation.


Kind regards
Andre


Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-02 Thread Everlast via Digitalmars-d

On Sunday, 2 September 2018 at 14:48:34 UTC, lurker wrote:

after the beta i tried it the final again - just to be fair.

1.) install d, install visual d.
2.) trying to to look at options under visual d without a 
project crashes VS2017 - latest

service pack.
3.) VS2017 - displays a problem on startup
4.) creating the dummy project - compile for x64. error 
something is missing.

5.) deinstall everything and wait for another year

this crap does not even work out of the box - what else is not 
tested in D?


i guess you don't intend to draw crowds to D and just keep 
talking on how to this and that a little better in the compiler 
pet project.


is D that dead that the releases are not tested or do you want 
to keep all windows users out?



Don't worry, that is just the beginning... It's like that in all 
aspects. The design is fundamentally flawed and no one seems to 
care(or recognize it). Software is far too complex now days to be 
using mentalities of the 60's and 70's.




Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-02 Thread lurker via Digitalmars-d

after the beta i tried it the final again - just to be fair.

1.) install d, install visual d.
2.) trying to to look at options under visual d without a project 
crashes VS2017 - latest

service pack.
3.) VS2017 - displays a problem on startup
4.) creating the dummy project - compile for x64. error something 
is missing.

5.) deinstall everything and wait for another year

this crap does not even work out of the box - what else is not 
tested in D?


i guess you don't intend to draw crowds to D and just keep 
talking on how to this and that a little better in the compiler 
pet project.


is D that dead that the releases are not tested or do you want to 
keep all windows users out?





Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-02 Thread Laeeth Isharc via Digitalmars-d

On Saturday, 1 September 2018 at 12:33:49 UTC, rjframe wrote:

On Thu, 23 Aug 2018 15:35:45 +, Joakim wrote:


* Language complexity

Raise your hand if you know how a class with both opApply and 
the

get/next/end functions behaves when you pass it to foreach.
How about a struct? Does it matter if it allows copying or 
not?


The language was built because C++ was deemed too complex! 
Please see the thread about lazy [1] for a case where a 
question actually has an answer, but nobody seems to know it 
(and the person who does know it is hard pressed to explain 
the nuance that triggers this).


By this rationale, C++ should be dead by now. Why do you think 
it's fatal to D?


It's worth noting that C++ isn't always chosen for its 
technical merits. It's a well-known language whose more or less 
standard status in certain domains means it's the default 
choice; C++ is sometimes used for projects in which Stroustrup 
would say it's obviously the wrong language for the job.


D is far more likely to require justification based on 
technical merit. If D becomes another C++, why bother taking a 
chance with D when you can just use C++, use a well-supported, 
commonly-used compiler, and hire from a bigger pool of 
jobseekers?


That's why the people that adopt D will inordinately be 
principals not agents in the beginning. They will either be 
residual claimants on earnings or will have acquired the 
authority to make decisions without persuading a committee that 
makes decisions on the grounds of social factors.


If D becomes another C++ ?  C++ was ugly from the beginning (in 
my personal subjective assessment) whereas D was designed by 
people with good taste.


That's why it appeals inordinately to people with good taste.

In Hong Kong we had some difficulty hiring a support person for a 
trading floor.  Spoke in some cases to the most senior person in 
HK for even large and well-known funds (small office in this 
case) and they simply were not good enough.  Thanks to someone 
from the D community I met a headhunter who used to be at Yandex 
but realized the money was better as a headhunter.


They don't have many financial clients I think, don't have 
connections on the talent side in finance.  But the runners up 
were by far better than anyone we had found through other sources 
and the best was outstanding.


Good job, I said.  It's funny that the person we hired came from 
a big bank when other headhunters are looking in the same place 
and know that world better.  By the way, how many people did you 
interact with to find X ?  In London if a headhunter puts 10 
people before you and you are really pretty happy then that's a 
good day.  He said two hundred !  And they had to come up with a 
hiring test too.


So the basic reason they could find good people in technology in 
finance when others couldn't is that they have much better taste.


Do you see ?  The others knew many more people, they had 
experience doing it, and somebody who had to persuade a committee 
would have found it hard to justify.


Programming ability follows a Pareto curve - see the best and the 
rest.  There might be many more C++, Python and C# programmers.  
The incidence of outstanding ones is lower than in the D 
community for the very reason that only someone obtuse or very 
smart will learn D for career reasons - intrinsic motivation 
draws the highest talent.


It depends if your model of people doing work is an army of 
intelligent trained monkeys or a force made up  of small elite 
groups of the best people you have ever worked with.  Of course 
the general of the trained monkey army is going to be difficult 
to persuade.  And so ?


On the other hand, someone who is smart and has good taste and 
has earned the right to decide - D is a less popular language 
that has fewer tutorials and less shiny IDE and debugger support. 
 Well if you're a small company and you are directly or in effect 
a proxy owner of the residual (ie an owner of some kind) it's a 
pragmatic question and saying nobody got fired for buying IBM - 
that's missing the point because the success is yours and the 
failure is yours and you can't pass the buck.


The beauty of being the underdog is that it's easy to succeed.  
You don't need to be the top dog, and in fact it's not 
strategically wise to do something that might think you stand a 
chance - let them think what they want.  The underdog just needs 
to keep improving and keep getting more adoption, which I don't 
have much doubt is happening.


Modern people can be like children in their impatience sometimes!

I've only been programming since 1983 so I had the benefit of 
high level languages like BBC BASIC, C, a Forth I wrote myself, 
and Modula 3.  And although I had to write a disassembler at 
least I has assemblers built in.  Programming using a hex keypad 
is not that satisfying after a while.  It takes a long time to 
develop a language, its ecosystem and community.


An S curve is quite 

Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-02 Thread Chris via Digitalmars-d
On Saturday, 1 September 2018 at 18:35:30 UTC, 
TheSixMillionDollarMan wrote:

On Saturday, 1 September 2018 at 12:33:49 UTC, rjframe wrote:

[...]


Stroustrup also said, that "achieving any degree of 
compatibility [with C/C++] is very hard, as the C/C++ 
experience shows."


(reference => http://stroustrup.com/hopl-almost-final.pdf  
(2007)


(and here refers to D on page 42 btw - that was 11 years ago 
now).


And yet, D is very intent on doing just that, while also 
treading its own path.


I personally think this is why D has not taken off, as many 
would hope. It's hard.


I think it's also why D won't take off, as many hope. It's hard.

Stroustrup was correct (back in the 90's). Yes, it really is 
hard.


Made even harder now, since C++ has evolved into a 'constantly' 
moving target...


D++



Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-01 Thread TheSixMillionDollarMan via Digitalmars-d

On Saturday, 1 September 2018 at 12:33:49 UTC, rjframe wrote:
C++ is sometimes used for projects in which Stroustrup would 
say it's obviously the wrong language for the job.


D is far more likely to require justification based on 
technical merit. If D becomes another C++, why bother taking a 
chance with D when you can just use C++, use a well-supported, 
commonly-used compiler, and hire from a bigger pool of 
jobseekers?


Stroustrup also said, that "achieving any degree of compatibility 
[with C/C++] is very hard, as the C/C++ experience shows."


(reference => http://stroustrup.com/hopl-almost-final.pdf  (2007)

(and here refers to D on page 42 btw - that was 11 years ago now).

And yet, D is very intent on doing just that, while also treading 
its own path.


I personally think this is why D has not taken off, as many would 
hope. It's hard.


I think it's also why D won't take off, as many hope. It's hard.

Stroustrup was correct (back in the 90's). Yes, it really is hard.

Made even harder now, since C++ has evolved into a 'constantly' 
moving target...




Re: D is dead

2018-09-01 Thread Jonathan M Davis via Digitalmars-d
On Saturday, September 1, 2018 8:31:36 AM MDT H. S. Teoh via Digitalmars-d 
wrote:
> This change may also address the current hackish implementation of
> subclass contracts (which involves catching Errors, an arguably
> dangerous thing to do), though I'm not 100% sure.

AFAIK, there's absolutely nothing required to fix that other than just
implementing it. As I understand it, the assertions act normally and thus
throw AssertErrors, but there should be no technical reason why they
couldn't be transformed into something else. e.g.

in
{
assert(foo < 7);
}

could be lowered to something like

in
{
if(foo < 7)
return false;
return true;
}

The only differences would then be if any functions called in the contract
resulted in an AssertError (sinc that would no longer count as a contract
failure - which is arguably a bug fix) and that explicitly throwing an
AssertError wouldn't work anymore - but I expect that that's rare enough
that it wouldn't be all that big a deal.

- Jonathan M Davis





Re: D is dead

2018-09-01 Thread H. S. Teoh via Digitalmars-d
On Sat, Sep 01, 2018 at 01:26:01PM +, rjframe via Digitalmars-d wrote:
> On Thu, 23 Aug 2018 07:27:56 +, JN wrote:
[...]
> > (has anyone ever used contracts?).
> 
> I do.

Me too.  They are very useful to express intent, even if the current
implementation leaves some things to be desired.


> It's a shame D doesn't take them seriously.

Not sure what you mean by that.  Care to elaborate?


> As it is, I generally use them solely to express intent, which you
> don't get by placing asserts in the function body. I often read the
> function signature of functions I'm calling without reading the body,
> so separating the asserts from the body is helpful.
[...]

Yes.  The current implementation of contracts leaves some things to be
desired, but I'm hopeful after the recent syntax revamp was accepted and
merged into git master.

The next milestone to fight for is pushing the checking of contracts to
the caller, rather than the callee.  This will be important to solve the
currently very annoying (and debilitating) problem with binary shared
libraries, in that it will allow the same shared binaries to be used
when compiling both with and without contracts.  It should be the end
user's build script that decides whether or not contracts are compiled
in, but currently this is not the case.

This change may also address the current hackish implementation of
subclass contracts (which involves catching Errors, an arguably
dangerous thing to do), though I'm not 100% sure.


T

-- 
Старый друг лучше новых двух.


Re: D is dead

2018-09-01 Thread rjframe via Digitalmars-d
On Thu, 23 Aug 2018 07:27:56 +, JN wrote:

> I think a large part is defining what kind of users D wants to attract.

I've begun wondering whether "pragmatism" is sometimes used as a code word 
for indecision.

> Is it possible to make a language that both groups would be happy to
> use? Perhaps, or perhaps the gap is too wide. Is adding features like
> dip1000 and betterC spreading ourselves too thin? Perhaps. Perhaps there
> are features that aren't really used, and should be reworked or cut from
> the language instead

I do think that D can do it. And I think D is the only language I've 
looked at that can do it. But I think it's going to take Walter and 
Andrei, in conversation with the core team, putting together a real list 
of priorities and setting a high-level direction. Look at what the end 
goal really is and what it will take to get there. The current high level 
document tends to read as a list of what's already being worked on, but 
piecemeal improvements probably aren't going to cut it -- this goes back 
to the leverage conversation Andrei started earlier.

> (has anyone ever used contracts?).

I do. It's a shame D doesn't take them seriously. As it is, I generally 
use them solely to express intent, which you don't get by placing asserts 
in the function body. I often read the function signature of functions I'm 
calling without reading the body, so separating the asserts from the body 
is helpful.

And they're often useful on interfaces.


Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-01 Thread rjframe via Digitalmars-d
On Thu, 23 Aug 2018 14:29:23 +, bachmeier wrote:

> Weka is an awesome project, but I don't know that most people
> considering D should use your experience as the basis of their decision.
> At least in my areas, I expect considerable growth in the usage of D
> over the next 10 years. Maybe it won't see much traction as a C++
> replacement for large projects like Weka.

As long as D calls itself a systems language (which I believe is still the 
case), the experience of organizations building large systems is extremely 
important -- for organizations that want to build large systems.


Re: D is dead

2018-09-01 Thread rjframe via Digitalmars-d
On Sat, 01 Sep 2018 11:25:31 +, rjframe wrote:

> Should you have to fix the bugs you run into? No. But if they keep you
> from doing your work, it seems like the economics of fixing D's bugs can
> make sense. If Weka were to assign its own priorities to D's bugs*, and
> have one person, once a week, fix the largest-priority bug, how big of
> an investment would that be, and would the return be worth it? Many bugs
> will definitely not be worth your time, but others might.

You've answered this already; my apologies for the noise.

--Ryan


Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-09-01 Thread rjframe via Digitalmars-d
On Thu, 23 Aug 2018 15:35:45 +, Joakim wrote:

>> * Language complexity
>>
>> Raise your hand if you know how a class with both opApply and the
>> get/next/end functions behaves when you pass it to foreach.
>> How about a struct? Does it matter if it allows copying or not?
>>
>> The language was built because C++ was deemed too complex! Please see
>> the thread about lazy [1] for a case where a question actually has an
>> answer, but nobody seems to know it (and the person who does know it is
>> hard pressed to explain the nuance that triggers this).
> 
> By this rationale, C++ should be dead by now. Why do you think it's
> fatal to D?

It's worth noting that C++ isn't always chosen for its technical merits. 
It's a well-known language whose more or less standard status in certain 
domains means it's the default choice; C++ is sometimes used for projects 
in which Stroustrup would say it's obviously the wrong language for the 
job.

D is far more likely to require justification based on technical merit. If 
D becomes another C++, why bother taking a chance with D when you can just 
use C++, use a well-supported, commonly-used compiler, and hire from a 
bigger pool of jobseekers?


Re: D is dead

2018-09-01 Thread rjframe via Digitalmars-d
On Thu, 23 Aug 2018 15:34:34 +, Matheus wrote:

> Well, I'm D hobbyist and of course it's not a perfect language and you
> have some valid points, but on the other hand I think it's very
> disrespectful to come into a community and say the product that people
> are working mainly as volunteers and without any payment "is dead".
> 
> Matheus.

Not necessarily. If you see somebody's about to drive off a cliff, warning 
them is a good thing to do. If someone thinks the direction D is headed 
will lead to the end of the language as a good/viable choice for 
programmers, then trying to change that direction is the best thing s/he 
can do.


Re: D is dead

2018-09-01 Thread rjframe via Digitalmars-d
On Thu, 23 Aug 2018 19:34:46 +, Abdulhaq wrote:

> There is a class of developers who expect things to Just Work TM,
> especially if they are told that it Just Works. Each time that they
> discover some combination of features that doesn't work they have to
> refactor their code and remember not to try that again. Ultimately the
> developer painfully learns the things that they should not attempt to
> use, or they give up before the process is complete and leave. I expect
> the pain caused by this is much more acute in a commercial environment
> where the pressure is on.
> 
> Long term D developers have learnt not to bother with certain features
> or combinations of features and forget all the pain they went through to
> get that knowledge. They are ones saying, come in the water's lovely.

+1

It's easy to recommend D to someone because it does X, Y, and Z so well, 
not realizing they need X, Y, and B. And D has a honeymoon period - it's 
so awesome and will solve all our problems... until you dig deeper, trying 
to get more and more out of it and struggle to make sense of how to make 
it fit together.

The pragmatic approach to language design has its downsides.


Re: D is dead

2018-09-01 Thread rjframe via Digitalmars-d
On Thu, 23 Aug 2018 04:02:37 -0700, Walter Bright wrote:

> On 8/23/2018 2:09 AM, Shachar Shemesh wrote:
>> * The community
>> 
>> Oh boy.
>> 
>> Someone who carries weight needs to step in when the forum is trying to
>> squash down on criticism. For Mecca, I'm able to do that [2], but for
>> D, this simply doesn't happen.
> 
> If someone is trying to squash criticism, I would like to see what
> you're referring to. If a post contains unprofessional behavior, like
> using f--k or harassing people, it will get removed. Simply being
> critical is not removed (if it was, this this thread would have
> disappeared).

One problem is that "professional" has a broad range of meanings, and as 
variety of cultures are represented here. I've had bosses that thought 
things like "What's the f--- @^Q@#$ is wrong with you?" was professional 
if the person "deserved" it.

It would be nice to have a published code of conduct; it doesn't need to 
be large or formal, just a simple definition of professional, respectful 
behavior. Anybody would be able to point to it, rather than hope you or 
someone who's around enough to feel comfortable calling someone out is on 
the NG at the time.


Re: D is dead

2018-09-01 Thread rjframe via Digitalmars-d
On Thu, 23 Aug 2018 21:04:36 +0300, Shachar Shemesh wrote:

> On 23/08/18 20:52, bachmeier wrote:
>> On Thursday, 23 August 2018 at 17:19:41 UTC, Ali wrote:
>>> On Thursday, 23 August 2018 at 16:22:54 UTC, Shachar Shemesh wrote:
 On 23/08/18 17:01, Steven Schveighoffer wrote:
 My main job is to develop for Weka, not develop D itself.
>>>
>>> Weka, at some point, made the strategic decision to use a non
>>> mainstream language
>>>
>>> I dont think Weka, have a choice, they have to invest in the
>>> development of D itself
>> 
>> I hope a startup can choose D without having to do that. Otherwise D is
>> not really a viable option for startups because they need to focus on
>> survival rather than language development.
> 
> This!
> 
> Maybe Weka can afford it, but being all smug about it is a destructive
> attitude to have. I know that some of Weka's leadership are
> uncomfortable about the fact that we, almost by definition, are facing
> language related issues that no-one in the community has before us.
> 
> Weka is in a good place, and is going in a good direction, but don't
> forget that we are up against giants, and are selling a product where
> 0.1% failure is considered the same as utter failure. Being able to
> trust the compiler was supposed to be a given.
> 
> Yes, Weka is, at this point, committed. The next start-up isn't.
> 
> Shachar


I don't really understand this reasoning; a compiler is a dependency, much 
like a third party library. When a dependency gets in the way of your 
product, you have to make a choice.

If you can't afford 0.1% failure, then if the compiler is holding you 
back, the choice seems to be fix the compiler, replace the compiler/
language, or don't do what you want to do.

Should you have to fix the bugs you run into? No. But if they keep you 
from doing your work, it seems like the economics of fixing D's bugs can 
make sense. If Weka were to assign its own priorities to D's bugs*, and 
have one person, once a week, fix the largest-priority bug, how big of an 
investment would that be, and would the return be worth it? Many bugs will 
definitely not be worth your time, but others might.


* I don't know that it's common, but I have maintained third-party bugs in 
my own tracker; this makes it easy to check their changelog against the 
bugs I care about, especially when I don't subscribe to the bug in their 
tracker for one reason or other. Being able to prioritize their bugs 
against bugs in my own project also helps me decide whether to spend my 
time fixing the third-party library.


Re: D is dead

2018-08-31 Thread Basile B. via Digitalmars-d

On Friday, 31 August 2018 at 08:36:27 UTC, Nick Treleaven wrote:

I hadn't understood the rationale for lazy variadic functions


https://dlang.org/spec/function.html#lazy_variadic_functions

I don't know if this has been updated too but this sentence makes 
no sense :


"Then each of the arguments whose type does not match that of the 
delegate is converted to a delegate."




Re: D is dead

2018-08-31 Thread Nick Treleaven via Digitalmars-d
On Thursday, 23 August 2018 at 09:09:40 UTC, Shachar Shemesh 
wrote:
Please see the thread about lazy [1] for a case where a 
question actually has an answer, but nobody seems to know it


I updated the spec for lazy parameters to add a link to lazy 
variadic functions at the end, and for the latter I added a 
simpler version of Steven Schveighoffer's examples of both. So at 
least in future someone with a similar problem might find out 
that lazy variadics is another option.


https://dlang.org/spec/function.html#lazy-params
https://dlang.org/spec/function.html#lazy_variadic_functions

I hadn't understood the rationale for lazy variadic functions 
just from reading the spec. If I learn something that should be 
mentioned in the spec, I try to make a pull. Failing that, we can 
file bugzilla issues for missing documentation, even if it's only 
an enhancement for clarification.


Re: D is dead

2018-08-29 Thread Jonathan M Davis via Digitalmars-d
On Wednesday, August 29, 2018 2:37:17 AM MDT Walter Bright via Digitalmars-d 
wrote:
> On 8/28/2018 11:52 PM, Jonathan M Davis wrote:
> > Would it make sense then to change it to work more like what you and
> > Martin were thinking of doing?
>
> Yes, it would. But it would be a non-trivial effort to remove Kenji's
> design.

Well, then at least it should be an issue of time and manpower rather than
it being something that we can't reasonably fix from a technical
perspective. So, then presumably, it's a question of priority and whether
it's a pressing enough issue to merit the pain of sorting it out - not that
the todo list is ever really getting shorter around here...

- Jonathan M Davis





Re: D is dead

2018-08-29 Thread Walter Bright via Digitalmars-d

On 8/28/2018 11:52 PM, Jonathan M Davis wrote:

Would it make sense then to change it to work more like what you and Martin
were thinking of doing?


Yes, it would. But it would be a non-trivial effort to remove Kenji's design.



Re: D is dead

2018-08-29 Thread Jonathan M Davis via Digitalmars-d
On Tuesday, August 28, 2018 11:31:40 PM MDT Walter Bright via Digitalmars-d 
wrote:
> On 8/28/2018 6:39 AM, Iain Buclaw wrote:
> > Template emission strategy is a mess, we're better off just
> > instantiating all templates in all compilation units, and let the
> > compiler decide whatever to discard. Even -allinst does not instantiate
> > enough to allow the compiler to make such decisions that C++ has no
> > problem with (most of the time).
>
> Martin and I proposed a simple strategy for that, but Kenji implemented a
> different algorithm that nobody understands, and has proved inadequate.
> There are a couple unresolved bug reports on that.

Would it make sense then to change it to work more like what you and Martin
were thinking of doing?

- Jonathan M Davis





Re: D is dead

2018-08-28 Thread Walter Bright via Digitalmars-d

On 8/28/2018 6:39 AM, Iain Buclaw wrote:
Template emission strategy is a mess, we're better off just instantiating all 
templates in all compilation units, and let the compiler decide whatever to 
discard. Even -allinst does not instantiate enough to allow the compiler to make 
such decisions that C++ has no problem with (most of the time).


Martin and I proposed a simple strategy for that, but Kenji implemented a 
different algorithm that nobody understands, and has proved inadequate. There 
are a couple unresolved bug reports on that.


Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-08-28 Thread Joakim via Digitalmars-d

On Tuesday, 28 August 2018 at 13:39:40 UTC, Iain Buclaw wrote:

On Thursday, 23 August 2018 at 15:35:45 UTC, Joakim wrote:

On Thursday, 23 August 2018 at 07:37:07 UTC, Iain Buclaw wrote:

On Thursday, 23 August 2018 at 06:58:13 UTC, Joakim wrote:
On Thursday, 23 August 2018 at 03:50:44 UTC, Shachar Shemesh 
wrote:

[...]


Can you list what you or other Weka devs believe those fatal 
flaws to be? Because you've not listed any here, which makes 
you no better than some noob that comes in here, says D has 
to get better or it will die, then can't articulate what 
they mean by "better" or worse, mentions something trivial. 
Of course, you've actually used the language for years, so 
presumably you've got some real concerns, but do you really 
think the bug you just posted is "fatal" to the language?


If you think there are fatal flaws, you might as well list 
them, whether technical or the development process, or you 
will just be ignored like any other noob who talks big and 
can't back it up. You may be ignored anyway, ;) but at least 
you'll have made a case that shows you know what you're 
talking about.


I'd define fatal as some that can be fixed, but breaks 100% 
of everyone's code, even if the change is net positive all 
round.


However how big a problem really is is in the eye of the 
beholder. An example:


Symptom: The compiler can't discard unused symbols at compile 
time, and so it will spend a lot of time pointlessly 
optimising code.


Problem: D has no notion of symbol visibility.

Possible Solution: Make all globals hidden by default unless 
'export'.


Side effects: Everyone will be spending weeks to months 
fixing their libraries in order to only mark what should be 
visible outside the current compilation unit as 'export'.


Benefits: Faster compile times, as in, in the most extreme 
example I've built one project on github with gdc -O2 and 
build time went from 120 seconds to just 3!


So your example of a fatal flaw is that D could be 100X faster 
at compilation instead of just 10X than most every other 
native language out there?! C'mon.




But that's not true. D isn't a fast language to compile, dmd is 
just a fast compiler.


You may get a little leading edge with codebases that are 
effectively C. Once you throw templates into the mix though, 
your problems become exponential.


Spending 4 seconds in the front end and codegen, only to wait 2 
minutes in the optimizer is horrific.


The alternative of discarding what seem to be unused symbols 
only results in linker error of the obscure edge cases sort.


Template emission strategy is a mess, we're better off just 
instantiating all templates in all compilation units, and let 
the compiler decide whatever to discard. Even -allinst does not 
instantiate enough to allow the compiler to make such decisions 
that C++ has no problem with (most of the time).


I think I've hit a variation of this problem before, where 
pulling in a single selective import in Phobos somewhere meant 
the entire module was compiled into the executable (though I 
suppose that could be a linker issue?):


https://forum.dlang.org/thread/gmjqfjoemwtvgqrtd...@forum.dlang.org

I guess this is why scoped/selective imports didn't help that 
much in disentangling Phobos. I figured it wasn't a big deal if 
it was just causing bigger executables, but even though I 
mentioned compilation speed there, I didn't think of how that's 
slowing down the compiler too, as you now note.


Pruning what's evaluated by the compiler based on 
scoped/selective imports, rather than apparently including the 
whole module, and getting D compilers to compile parallelized 
without separately invoking each module/package, ie a -j flag for 
the compiler when you invoke it with all your source at once, 
might be good projects for us to crowdfund, as discussed in this 
and my earlier Nim thread. Separate parallel compilation works 
wonders on my octa-core Android/AArch64 phone, where I mostly 
build D now, would be good to be able to combine that with 
invoking ldc with all source at once.


Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-08-28 Thread Iain Buclaw via Digitalmars-d

On Thursday, 23 August 2018 at 15:35:45 UTC, Joakim wrote:

On Thursday, 23 August 2018 at 07:37:07 UTC, Iain Buclaw wrote:

On Thursday, 23 August 2018 at 06:58:13 UTC, Joakim wrote:
On Thursday, 23 August 2018 at 03:50:44 UTC, Shachar Shemesh 
wrote:

[...]


Can you list what you or other Weka devs believe those fatal 
flaws to be? Because you've not listed any here, which makes 
you no better than some noob that comes in here, says D has 
to get better or it will die, then can't articulate what they 
mean by "better" or worse, mentions something trivial. Of 
course, you've actually used the language for years, so 
presumably you've got some real concerns, but do you really 
think the bug you just posted is "fatal" to the language?


If you think there are fatal flaws, you might as well list 
them, whether technical or the development process, or you 
will just be ignored like any other noob who talks big and 
can't back it up. You may be ignored anyway, ;) but at least 
you'll have made a case that shows you know what you're 
talking about.


I'd define fatal as some that can be fixed, but breaks 100% of 
everyone's code, even if the change is net positive all round.


However how big a problem really is is in the eye of the 
beholder. An example:


Symptom: The compiler can't discard unused symbols at compile 
time, and so it will spend a lot of time pointlessly 
optimising code.


Problem: D has no notion of symbol visibility.

Possible Solution: Make all globals hidden by default unless 
'export'.


Side effects: Everyone will be spending weeks to months fixing 
their libraries in order to only mark what should be visible 
outside the current compilation unit as 'export'.


Benefits: Faster compile times, as in, in the most extreme 
example I've built one project on github with gdc -O2 and 
build time went from 120 seconds to just 3!


So your example of a fatal flaw is that D could be 100X faster 
at compilation instead of just 10X than most every other native 
language out there?! C'mon.




But that's not true. D isn't a fast language to compile, dmd is 
just a fast compiler.


You may get a little leading edge with codebases that are 
effectively C. Once you throw templates into the mix though, your 
problems become exponential.


Spending 4 seconds in the front end and codegen, only to wait 2 
minutes in the optimizer is horrific.


The alternative of discarding what seem to be unused symbols only 
results in linker error of the obscure edge cases sort.


Template emission strategy is a mess, we're better off just 
instantiating all templates in all compilation units, and let the 
compiler decide whatever to discard. Even -allinst does not 
instantiate enough to allow the compiler to make such decisions 
that C++ has no problem with (most of the time).


Re: D is dead

2018-08-28 Thread Iain Buclaw via Digitalmars-d
On Thursday, 23 August 2018 at 09:29:30 UTC, Nicholas Wilson 
wrote:

On Thursday, 23 August 2018 at 07:00:01 UTC, Iain Buclaw wrote:
On Thursday, 23 August 2018 at 06:34:04 UTC, Shachar Shemesh 
wrote:

On 23/08/18 09:17, Jacob Carlborg wrote:
I don't see why we just can't add support for scoped lazy 
parameters. It's already in the language just with a 
different syntax (delegates). That would probably be an easy 
fix (last famous words :)). I guess it would be better if it 
could be inferred.


Here's the interesting question, though: is this *going* to 
happen?


We've known about this problem for ages now. No movement.

It's on my todo list, however I've instead been doomed to work 
on higher priority things.


More generally though, some time should be spent on trying out 
things in the spirit of "will it blend" just to see what 
happens.
 Putting effort towards having a more homogeneous environment 
in the language should in the long run pay its dividends.


Is there even any way to escape a lazy? If no, then lazy is 
identical to scope lazy.

E.g. https://run.dlang.io/is fails to compile


Link not found. I assume you tried something like returning a 
delegate that references a lazy parameter?


Re: D is dead

2018-08-28 Thread Walter Bright via Digitalmars-d

On 8/27/2018 7:02 AM, Don wrote:

I can explain this, since I did the original implementation.
[...]

Thank you, Don. And you do have my mad respect for figuring out Windows SEH.


Re: D is dead

2018-08-27 Thread Jonathan M Davis via Digitalmars-d
On Saturday, August 25, 2018 2:16:16 PM MDT Walter Bright via Digitalmars-d 
wrote:
> On 8/25/2018 7:37 AM, Jonathan M Davis wrote:
> > In general, any place where D was
> > designed around the idea that something would _always_ be there (e.g.
> > init values and default initialization) but we've then later added the
> > ability to get around it (e.g. void initialization or @disable) has
> > tended to not play well with everything else and has caused some fun
> > problems.
>
> It's why that stuff isn't allowed in @safe code, and hence one should
> realize one is taking responsibility from the compiler for ensuring the
> correctness. D expects someone writing @system code to have a much
> greater awareness of how the language and the machine works.
>
> If you remove the blade guards from the table saw, more things can be done
> with it, but you'll need to take much greater care using it.

Definitely, but some of the features don't play well together even with
@system - e.g. if you have a struct with an invariant, you can't use void
initialization, because the invariant will be checked when you assign the
struct an actual value later. I was forced to remove the invariant that
SysTime had years ago, because of issues related to that, and I've basically
given up on using invariants in structs as a result. If I'm in full control
of all of the code, it's not a problem, but as soon as I'm providing library
code to someone eles, struct invariants become land mines.

And just in general, it becomes pretty problematic to try to skip or disable
something that the lanugage was built around (e.g. default initialization) -
though fortunately, it usually interacts better than invariants tend to do
when you do something like void initialization.

- Jonathan M Davis





Re: D is dead

2018-08-27 Thread Don via Digitalmars-d

On Monday, 27 August 2018 at 07:34:37 UTC, Walter Bright wrote:

On 8/23/2018 8:53 PM, David Nadlinger wrote:
On Thursday, 23 August 2018 at 23:27:51 UTC, Walter Bright 
wrote:
D deals with it via "chained exceptions", which is 
terrifyingly difficult to understand. If you believe it is 
understandable, just try to understand the various devious 
test cases in the test suite.


I don't think that assessment is accurate. Yes, I ported EH to 
a few new targets and wrote the first correct implementation 
of exception chaining for LDC, so I'm probably a couple of 
standard deviations off the average D user in that regard. But 
said average D user doesn't care about most of the nuances of 
this problem, like the details of implementing exception 
chaining without allocating too much,


I find myself unable to explain the rationale of the behavior 
exhibited by the current chaining system. I dared not change 
it, as I presumed somebody surely built a store around it. It 
does not simply chain exceptions.



or which exceptions take precedence in various intentionally 
twisted test cases.


The only documentation for this is the test suite itself, which 
does not have any documentation or rationale either, just tests.


I would appreciate it if you did document what it's supposed to 
do and why, as likely nobody else knows. Maybe if I understood 
why I'd be more forgiving of it :-)



What they do care about is that the fact that an error has 
occurred is propagated sensibly in all cases without requiring 
extra attention, and that information as to the origin is not 
lost (hence chaining rather than just replacement). Heck, the 
fact that we still don't have default backtrace handlers that 
consistently work on all platforms is probably a much bigger 
problem than the minutiae of exception chaining behaviour.


I wish the minutiae was documented somewhere :-( as I care 
about the nuances of it, if only because I'm ultimately 
responsible for keeping it working correctly.



I can explain this, since I did the original implementation.
When I originally implemented this, I discovered that the idea of 
"chained exceptions" was hopeless naive. The idea was that while 
processing one exception, if you encounter a second one, and you 
chain them together. Then you get a third, fourth, etc.


The problem is that it's much more complicated than that. Each of 
the exceptions can be a chain of exceptions themselves. This 
means that you don't end up with a chain of exceptions, but 
rather a tree of exceptions. That's why there are those really 
nasty test cases in the test suite.


The examples in the test suite are very difficult to understand 
if you expect it to be a simple chain!


On the one hand, I was very proud that I was able to work out the 
barely-documented behaviour of Windows SEH, and it was really 
thorough. In the initial implementation, all the complexity was 
covered. It wasn't the bugfix-driven-development which dmd 
usually operates under .


But on the other hand, once you can see all of the complexity, 
exception chaining becomes much less convincing as a concept. 
Sure, the full exception tree is available in the final exception 
which you catch. But, is it of any use? I doubt it very much.
It's pretty clearly a nett loss to the language, it increases 
complexity with negligible benefit. Fortunately in this case, the 
cost isn't really high.


-Don.







Re: "Constructor" was a Very Bad name choice we have never recovered from (Was Re: D is dead)

2018-08-27 Thread FeepingCreature via Digitalmars-d

On Monday, 27 August 2018 at 11:02:14 UTC, Guillaume Piolat wrote:

C++ binds the two in the same operation.

D does not, T.init must be a valid object. This is a major 
cultural change, though I believe the D way is superior on the 
efficiency stand-point (you can create large arrays of valid 
objects quite fast).


I mean, then again, @disable this() ...


Re: "Constructor" was a Very Bad name choice we have never recovered from (Was Re: D is dead)

2018-08-27 Thread Guillaume Piolat via Digitalmars-d

On Monday, 27 August 2018 at 03:06:17 UTC, John Carter wrote:


The last few years I have told myself (and anyone who doesn't 
back away fast enough) that "Constructors" do _not_ construct 
objects, they are "Name Binders." (Sort of like lisp's "let" 
macro)


They bind instance variable names to pre-existing sub-objects.


One could say there is "storage" and "instantiation" of an object.
C++ binds the two in the same operation.

D does not, T.init must be a valid object. This is a major 
cultural change, though I believe the D way is superior on the 
efficiency stand-point (you can create large arrays of valid 
objects quite fast).


Re: D is dead

2018-08-27 Thread Walter Bright via Digitalmars-d

On 8/23/2018 8:53 PM, David Nadlinger wrote:

On Thursday, 23 August 2018 at 23:27:51 UTC, Walter Bright wrote:
D deals with it via "chained exceptions", which is terrifyingly difficult to 
understand. If you believe it is understandable, just try to understand the 
various devious test cases in the test suite.


I don't think that assessment is accurate. Yes, I ported EH to a few new targets 
and wrote the first correct implementation of exception chaining for LDC, so I'm 
probably a couple of standard deviations off the average D user in that regard. 
But said average D user doesn't care about most of the nuances of this problem, 
like the details of implementing exception chaining without allocating too much, 


I find myself unable to explain the rationale of the behavior exhibited by the 
current chaining system. I dared not change it, as I presumed somebody surely 
built a store around it. It does not simply chain exceptions.




or which exceptions take precedence in various intentionally twisted test cases.


The only documentation for this is the test suite itself, which does not have 
any documentation or rationale either, just tests.


I would appreciate it if you did document what it's supposed to do and why, as 
likely nobody else knows. Maybe if I understood why I'd be more forgiving of it :-)



What they do care about is that the fact that an error has occurred is 
propagated sensibly in all cases without requiring extra attention, and that 
information as to the origin is not lost (hence chaining rather than just 
replacement). Heck, the fact that we still don't have default backtrace handlers 
that consistently work on all platforms is probably a much bigger problem than 
the minutiae of exception chaining behaviour.


I wish the minutiae was documented somewhere :-( as I care about the nuances of 
it, if only because I'm ultimately responsible for keeping it working correctly.




All this is not to say that nothrow constructors aren't a good idea, though.


Not much point to debating that, as they're here to stay.


Re: "Constructor" was a Very Bad name choice we have never recovered from (Was Re: D is dead)

2018-08-26 Thread John Carter via Digitalmars-d

Or to put it another way

RAII should be

"Taking Ownership of a Resource is Initialization, and 
relinquishing ownership is automatic at the object life time end, 
but Failure to Acquire a Resource Is Not An Exceptional 
Circumstance"


Not as catchy, but far less problematic.




"Constructor" was a Very Bad name choice we have never recovered from (Was Re: D is dead)

2018-08-26 Thread John Carter via Digitalmars-d

On Friday, 24 August 2018 at 02:33:31 UTC, Jonathan M Davis wrote:

Walter Bright wrote:
My personal opinion is that constructors that throw are an 
execrable programming practice, and I've wanted to ban them. 
(Andrei, while sympathetic to the idea, felt that too many 
people relied on it.) I won't allow throwing constructors in 
dmd or any software I have authority over.


Wow. I'm surprised by this.

I expect that you'd have a riot on your hands though if you 
actually tried to push for getting rid of throwing constructors.


A generation of programmers have been mislead down a deep rabbit 
hole thinking that "Constructors" are things that "Construct" 
objects.


This has to led to a generation of vaguely smelly code that "does 
too much work in the constructor" (of which throwing exceptions 
is evidence).


The last few years I have told myself (and anyone who doesn't 
back away fast enough) that "Constructors" do _not_ construct 
objects, they are "Name Binders." (Sort of like lisp's "let" 
macro)


They bind instance variable names to pre-existing sub-objects.

This attitude coupled with an a rule of thumb, "make it immutable 
unless I prove to myself that I _need_ it to be mutable" has led 
to a major improvement in my code.


Re: D is dead

2018-08-25 Thread Walter Bright via Digitalmars-d

On 8/25/2018 7:37 AM, Jonathan M Davis wrote:

In general, any place where D was
designed around the idea that something would _always_ be there (e.g. init
values and default initialization) but we've then later added the ability to
get around it (e.g. void initialization or @disable) has tended to not play
well with everything else and has caused some fun problems.


It's why that stuff isn't allowed in @safe code, and hence one should realize 
one is taking responsibility from the compiler for ensuring the correctness. D 
expects someone writing @system code to have a much greater awareness of how the 
language and the machine works.


If you remove the blade guards from the table saw, more things can be done with 
it, but you'll need to take much greater care using it.


Re: D is dead

2018-08-25 Thread Walter Bright via Digitalmars-d

On 8/25/2018 6:33 AM, Shachar Shemesh wrote:
If you allow a feature to be disabled, you really need to keep in mind that 
feature might be well and truly disabled.


Disabling default initializations is not @safe, and that means taking 
responsibility for it not being default initialized.


It's like turning off array bounds checking. Then it's up to you to ensure no 
buffer overflows are happening.


On a pragmatic note, what you're asking for is a set of nested try blocks, one 
for each field with a throwing constructor, as opposed to one try block around 
the entire function. This is an expensive proposition in terms of performance. 
You'll need to weigh that very carefully against saving the default zero 
initialization of the struct, which is very efficient.


Re: D is dead

2018-08-25 Thread Jonathan M Davis via Digitalmars-d
On Saturday, August 25, 2018 7:33:47 AM MDT Shachar Shemesh via Digitalmars-
d wrote:
> On 25/08/18 10:56, Walter Bright wrote:
> > On 8/24/2018 6:34 AM, Shachar Shemesh wrote:
> >> No, unlike what I suggest, that doesn't work without carefully
> >> reviewing every single place you put it to see whether the constructor
> >> actually supports destructing a partially constructed object.
> >
> > All D objects are default-initialized before the constructor sees it
> > (unlike C++). A destructor should be able to handle a
> > default-initialized object.
>
> I'm not talking about a default initialized object. I'm talking about an
> object where the constructor started running, but not to completion.
>
> With that said, this statement is, I think, representative of the Lego
> problem D has. All D objects? Really? Even this one?
>
> struct A {
>int a;
>
>@disable this();
>@disable init;
>
>this(int number);
>~this();
> }
>
> If you allow a feature to be disabled, you really need to keep in mind
> that feature might be well and truly disabled.

As I understand it, it's not actually possible to disable the init value.
Even if bodies are provide for the constructor and destructor (so that they
don't give you errors), you just end up with an error like

q.d(14): Error: no identifier for declarator init

You could replace that with something like

@disable void init();

but that's only legal because declaring a member named init has never been
made illegal even though it's generally been agreed upon (by most of the
core devs anyway) that it should be. The way D is designed, there _must_ be
an init value. The closest that you can get to disabling it is the

@disable this();

line which just disables default initialiation. The init value still gets
used when constructing the object, and it can still be used explicitly.

If void initialization of member variables worked the way that some folks
think that it should - including Andrei and Walter:

https://issues.dlang.org/show_bug.cgi?id=11331
https://issues.dlang.org/show_bug.cgi?id=11817

then I think that that would definitely be an example that would fit the
point that you're trying to make (since they you have to worry about the
constructor partially setting values on top of garbage and then trying to
destroy that correctly), but at least for the moment, it doesn't actually
work. Having to worry about destructors running on void initialized objects
is a similar problem, but not quite the same, since that doesn't involve an
exception being thrown from a constructor. Regardless, even if a type is
designed such that its init value can be properly destroyed, and you don't
have to worry about void initialization, it can't be all that hard to design
it such that the destructor won't work properly if the constructor doesn't
complete properly.

What all of this makes me think of though is a similar problem that
FeepingCreature loves to bring up and complain about, which is that
invariants that consider the init value to be invalid (e.g. if the invariant
checks that a member variable is non-null) blow up in your face if the type
has a destructor, because the invariant gets run before the destructor, and
member variables that are pointers will of course be null in the init value.
And while disabling default initialization helps, it doesn't fix the problem
because of code that explicitly uses the init value. To work around this,
he's come up with some weird solution using unions that's probably going to
break on him at some point (though if I understand correctly, he's changed
std.typecons.Nullable to use it, which makes it a lot less likely that it's
going to break). But really, having an invariant that fails for the init
value is generally a recipe for disaster, much as it's easy to see why it
would be desirable for stuff like pointers.

What's worse is that once void initialization is involved, an invariant is
almost certainly going to fail, because the invariant gets called before
opAssign. And that's the number one reason that I never use invariants in
structs anymore.

In any case, all of that is really a tangent with regards to init values,
but it's definitely a sign of how some of the stuff around init values,
constructors, and destructors doesn't really play well together. And sadly,
it's really not that hard to get into a state where your destructor is going
to have serious problems if it's run. In general, any place where D was
designed around the idea that something would _always_ be there (e.g. init
values and default initialization) but we've then later added the ability to
get around it (e.g. void initialization or @disable) has tended to not play
well with everything else and has caused some fun problems.

- Jonathan M Davis





Re: D is dead

2018-08-25 Thread Shachar Shemesh via Digitalmars-d

On 25/08/18 10:56, Walter Bright wrote:

On 8/24/2018 6:34 AM, Shachar Shemesh wrote:
No, unlike what I suggest, that doesn't work without carefully 
reviewing every single place you put it to see whether the constructor 
actually supports destructing a partially constructed object.


All D objects are default-initialized before the constructor sees it 
(unlike C++). A destructor should be able to handle a 
default-initialized object.


I'm not talking about a default initialized object. I'm talking about an 
object where the constructor started running, but not to completion.


With that said, this statement is, I think, representative of the Lego 
problem D has. All D objects? Really? Even this one?


struct A {
  int a;

  @disable this();
  @disable init;

  this(int number);
  ~this();
}

If you allow a feature to be disabled, you really need to keep in mind 
that feature might be well and truly disabled.


Re: D is dead

2018-08-25 Thread Nicholas Wilson via Digitalmars-d

On Saturday, 25 August 2018 at 07:56:55 UTC, Walter Bright wrote:

On 8/24/2018 6:34 AM, Shachar Shemesh wrote:
No, unlike what I suggest, that doesn't work without carefully 
reviewing every single place you put it to see whether the 
constructor actually supports destructing a partially 
constructed object.


All D objects are default-initialized before the constructor 
sees it (unlike C++). A destructor should be able to handle a 
default-initialized object.


Then we should add a switch to inject a unittest to run a 
destructor on a default initialisable object. i.e. if it has a 
static opCall or an @disable this(); then don't otherwise do. 
Otherwise this is a well disguised instance of faith based 
programming.


Re: D is dead

2018-08-25 Thread Walter Bright via Digitalmars-d

On 8/24/2018 6:34 AM, Shachar Shemesh wrote:
No, unlike what I suggest, that doesn't work without carefully reviewing every 
single place you put it to see whether the constructor actually supports 
destructing a partially constructed object.


All D objects are default-initialized before the constructor sees it (unlike 
C++). A destructor should be able to handle a default-initialized object.


Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-08-24 Thread Elronnd via Digitalmars-d
On Friday, 24 August 2018 at 11:55:47 UTC, Petar Kirov 
[ZombineDev] wrote:
One of the things that makes Go successful is the quality/ease 
of use of its toolchain. They have full cross-compilation 
support out of the box because they don't rely on anything from 
the C toolchain (libc, linker, etc.). They implement implement 
everything themselves, from the syscall layer


This is something that has caused breakage on newer versions of 
macos, and broadly makes it difficult to port to new OSes.  
Something that might be worth pursuing, though, is implementing 
some of the things in core.stdc in pure d, like printf or strcmp, 
but printf *would* ultimately forward to the actual libc fwrite.


Re: D is dead

2018-08-24 Thread Mike Franklin via Digitalmars-d
On Friday, 24 August 2018 at 22:52:07 UTC, Steven Schveighoffer 
wrote:


I really don't want to see dlang have to maintain posix system 
calls on all supported OSes when that's already being done for 
us.


Windows makes this simpler -- the system calls are separate 
from the C runtime. It would be nice if Posix systems were that 
way, but it's both silly to reinvent the system calls (they are 
on every OS anyways, and in shared-library form), and a 
maintenance nightmare.


Keep in mind that we only need to implement the system calls that 
we need.  I haven't looked into Phobos, and probably never will.  
My interest is mostly in druntime.  At this time, I think we only 
need 2:  `sbrk` and `mmap` for `malloc`. I don't consider that 
much of a maintenance burden, and `malloc` and friends are my 
least concern at the moment.


We're disproportionately leveraging libc in druntime; there are 
only a few things needed from libc for druntime, and I think I 
can demonstrate benefit writing them in D (or if someone else 
wants to, please do, I may never even get to it).


If I even stick around in the D community long enough to pursue 
this, this change it'll be incremental and I'll demonstrate 
benefit each step of the way.


Mike


Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-08-24 Thread Jonathan M Davis via Digitalmars-d
On Friday, August 24, 2018 4:44:31 PM MDT Dominikus Dittes Scherkl via 
Digitalmars-d wrote:
> You're underestimating the benefits. It's not just to be
> eventually slightly faster. It makes @safe versions possible,
> this in turn avoids a lot of @trusted calls, so reduces review
> effort. It allows also to develop own kernels (for maybe new
> hardware) without needing a c-toolchain an it makes D more self
> contained. There are certainly more advantages. And if you don't
> like it, the c stuff remains there for you to use.

It doesn't reduce the number of @trusted calls at all. Best case, you're
talking about using @trusted with syscall instead of a function like stat,
and for many of the C functions, it's perfectly reasonable to just mark
their bindings as @trusted, eliminating the need to use @trusted yourself
entirely. You're not reducing the number of uses of @trusted. All you get
out of it is that then you've written the OS code using @system rather than
relying on the C programmers to do their job when writing basic OS stuff.
You then might catch a problem writing that code that someone writing the
same code in C wouldn't have caught as easily, but that's it. You're
bypassing a _heavily_ used and tested piece of code written by experts just
because you want to be able to have @safe verify it, or because you want to
avoid it simply because it's C. And because of the prevalence of pointers to
local addresses in such code, there's a pretty good chance that a lot of it
will have to be hand-vetted and marked with @trusted anyway instead of being
able to take advantage of @safe.

And if someone wants to write an OS in D, then fine. They can do it. There's
nothing about our current approach that stops them. As I understand it,
there have already been a couple of projects to do exactly that, but you're
not going to replace the major OSes with D any time soon (or likely ever),
and the vast majority of D code is going to be interacting with those OSes -
most of which provide their public APIs via C (many via the same POSIX API).

By using libc like everyone else, we get to take advantage of that work and
work with a more portable API, risking fewer bugs in the process. Right now,
we don't have to test all of the bindings in druntime to death, because
they're just bindings, and we can rely on the libc guys to have done their
job, whereas we would then be doing their jobs if we insisted on bypassing
libc. It's a maintenance nightmare for little to no benefit. I don't want to
have to deal with it as a maintainer, and I don't want programs that I write
to be bypassing libc using a custom implementation just because someone
decided that they didn't like the fact that it was in C instead of D.

- Jonathan M Davis





Re: D is dead

2018-08-24 Thread Steven Schveighoffer via Digitalmars-d

On 8/24/18 6:16 PM, Jonathan M Davis wrote:

On Friday, August 24, 2018 7:46:57 AM MDT Mike Franklin via Digitalmars-d
wrote:

On Friday, 24 August 2018 at 13:21:25 UTC, Jonathan M Davis wrote:

I think that you're crazy.


No, I just see more potential in D than you do.


To be clear, I'm not calling you crazy in general. I'm calling the idea of
bypassing libc to call syscalls directly under any kind of normal
circumstances crazy. There is tons of work to be done around here to improve
D, and IMHO, reimplementing OS functions just because they're written in C
is a total waste of time and an invitation for bugs - in addition to making
the druntime code that much less portable, since it bypasses the API layer
that was standardized for POSIX systems.


Let me say that I both agree with Jonathan and with Mike.

I think we should reduce Phobos dependence on the user-library part of 
libc, while at the same time, not re-inventing how the OS bindings are 
called. For example, using Martin's std.io library instead of .


I really don't want to see dlang have to maintain posix system calls on 
all supported OSes when that's already being done for us.


Windows makes this simpler -- the system calls are separate from the C 
runtime. It would be nice if Posix systems were that way, but it's both 
silly to reinvent the system calls (they are on every OS anyways, and in 
shared-library form), and a maintenance nightmare.


For platforms that DON'T have an OS abstraction, or it's split out from 
the user library part of libc, it would be perfectly acceptable to write 
a shim there if needed. I'd be surprised if it's not already present in 
C form.


-Steve


Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-08-24 Thread Dominikus Dittes Scherkl via Digitalmars-d

On Friday, 24 August 2018 at 22:16:25 UTC, Jonathan M Davis wrote:
On Friday, August 24, 2018 7:46:57 AM MDT Mike Franklin via 
Digitalmars-d wrote:
On Friday, 24 August 2018 at 13:21:25 UTC, Jonathan M Davis 
wrote:

> I think that you're crazy.

No, I just see more potential in D than you do.


To be clear, I'm not calling you crazy in general. I'm calling 
the idea of bypassing libc to call syscalls directly under any 
kind of normal circumstances crazy. There is tons of work to be 
done around here to improve D, and IMHO, reimplementing OS 
functions just because they're written in C is a total waste of 
time and an invitation for bugs - in addition to making the 
druntime code that much less portable, since it bypasses the 
API layer that was standardized for POSIX systems. It's the 
kind of thing that's going to cause us way more work, more 
bugs, and make us that much less compatible with existing 
libraries. And for what? To _maybe_ get slightly better 
performance (which you probably won't get)? I honestly think 
that trying to bypass libc to talk to the kernel directly is 
actively worse than just using libc much as it would be great 
if we somehow lived in a world where every library we used was 
written in D. But the reality of the matter is that there is a 
_lot_ out there already written in C where it simply makes no 
sense to try to replace it. We're always going to need to 
interoperate with C unless we somehow convince all of the C 
developers to at least switch to -betterC (which obviously 
isn't happening).


- Jonathan M Davis


You're underestimating the benefits. It's not just to be 
eventually slightly faster. It makes @safe versions possible, 
this in turn avoids a lot of @trusted calls, so reduces review 
effort. It allows also to develop own kernels (for maybe new 
hardware) without needing a c-toolchain an it makes D more self 
contained. There are certainly more advantages. And if you don't 
like it, the c stuff remains there for you to use.


Re: D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)

2018-08-24 Thread Jonathan M Davis via Digitalmars-d
On Friday, August 24, 2018 7:46:57 AM MDT Mike Franklin via Digitalmars-d 
wrote:
> On Friday, 24 August 2018 at 13:21:25 UTC, Jonathan M Davis wrote:
> > I think that you're crazy.
>
> No, I just see more potential in D than you do.

To be clear, I'm not calling you crazy in general. I'm calling the idea of
bypassing libc to call syscalls directly under any kind of normal
circumstances crazy. There is tons of work to be done around here to improve
D, and IMHO, reimplementing OS functions just because they're written in C
is a total waste of time and an invitation for bugs - in addition to making
the druntime code that much less portable, since it bypasses the API layer
that was standardized for POSIX systems. It's the kind of thing that's going
to cause us way more work, more bugs, and make us that much less compatible
with existing libraries. And for what? To _maybe_ get slightly better
performance (which you probably won't get)? I honestly think that trying to
bypass libc to talk to the kernel directly is actively worse than just using
libc much as it would be great if we somehow lived in a world where every
library we used was written in D. But the reality of the matter is that
there is a _lot_ out there already written in C where it simply makes no
sense to try to replace it. We're always going to need to interoperate with
C unless we somehow convince all of the C developers to at least switch to
-betterC (which obviously isn't happening).

- Jonathan M Davis





Re: D is dead

2018-08-24 Thread Wyatt via Digitalmars-d

On Thursday, 23 August 2018 at 11:02:31 UTC, Mike Franklin wrote:
On Thursday, 23 August 2018 at 10:41:03 UTC, Jonathan M Davis 
wrote:


Languages pretty much always get more complicated over time, 
and unless we're willing to get rid of more stuff, it's 
guaranteed to just become more complicated over time rather 
than less.


"A designer knows he has achieved perfection not when there is 
nothing left to add, but when there is nothing left to take 
away." -- Antoine de Saint-Exupery


I think that's actually a mistranslation from what he actually 
said, but it's still quite good.


Liberties were taken there, but it's probably more applicable to 
this situation than a lot of the times C/Unix beards try to play 
it as though their tech of choice is beyond culpability.


For context, he's talking about the process of aeronautical 
engineering and the thrust of this statement is really commentary 
on effort and elegance.


A little before that, he talks about the grand irony that so much 
thoughtful effort and design goes into refining things so they're 
as simple as possible.  But "simple" is relative to the thing and 
the task (my understanding is that "simple" kind of conflates 
"reliable" here, too).  So this is where he rightly acknowledges 
that the process of refinement isn't a waste for what it removes 
even though it's often much greater than the effort to create 
something in the first place.


It's wrapped in a broader understanding that you have to have 
something that works at all before you can streamline it.


-Wyatt


Re: D is dead

2018-08-24 Thread Walter Bright via Digitalmars-d

On 8/23/2018 6:57 PM, Shachar Shemesh wrote:
At this point I can either use the work-around I already have and (try to, 
obviously unsuccessfully) forget about it, file a bug report that will be 
(justifiably) ignored because no-one else can reproduce it, or spend an unknown 
amount of time (two days would probably be low-balling at this point) in trying 
to get this to reproduce on a watered down version of the code.


Which would you pick?


You should file a bug report, even with no example. It'll still be a clue, 
sometimes I can find problems without an example.


But still, assuming it is a compiler bug is a dodgy practice. I've drilled down 
on a lot of bug reports that the submitter was absolutely sure was a compiler 
bug, that turned out to be invalid.


Re: D is dead

2018-08-24 Thread David Gileadi via Digitalmars-d

On 8/24/18 10:02 AM, David Nadlinger wrote:

On Friday, 24 August 2018 at 03:53:38 UTC, David Nadlinger wrote:

[…]
All this is not to say that nothrow constructors aren't a good idea, 
though.


This was meant to say nothrow DEstructors, as hopefully obvious from 
context. —David


I was about to throw down some constructive criticism, but you caught it 
early ;)


Re: D is dead

2018-08-24 Thread David Nadlinger via Digitalmars-d

On Friday, 24 August 2018 at 03:53:38 UTC, David Nadlinger wrote:

[…]
All this is not to say that nothrow constructors aren't a good 
idea, though.


This was meant to say nothrow DEstructors, as hopefully obvious 
from context. —David


  1   2   3   >