December 28, 2017
On Thursday, 28 December 2017 at 02:39:58 UTC, Dan Partelly wrote:
>
> Id wish things would be so simple. Unfortunately, no, there is no void to be filled by a monopoly here.   It's a place full of competition, and to gain a spot (not bene, a spot, the monopoly doesnt exist) you have to demonstrate that you are a compelling enough improvement.

https://www.youtube.com/watch?v=vYEKEIpM2zo

December 28, 2017
On Thursday, 28 December 2017 at 02:48:11 UTC, codephantom wrote:
>
> https://www.youtube.com/watch?v=vYEKEIpM2zo

Thanks Ill watch it, but when I mentioned worse is better I didn't had C++ in mind. I thought at new language who gains traction lately but it is clearly inferior to D technically.

It was... Go.


December 28, 2017
On Thursday, 28 December 2017 at 00:36:32 UTC, Dan partelly wrote:
> On Wednesday, 27 December 2017 at 22:36:08 UTC, Walter Bright wrote:
>> On 12/27/2017 8:57 AM, Laeeth Isharc wrote:
>>> It's much better to have a monopoly of some niche or set of niches and to use energy from success to expand out from there, than to have a small market share of an enormous market.
>>
>> Back in the 80's, Zortech made a killing because we had the only C++ compiler that would generate 16 bit Windows code.
>>
>> I found this out by asking the sales guys what feature of ZTC++ was closing the deal - X, Y, Z, all the features I held dear. They'd say nope. Customers wanted to use C++ for Win16, ZTC++ supported that, sold!
>>
>> I learned a lot from that.
>
> That a product which fulfils a need in a total void sells? No disrespect, but aint it a bit tautological ? Can you find a similar void today which is to be filled by D ? Better yet can you create one ?

Read Peter Thiel's Zero To One, and maybe Walter's point will become clear.  If you don't want to read it, that's fine too, but it's hard to have a discussion if someone isn't familiar with the background of how challengers very often tend to succeed and isn't interested to learn about it.

Yes, evidently enough  people using D believe it fills a need.  See list of companies using D.  Most of them have better things to do than post in the forum however.

From my point of view, D already has a monopoly, as I don't see an alternative that's in the same league for what I want to do. I'm not going to spell out all the reasons here.

By far the best thing if you want to form an assessment of the language for your own needs is to watch a bunch of dconf videos, read the bits of Phobos that appeal to you, read lots of other D code and start trying to solve your own problems.

I don't think it's a language suitable for everyone, but I do think most people for whom it's suitable today will quickly get why if they take some of those steps I suggested...

December 28, 2017
On Thu, 28 Dec 2017 00:57:41 +0100, Timon Gehr wrote:

> On 27.12.2017 16:37, rjframe wrote:
>> If the programmer opts-in to those checks... it's a +1 for pragmatism but does make marketing the language a bit weird -- one-liners spawn objections to the integrity of the claim (such as a portion of this thread; if there are objections within the community, how much more will we find objections outside it!).
> 
> Frankly, I can see no need to appeal to people who think that having a culture where people feel free to question claims they consider dubious somehow reflects badly on the community or the language (hint: it's the opposite).


I must not have explained my thoughts very well there.

My point is that if people that have already begun using the language aren't certain it's being accurately described, we can (should?) expect those who haven't chosen to learn the language to think the same. But if they think it's being misrepresented, they may just decide not to bother. We have to be careful to be accurate, and we unfortunately don't get to control the definitions of the words we use.

To say that D should become memory-safe by default (as many do) is to claim it is not currently memory-safe by default; so can D be called a memory-safe language? E.g., would the claim that "D is memory-safe" be commonly-interpreted to mean "D is memory-safe by default"?

The MSVC compiler does buffer security checks, by default, in release builds[1]. I believe clang lets you add bounds checks via a compiler flag. Do these make C++ a memory-safe language? (answer: definitely not)


I think the dlang.org home page description in the "Run Fast" section is perfect, or at least nearly so. But I don't think a simple "D is memory- safe" is even true.


[1]: https://docs.microsoft.com/en-us/cpp/build/reference/gs-buffer- security-check
December 28, 2017
On Thursday, 28 December 2017 at 02:53:56 UTC, Dan Partelly wrote:
> On Thursday, 28 December 2017 at 02:48:11 UTC, codephantom wrote:
>>
>> https://www.youtube.com/watch?v=vYEKEIpM2zo
>
> Thanks Ill watch it, but when I mentioned worse is better I didn't had C++ in mind. I thought at new language who gains traction lately but it is clearly inferior to D technically.
>
> It was... Go.

I tried Go. I didn't like it. Syntax changes were not necessary, and I got the feeling that the philosophy of Go, is that programmers are incompetent and need training wheels. It wasn't for me.

I looked at Rust, but never tried it, as I found the syntax to pretty awful - and it reminded my too much of C++.

I looked at D, it looked nice. Syntax was familiar, and very C like (which is the best kind of syntax IMHO). I decided to try it.. and I just found it easy to work with...despite some bugs, which you kinda of have to accept for now..but it's getting a lot better.

Most importantly for me, is that it works on FreeBSD, otherwise I'll lose interest immediately. I still use C though, as C is still 'the' primary language on x..BSD, and will remains so for the forseeable future.

But gee.. I can do things in D so easily and quickly compare to C, and I don't feel like I giving up much for that convenience. Compare that to running dotnet ... grrrr...you sit there just waiting for the program to load.

So everyone comes to a new language with their own requirements.

Work out what your's are... or just play with it.. and enjoy what it has to offer.

December 27, 2017
On 12/27/2017 7:01 PM, rjframe wrote:
> The MSVC compiler does buffer security checks, by default, in release
> builds[1].

This is simply not checkable memory safety. All it is is setting aside some memory locations in strategic places with known values in that memory. If those values change, then some code somewhere must have a memory safety bug in it.

It's like picking two triangles and showing Pythagorean's theorem holds for them, vs proving Pythagorean's theorem works for all right triangles.
December 27, 2017
On 12/27/2017 8:29 AM, Russel Winder wrote:
> This does not support the original claim that the design of D by you is
> based on psychology. It may be based on your perception of other
> programmers needs, which is fine per se, but that is not psychology-
> based design.

All programming language design is based on human factors, i.e. psychology. If it was purely computer science based, it would be in binary.

December 28, 2017
On Thursday, 28 December 2017 at 04:49:04 UTC, Walter Bright wrote:
> On 12/27/2017 8:29 AM, Russel Winder wrote:
>> This does not support the original claim that the design of D by you is
>> based on psychology. It may be based on your perception of other
>> programmers needs, which is fine per se, but that is not psychology-
>> based design.
>
> All programming language design is based on human factors, i.e. psychology. If it was purely computer science based, it would be in binary.

01100010 01110101 01110100 00100000 01001001 00100000 01100011 01100001 01101110 00100000 01110011 01110000 01100101 01100001 01101011 00100000 01100010 01101001 01101110 01100001 01110010 01111001 00100000 01101010 01110101 01110011 01110100 00100000 01100110 01101001 01101110 01100101 00100001

December 28, 2017
On Wed, 2017-12-27 at 14:36 -0800, Walter Bright via Digitalmars-d wrote:
> […]
> 
> I found this out by asking the sales guys what feature of ZTC++ was
> closing the
> deal - X, Y, Z, all the features I held dear. They'd say nope.
> Customers wanted
> to use C++ for Win16, ZTC++ supported that, sold!
> […]

Give the punters what they want, even if it is not what they need or should want. ;-)

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


December 28, 2017
On Thu, 2017-12-28 at 03:34 +0000, codephantom via Digitalmars-d wrote:
> 
[…]
> I tried Go. I didn't like it. Syntax changes were not necessary, and I got the feeling that the philosophy of Go, is that programmers are incompetent and need training wheels. It wasn't for me.

The core of go is lightweight processes and message passing/channels. This makes it an excellent language and one of the reasons it has taken off. (D has heavyweight processes and message passing which is great, but isn't the same as Go.) A core principle for Go is that Google interns can't break stuff in Google code. Add that to being a GC focused extension of C and voila Go. It is a good language if you get into it: a small language with a few annoying quirks, but a simple way of working with objects and types, a small well constructed core library, and a quasi-infinite, flexible secondary library, that allows anyone to contribute at any time.

Plus the implicit pressure of being from Google, with JetBrains IDE supports, and you get a very successful language, that has ended up being a niche language: The Web. As opposed to being a general purpose systems programming language.

> I looked at Rust, but never tried it, as I found the syntax to pretty awful - and it reminded my too much of C++.

The syntax is fine, and it is so unlike C++, it is easy to get into. I am using Rust as my primary language for all GStreamer stuff now.

> I looked at D, it looked nice. Syntax was familiar, and very C like (which is the best kind of syntax IMHO). I decided to try it.. and I just found it easy to work with...despite some bugs, which you kinda of have to accept for now..but it's getting a lot better.
> 
> Most importantly for me, is that it works on FreeBSD, otherwise I'll lose interest immediately. I still use C though, as C is still 'the' primary language on x..BSD, and will remains so for the forseeable future.

Which is a tragedy. Why use portable assembler in 2017 when there are actual high level languages such as Go, Rust, D, available for everything except the very lowest level work.

> But gee.. I can do things in D so easily and quickly compare to C, and I don't feel like I giving up much for that convenience. Compare that to running dotnet ... grrrr...you sit there just waiting for the program to load.

C# and F# also have a lot going for them, I suspect you used it is the wrong context and so got a bad feel. The same is true for Java. Kotlin, Groovy, I guess which are great in a JVM-centred context.

> So everyone comes to a new language with their own requirements.

But mostly their own prejudices. Everyone brings their baggage.

> Work out what your's are... or just play with it.. and enjoy what it has to offer.
> 
-- 
Russel.
==========================================
Dr Russel Winder      t: +44 20 7585 2200
41 Buckmaster Road    m: +44 7770 465 077
London SW11 1EN, UK   w: www.russel.org.uk