November 09, 2015
On Monday, 9 November 2015 at 21:01:29 UTC, Andrei Alexandrescu wrote:
> On 11/09/2015 09:13 AM, Nordlöw wrote:
>> Yet another shallow language comparison that needs to be corrected:
>>
>> https://www.quora.com/Which-language-has-the-brightest-future-in-replacement-of-C-between-D-Go-and-Rust-And-Why/answer/Matej-%C4%BDach?srid=itC4&share=1
>
> My response: https://goo.gl/VTEYFk -- Andrei

One correction - AFAIK Rust also does have native C interop via https://doc.rust-lang.org/book/ffi.html
Convenience / syntax / style aside actual capabilities seem to be on part with D.
November 09, 2015
On Monday, 9 November 2015 at 21:01:29 UTC, Andrei Alexandrescu wrote:
> On 11/09/2015 09:13 AM, Nordlöw wrote:
>> Yet another shallow language comparison that needs to be corrected:
>>
>> https://www.quora.com/Which-language-has-the-brightest-future-in-replacement-of-C-between-D-Go-and-Rust-And-Why/answer/Matej-%C4%BDach?srid=itC4&share=1
>
> My response: https://goo.gl/VTEYFk -- Andrei

Very detailed and honest response, me likes.
November 09, 2015
On Monday, 9 November 2015 at 23:11:34 UTC, Vladimir Panteleev wrote:
> Great post, though languages that compile to C (e.g. Nim) are probably even better at interfacing with C/C++ than D. I'm sure D is #1 aside those though.

I would not trust such language to have a precise semantic. There is way too much undefined behavior in C for that.

November 10, 2015
On Monday, 9 November 2015 at 21:01:29 UTC, Andrei Alexandrescu wrote:
> My response: https://goo.gl/VTEYFk -- Andrei

Thanks.
November 10, 2015
On 11/09/2015 06:18 PM, Dicebot wrote:
> On Monday, 9 November 2015 at 21:01:29 UTC, Andrei Alexandrescu wrote:
>> On 11/09/2015 09:13 AM, Nordlöw wrote:
>>> Yet another shallow language comparison that needs to be corrected:
>>>
>>> https://www.quora.com/Which-language-has-the-brightest-future-in-replacement-of-C-between-D-Go-and-Rust-And-Why/answer/Matej-%C4%BDach?srid=itC4&share=1
>>>
>>
>> My response: https://goo.gl/VTEYFk -- Andrei
>
> One correction - AFAIK Rust also does have native C interop via
> https://doc.rust-lang.org/book/ffi.html
> Convenience / syntax / style aside actual capabilities seem to be on
> part with D.

I was aware of that, and convenience, syntax, and style are not to be discounted. -- Andrei
November 10, 2015
On Monday, 9 November 2015 at 23:26:57 UTC, deadalnix wrote:
> On Monday, 9 November 2015 at 23:11:34 UTC, Vladimir Panteleev wrote:
>> Great post, though languages that compile to C (e.g. Nim) are probably even better at interfacing with C/C++ than D. I'm sure D is #1 aside those though.
>
> I would not trust such language to have a precise semantic. There is way too much undefined behavior in C for that.

The behaviour of a C program is well defined or implementation defined. Undefined behaviour only occurs when the specified program isn't a C program (e.g. breaks the rules of the language), but the compiler fails to detect it. The same holds for machine language.

November 10, 2015
On Monday, 9 November 2015 at 21:01:29 UTC, Andrei Alexandrescu wrote:
> On 11/09/2015 09:13 AM, Nordlöw wrote:
>> Yet another shallow language comparison that needs to be corrected:
>>
>> https://www.quora.com/Which-language-has-the-brightest-future-in-replacement-of-C-between-D-Go-and-Rust-And-Why/answer/Matej-%C4%BDach?srid=itC4&share=1
>
> My response: https://goo.gl/VTEYFk -- Andrei

This is a very strong and honest summary of the situation IMHO, and the straight talking and pinpoint accuracy of the problems gives me extra hope for the future of D at the same time.
November 10, 2015
On Monday, 9 November 2015 at 21:01:29 UTC, Andrei Alexandrescu wrote:
> On 11/09/2015 09:13 AM, Nordlöw wrote:
>> Yet another shallow language comparison that needs to be corrected:
>>
>> https://www.quora.com/Which-language-has-the-brightest-future-in-replacement-of-C-between-D-Go-and-Rust-And-Why/answer/Matej-%C4%BDach?srid=itC4&share=1
>
> My response: https://goo.gl/VTEYFk -- Andrei

I agree with your assessments in general, though I'd like to point out that your criticism of the heavy-weight type system is a bit misguided. While it is indeed complex, its use cases are by no means limited to memory management, or even resource management in the narrow sense (i.e. when can a particular resource be released). It's also used for safe sharing of resources across threads without data races, for preventing iteration invalidation (which means more than just avoiding dangling pointers), as well as for many other ways to make the compiler check certain aspects of a program's correctness. These wide applications make the cost/benefit ratio considerably more favourable.
November 10, 2015
On Tuesday, 10 November 2015 at 17:32:15 UTC, Marc Schütz wrote:
> resource be released). It's also used for safe sharing of resources across threads without data races, for preventing iteration invalidation (which means more than just avoiding dangling pointers), as well as for many other ways to make the compiler check certain aspects of a program's correctness.

I agree that there are many interesting aspects to these type systems. IIRC Pony-lang also guarantee deadlock-free execution.  Go 1.6 is going to get a dedicated SSA optimizer and also a memory sanitizer like C/C++, which might bring Go closer to C.

But C is really all about having full control over memory layout and execution, it interfaces with just about any conceivable language and compiles to an insane amount of hardware. None of these other languages have that focus. Rust, Go and D are more like high level languages primarily for PCs.

Although Rust is perhaps closest to C by having a lightweight runtime.

November 10, 2015
On Tuesday, 10 November 2015 at 19:25:32 UTC, Ola Fosheim Grøstad wrote:
> On Tuesday, 10 November 2015 at 17:32:15 UTC, Marc Schütz wrote:
>> [...]
>
> I agree that there are many interesting aspects to these type systems. IIRC Pony-lang also guarantee deadlock-free execution.
>  Go 1.6 is going to get a dedicated SSA optimizer and also a memory sanitizer like C/C++, which might bring Go closer to C.
>
> But C is really all about having full control over memory layout and execution, it interfaces with just about any conceivable language and compiles to an insane amount of hardware. None of these other languages have that focus. Rust, Go and D are more like high level languages primarily for PCs.
>
> Although Rust is perhaps closest to C by having a lightweight runtime.

All C/C++ sanitizers are available to D, FYI. You can use them from LDC and probably GDC.
Yet another reason for abandoning dmd, you get massive benefits like this for free.