March 11, 2018
On Sunday, 11 March 2018 at 17:15:28 UTC, Seb wrote:
> I assume you are using Windows?

Yes, I'm the typical lazy convenient Windows user scared of the terminal window.

> Setup on Posix is really simple.
> git clone all three repos + run make.

I am happy for Posix users. Theoretically the process is the same on Windows.

>
> There's also a bash script to automate this:
>
> https://github.com/dlang/tools/blob/master/setup.sh

This will need Linux subsystem as a Windows feature installed. Bash scripts do not work on Windows. Or other third party applications that are not listed as prerequisites on wiki.

>
> From what I heard it's a bit tricky on Windows. I only tried with wine and that worked out-of-the-box for me. Execute the DMD installer, set PATH, DM_HOME and HOST_DC and then run the win32 makefiles work fine.

make -fwin32.mak release
Error: don't know how to make 'release'

Ok, let's skip this, make it without "release".

Now test it:

cd test
make all -j8
Command error: undefined switch '-j8'


>
> What could be done from your perspective to make the setup easier?

From my perspective I would like to have an working setup, not necessary easier. But if interested, to contribute to C# compiler, you just need to open roslyn.sln in Visual Studio, make your modification, run the test suite, commit, you're done.




March 12, 2018
On Sunday, 11 March 2018 at 07:59:53 UTC, rumbu wrote:
> Because, even the language creators seem to not recognize this, D looks like C# with *native compilation*, the syntax is 95% identical. Basically, if my source code doesn't use any .NET framework function, it will compile successfully with dmd without any (major) change.
As an aside, I had to translate a special-use decompression algorithm from C# to D, and it was a near seamless transition. I'm trying to persuade some of my C# compatriots to try D because of that experience.
March 12, 2018
On Sunday, 11 March 2018 at 16:15:22 UTC, rumbu wrote:
> On Sunday, 11 March 2018 at 14:37:28 UTC, bachmeier wrote:
>> And this clarifies the source of your confusion. The D programming language is an open source project, not a for-profit company. D is not the language you're looking for.
>
> There are 3 years since C# is also open source project. Last week 72 pull requests form 24 contributors were merged on ~master. And this is only for Roslyn (the C# compiler).
>
> The difference (at least for me) is that contributing to C# is a no-brainer. Contributing to D needs an advanced degree in computer science. Using the information on the D wiki didn't helped me until now to successfully compile and test a fresh copy of dmd or phobos.

Funnily enough, becoming a significant contributor to the ecosystem - compiler or Phobos - demonstrably does not require even a complete graduation from high school or any industrial programming experience.  I know of what I speak, but I don't say who as it's not for me to say.

I was in Munich over new year and I asked someone else who has been a star contributor how he got involved.  It was really easy for him to start contributing, so he did.  But different people find different things easy.

You don't need to have subsystem for Linux to use bash.  Just the standard git client for Windows is enough.

I agree the Windows experience could be easier upfront.  Still, it's better than it used to be and next year it will be better again.

You can't really compare the C# ecosystem to the D ecosystem because they are organised around different principles.  Yes, the pain is upfront with D, and it's not for everyone.  However on the basis of rational calculation the pain in learning something new is a small part of the total cost of the technology choice and for some people by far not the most relevant question.

And it's an advantage in hiring because the D community filters for people who have a tolerance for discomfort upfront.

It would be wonderful to be able to wave a wand and make all of life's little frustrations disappear.  But in my experience, that's not what is possible - one picks from the choices available and the new ones one thinks up.  People have a tendency to think that leadership has more power to just change things then is actually the case.

I'm going to be building standard developer images from scratch programmatically.  Transform froma Windows  ISO into  a VM image.Maybe I could open source those scripts and then it's easier to get to the bottom of any install and build problems and one can replicate difficulties.


March 12, 2018
On Sunday, 11 March 2018 at 07:59:53 UTC, rumbu wrote:
> On Sunday, 11 March 2018 at 01:10:28 UTC, psychoticRabbit wrote:
>> On Sunday, 11 March 2018 at 00:36:19 UTC, Dylan Graham wrote:
>
>> And personally, depending on the problem, C# is better to program in than D. I still don't know why C# programmers are willing to give up C# and prefer to use D.
>> C# is vastly surperior for what it does.
>>
>
> Because, even the language creators seem to not recognize this, D looks like C# with *native compilation*, the syntax is 95% identical. Basically, if my source code doesn't use any .NET framework function, it will compile successfully with dmd without any (major) change.
>
> I suppose that every C# programmer is enthusiastic on the first contact with the D language, but fails to keep his enthusiasm when he sees Phobos. C# programmer's mind is locked in the OOP world and Phobos looks like a mess from his point of view.
>
> The problem is that D stagnates and in the same time C# evolves. Sometimes I feel like the C# language team is using D as inspiration for the new features, starting with C# 7.0, a lot of D concepts were introduced in the language: local functions, '_' as digit separator, binary literals, ref returns, tuples, templates, immutability. Guess what the next version of C# has on the table: slices.
>
> In the same time, D delegates new features (and sometime existing ones) to library implementation, instead of assume them in the language syntax.
>
> My opinion is that the day when C# will compile to native (on any platform), the C# developer interest in D will drop instantly.

It's a good thing not bad that other languages are inspired by what works.  Languages aren't in a vicious battle to the death, a Hobbesian war of all against all.  If C# gets better, that's great!

I don't think D is stagnating at all - on the contrary, it's amazing to see the ecosystem flourishing, no matter where you look - documentation, adoption, libraries, commercial adoption.

I think it's reasonable to disagree with the strategic decision made to move capabilities from compiler to libraries.  But you really have to make an argument about why you disagree if you are you expect to be persuasive because there is a thought-through argument for the choices made, which I am sure you must be familiar with.

I don't think it matters much whether you are right about what happens to C# programmer interest in D dies as soon as C# native cross-platform is ready because D is quite an ambitious language and doesn't need to depend on adoption from any one community to continue growing at an impressive rate.  As it happens though, as an empirical matter I doubt it.

C# slices look great.  I wanted to use them for generating wrappers for our analytics.  Not that easy for that purpose, from what I could see.  Looks like the primitives are stack only, and I tried to figure out how to use them elsewhere and gave up because it wasn't that easy.

If Phobos looks like a mess to C# programmers, so much the worse for C# programmers.  However I doubt they this is true in the general case.  It's better in many ways, but different and unfamiliar and everything unfamiliar is disconcerting in the beginning.






March 12, 2018
On Sunday, 11 March 2018 at 19:58:51 UTC, rumbu wrote:
> On Sunday, 11 March 2018 at 17:15:28 UTC, Seb wrote:
>> [...]
>
> Yes, I'm the typical lazy convenient Windows user scared of the terminal window.
>
>> [...]
>
> I am happy for Posix users. Theoretically the process is the same on Windows.
>
>> [...]
>
> This will need Linux subsystem as a Windows feature installed. Bash scripts do not work on Windows. Or other third party applications that are not listed as prerequisites on wiki.
>
>> [...]
>
> make -fwin32.mak release
> Error: don't know how to make 'release'
>
> Ok, let's skip this, make it without "release".
>
> Now test it:
>
> cd test
> make all -j8
> Command error: undefined switch '-j8'

Why are you adding -j8 ? Does it say to do so in the instructions ? Try without it.  (I can't test here as typing from my phone).

March 12, 2018
On Sunday, 11 March 2018 at 16:15:22 UTC, rumbu wrote:
> On Sunday, 11 March 2018 at 14:37:28 UTC, bachmeier wrote:
>> And this clarifies the source of your confusion. The D programming language is an open source project, not a for-profit company. D is not the language you're looking for.
>
> There are 3 years since C# is also open source project. Last week 72 pull requests form 24 contributors were merged on ~master. And this is only for Roslyn (the C# compiler).
>
> The difference (at least for me) is that contributing to C# is a no-brainer. Contributing to D needs an advanced degree in computer science. Using the information on the D wiki didn't helped me until now to successfully compile and test a fresh copy of dmd or phobos.

Hey.. I feel your pain.. I like things to be easy too ;-)

but I think comparing things in the C# world, to things in the D world, does not make a lot of sense, really.

It's like comparing my local corner shop to some worldwide supermarket chain.

What's the point in going into the local corner shop and complaing that they don't stock this or that, but the supermarket down the road does. Or complaining that they charge $4 for a loaf of bread, when down the road at the supermarket it only costs $2.50.

You have to compare apples with apples, not apples with shiny red toffee apples ;-)

March 11, 2018
On Monday, March 12, 2018 03:37:11 Laeeth Isharc via Digitalmars-d-announce wrote:
> On Sunday, 11 March 2018 at 19:58:51 UTC, rumbu wrote:
> > On Sunday, 11 March 2018 at 17:15:28 UTC, Seb wrote:
> >> [...]
> >
> > Yes, I'm the typical lazy convenient Windows user scared of the terminal window.
> >
> >> [...]
> >
> > I am happy for Posix users. Theoretically the process is the same on Windows.
> >
> >> [...]
> >
> > This will need Linux subsystem as a Windows feature installed. Bash scripts do not work on Windows. Or other third party applications that are not listed as prerequisites on wiki.
> >
> >> [...]
> >
> > make -fwin32.mak release
> > Error: don't know how to make 'release'
> >
> > Ok, let's skip this, make it without "release".
> >
> > Now test it:
> >
> > cd test
> > make all -j8
> > Command error: undefined switch '-j8'
>
> Why are you adding -j8 ? Does it say to do so in the instructions ? Try without it.  (I can't test here as typing from my phone).

When dealing with building on Windows, it would definitely pay to read the instructions and not assume anything about make, since unfortunately, the Windows build uses the digital mars make, which is severely limited in comparison to the BSD make or GNU make.

- Jonathan M Davis

March 11, 2018
On Monday, March 12, 2018 03:31:36 Laeeth Isharc via Digitalmars-d-announce wrote:
> If Phobos looks like a mess to C# programmers, so much the worse for C# programmers.  However I doubt they this is true in the general case.  It's better in many ways, but different and unfamiliar and everything unfamiliar is disconcerting in the beginning.

Yeah, I remember when I was first dealing with D years ago, and the range stuff that was in there was totally unfamiliar, and it annoyed me, because I just wanted the iterators that I was familiar with so that I could easily do what I wanted to do. Granted, it was worse to figure all of that out then, since the documentation was much worse (e.g. at the time, there was a compiler bug that made it so that auto return functions did not show up in the documentation, so all of std.algorithm explicitly listed the return types, making it downright scary), but still, at the time, I just didn't want to deal with figuring out the unfamiliar concept, so it annoyed me. Now, I actually understand ranges and am very glad that they're there, but as a D newbie, they were annoying, because they were unfamiliar. I think that I'd approach it all very differently now, since at the time, I was in college and just generally a far less experienced programmer, but I think that many of us tend to look for what we expect when learning a new language or library, and when that's not what we get, it can be disconcerting to begin with.

Phobos is very unique in its approach with ranges, likely making it a major learning experience for anyone from any language, but AFAIK, the only language with a comparable approach in its standard library is C++, and I'd definitely expect it to be somewhat alien to the average C# or Java programmer - at least to begin with. D does things differently, so anyone learning it is just going to have to expect to deal with a learning curve. How steep a curve that is is going to depend on the programmer's experience and background, but it's going to be there regardless.

- Jonathan M Davis

March 12, 2018
On Monday, 12 March 2018 at 04:54:22 UTC, Jonathan M Davis wrote:
> On Monday, March 12, 2018 03:37:11 Laeeth Isharc via Digitalmars-d-announce wrote:
>> On Sunday, 11 March 2018 at 19:58:51 UTC, rumbu wrote:
>> > [...]
>>
>> Why are you adding -j8 ? Does it say to do so in the instructions ? Try without it.  (I can't test here as typing from my phone).
>
> When dealing with building on Windows, it would definitely pay to read the instructions and not assume anything about make, since unfortunately, the Windows build uses the digital mars make, which is severely limited in comparison to the BSD make or GNU make.
>
> - Jonathan M Davis

That's only partially true and the reason for the error. GNU/BSD make is required to run the DMD testsuite.
BTW removal of DigitalMars Make has been officially approved since a long time, but it's blocked since it's so hard to make changes to the auto-tester.
March 12, 2018
On Monday, 12 March 2018 at 03:37:11 UTC, Laeeth Isharc wrote:
>>
>> cd test
>> make all -j8
>> Command error: undefined switch '-j8'
>
> Why are you adding -j8 ? Does it say to do so in the instructions ? Try without it.  (I can't test here as typing from my phone).

https://wiki.dlang.org/DMD_development

Of course, it works without the -j8 switch, but the documentation doesn't say that multiple threads option is only available on Linux.