October 16, 2015
On Friday, 16 October 2015 at 08:43:12 UTC, German Diago wrote:
> On Friday, 16 October 2015 at 08:11:18 UTC, John Colvin wrote:
>> On Friday, 16 October 2015 at 08:03:06 UTC, German Diago wrote:
>>> [...]
>>
>> Just a small note FYI, there's an easy way to get a feel for the current state of GC reliance:
>>
>> void main() @nogc
>> {
>>     // try stuff out
>> }
>
> Thanks for the tip. Is this 100% reliable?

As far as I know, yes. @nogc can be put on any function and will guarantee that no GC code will run inside that function or anything else it calls.
October 16, 2015
On Friday, 16 October 2015 at 08:58:25 UTC, John Colvin wrote:
>>> void main() @nogc
>>> {
>>>     // try stuff out
>>> }
>>
>> Thanks for the tip. Is this 100% reliable?
>
> As far as I know, yes. @nogc can be put on any function and will guarantee that no GC code will run inside that function or anything else it calls.

Is this a static check that fails at compile-time, or it means that if, at
run-time, gc is invoked, an exception will be thrown? Sorry so many questions,
I do not have access to a compiler at the moment here.
October 16, 2015
On Friday, 16 October 2015 at 09:01:41 UTC, German Diago wrote:
> On Friday, 16 October 2015 at 08:58:25 UTC, John Colvin wrote:
>>>> void main() @nogc
>>>> {
>>>>     // try stuff out
>>>> }
>>>
>>> Thanks for the tip. Is this 100% reliable?
>>
>> As far as I know, yes. @nogc can be put on any function and will guarantee that no GC code will run inside that function or anything else it calls.
>
> Is this a static check that fails at compile-time, or it means that if, at
> run-time, gc is invoked, an exception will be thrown? Sorry so many questions,
> I do not have access to a compiler at the moment here.

static check, at compile-time.

You can try things out from anywhere with with http://dpaste.dzfl.pl/
October 16, 2015
On Friday, 16 October 2015 at 08:29:18 UTC, Kagamin wrote:
> On Thursday, 15 October 2015 at 09:09:22 UTC, Chris wrote:
>> I agree with logicchains. The impression people have is exactly this. Go = neat and tidy, D = mess.
>
> Do people have the same impression from generic code in Go?

It doesn't matter. It _feels_ neat, tidy and finished. We're not talking about engineering, we're talking about subjective human impressions.

Apart from that, I think the fact that D is still not fit for mobile platforms is a huge drawback. Loads of people want apps, loads of people have some sort of smart phone, tablet or whatever. Sometimes I think that we're getting sucked in by the quick sand of language specs, pointers, GC etc. while important issues like targeting mobile platforms are second class citizens. Nim for example targeted mobile platforms right from the start. So did Go. I cannot recommend D wholeheartedly unless it also works on ARM at the click of a button. Please correct me if I'm wrong here, but mobile is not yet 100%.
October 16, 2015
On 10/16/15 11:03 AM, German Diago wrote:
> - Garbage collector. I think there was a plan for Phobos without GC, but...
> what about the run-time, can be disabled? I am not sure this meets the
> requirements of some embedded devices I work/have worked with.
> - Memory-control: Allocators. I saw this has been solved.
> - Production-readiness: when I go to C++, the ecosystem is simply
> unbeatable.
> This keeps me away from moving to D.
> - Platform support: For C++, I can use it in phones, embedded, PCs...
> basically
> everywhere.
> What areas are considered "incomplete" as of now to consider D a
> production-ready product, in your opinion?

D is production ready for the simple reason it is being factually used in production by a variety of companies. That said the same definition does not work for all companies and clearly D does not currently pass muster to the extent more established languages are.

Reducing the use of GC (both in the standard library and in client code) is front and center among our priorities. Walter has done a lot of work on it and we hope others to follow the lead.

For platform support (e.g. mobile) we need the appropriate champions to take us from "it could be done" and "it experimentally works" all the way to deliverable tools.

The areas I consider incomplete:

* Language definition, e.g. "shared".
* Language definition _writeup_, we need to be a lot more precise than we currently are.
* Process for introducing new features, i.e. right now we seem to have some of the drawbacks of a large political organization and also the drawbacks of a small community.
* Parts of stdlib, e.g. no robust idioms for transferring complex objects across threads, unneeded use of the GC, insufficient support for safe garbage collection; also no extensive containers, file formats, etc. etc.
* Tutorials - there's no simple tutorial material that takes people from novice to initiated status.


Andrei

October 16, 2015
On Friday, 16 October 2015 at 10:25:07 UTC, Chris wrote:
> Please correct me if I'm wrong here, but mobile is not yet 100%.

Ah, that? But lack of support is not a mess, it's a clear, neat and tidy lack of 100% support for ARM.
October 16, 2015
On Friday, 16 October 2015 at 12:01:07 UTC, Kagamin wrote:
> On Friday, 16 October 2015 at 10:25:07 UTC, Chris wrote:
>> Please correct me if I'm wrong here, but mobile is not yet 100%.
>
> Ah, that? But lack of support is not a mess, it's a clear, neat and tidy lack of 100% support for ARM.

I didn't say that the lack of ARM support was a mess. I said it was a huge drawback that puts people off (and understandably so, if you wanna go mobile).

Again, I'm talking about the _impression_ people get from D, which has nothing to do with the facts. Go is wearing suit and tie, so people trust it, for better or for worse. Sad but true.
October 16, 2015
On Friday, 16 October 2015 at 10:25:07 UTC, Chris wrote:
> On Friday, 16 October 2015 at 08:29:18 UTC, Kagamin wrote:
>> On Thursday, 15 October 2015 at 09:09:22 UTC, Chris wrote:
>>> I agree with logicchains. The impression people have is exactly this. Go = neat and tidy, D = mess.
>>
>> Do people have the same impression from generic code in Go?
>
> It doesn't matter. It _feels_ neat, tidy and finished. We're not talking about engineering, we're talking about subjective human impressions.
>
> Apart from that, I think the fact that D is still not fit for mobile platforms is a huge drawback. Loads of people want apps, loads of people have some sort of smart phone, tablet or whatever. Sometimes I think that we're getting sucked in by the quick sand of language specs, pointers, GC etc. while important issues like targeting mobile platforms are second class citizens. Nim for example targeted mobile platforms right from the start. So did Go. I cannot recommend D wholeheartedly unless it also works on ARM at the click of a button. Please correct me if I'm wrong here, but mobile is not yet 100%.

Fwiw I think it's okay on ARM linux.  I have compiled and run small programs on my phone (a oneplusone).  Thanks to dicebot you can just install with yaourt.  That's not what you meant of course, and Android ARM seems a little further away.  But in case anyone else sees this and doesn't bother trying.

October 16, 2015
On Friday, 16 October 2015 at 14:36:55 UTC, Laeeth Isharc wrote:

>
> Fwiw I think it's okay on ARM linux.  I have compiled and run small programs on my phone (a oneplusone).  Thanks to dicebot you can just install with yaourt.  That's not what you meant of course, and Android ARM seems a little further away.  But in case anyone else sees this and doesn't bother trying.

Thanks for the information!
October 16, 2015
On Friday, 16 October 2015 at 14:36:55 UTC, Laeeth Isharc wrote:
> On Friday, 16 October 2015 at 10:25:07 UTC, Chris wrote:
>> On Friday, 16 October 2015 at 08:29:18 UTC, Kagamin wrote:
>>> On Thursday, 15 October 2015 at 09:09:22 UTC, Chris wrote:
>>>> [...]
>>>
>>> Do people have the same impression from generic code in Go?
>>
>> It doesn't matter. It _feels_ neat, tidy and finished. We're not talking about engineering, we're talking about subjective human impressions.
>>
>> Apart from that, I think the fact that D is still not fit for mobile platforms is a huge drawback. Loads of people want apps, loads of people have some sort of smart phone, tablet or whatever. Sometimes I think that we're getting sucked in by the quick sand of language specs, pointers, GC etc. while important issues like targeting mobile platforms are second class citizens. Nim for example targeted mobile platforms right from the start. So did Go. I cannot recommend D wholeheartedly unless it also works on ARM at the click of a button. Please correct me if I'm wrong here, but mobile is not yet 100%.
>
> Fwiw I think it's okay on ARM linux.  I have compiled and run small programs on my phone (a oneplusone).  Thanks to dicebot you can just install with yaourt.  That's not what you meant of course, and Android ARM seems a little further away.  But in case anyone else sees this and doesn't bother trying.

I'm running a vibe.d app on Raspberry Pi without any trouble. Even something like 3 years ago I rebuilt some non-trivial app (an Atari XE disk drive emulator) with GDC for RPi and it compiled and worked fine out of the box.
So it seems it's just mobile OS support that is missing.