July 12, 2014
On 12 July 2014 15:53, Russel Winder via Digitalmars-d <digitalmars-d@puremagic.com> wrote:
> On Sat, 2014-07-12 at 15:37 +0100, Iain Buclaw via Digitalmars-d wrote: […]
>> I live literally 400 yards away from the burnt down west pier.  Its a beautiful sight in the morning, come sun, rain, or fog.  I hear they are building a 100 metre high elevator-to-nowhere in its place.  Sad times...
>
> We lived for a while in Little Western Street. Even then the West Pier was crumbling and was closed a short while after we wandered up and down it one afternoon in glorious (very un-English) sun.
>
> […]
>>
>> I can give you my details, and can see where things go from there.
>
> Is evening meetings in London something you might be up for?
>
> Depending on who is involved and what constitutes the "centre of mass", there is always the option of meeting in a pub in Clapham Junction – saves the extra haul across Central London.
>

That sounds like at least the beginnings of a plan to me.  My only way of getting around would be train due to lack of a car, or license.

July 12, 2014
On Saturday, 12 July 2014 at 10:27:12 UTC, Russel Winder via Digitalmars-d wrote:
> In the end it is about community rather than the programming language
> per se. Java created a huge community that was evangelical. Go has
> rapidly created an active community that is evangelical. Python has
> rapidly created a large evangelical community. D has slowly created a
> small community that hasn't as yet created the outward looking
> evangelical aspect. Where are the user groups having local meetings is
> my main metric. Java definitely, Go definitely, C++ sort of, D no. This
> is the real problem for D I feel. Without local user groups meeting up
> you don't get exposure and you don't get traction in the market.

This seems like an outdated way of looking at things.  I've never attended a user group in my life, yet I've picked up several technologies since I left college a while back.  When I found out that such user groups existed, I thought they were kind of quaint, a remnant of pre-internet times.

As for an evangelical community, did C and C++ have those?  I don't think anyone was ever really evangelical about Obj-C as it took off over the last couple years, riding on the coattails of the meteoric rise of iOS.  Evangelism can help, but it can be more a sign of the evangelist's enthusiasm than a tech worth using.  Maybe D isn't ready for evangelism yet, there's something to be said for getting the product in gear before advertising it.

Not saying there's anything wrong with DUGs, higher bandwidth interaction and all, but the current approach of D developers giving talks at outside gatherings or putting DConf talks online seems like a much better way to spread the gospel to me.  Certainly both can be done, I just wouldn't use DUGs as the main metric.

I've said it a couple times before, but it bears repeating: what D needs is a killer app.  Rails showed the ease of use of ruby.  iOS made Obj-C a star.  D needs to show its utility by spawning a similar killer app, that's what will prove its worth in the market.  We can't know what that will be, but if D is any good, it will probably happen at some point.
July 13, 2014
.On 12 July 2014 20:55, Joakim via Digitalmars-d <digitalmars-d@puremagic.com> wrote:
> On Saturday, 12 July 2014 at 10:27:12 UTC, Russel Winder via Digitalmars-d wrote:
>>
>> In the end it is about community rather than the programming language per se. Java created a huge community that was evangelical. Go has rapidly created an active community that is evangelical. Python has rapidly created a large evangelical community. D has slowly created a small community that hasn't as yet created the outward looking evangelical aspect. Where are the user groups having local meetings is my main metric. Java definitely, Go definitely, C++ sort of, D no. This is the real problem for D I feel. Without local user groups meeting up you don't get exposure and you don't get traction in the market.
>
>
> This seems like an outdated way of looking at things.  I've never attended a user group in my life, yet I've picked up several technologies since I left college a while back.  When I found out that such user groups existed, I thought they were kind of quaint, a remnant of pre-internet times.
>
> As for an evangelical community, did C and C++ have those?  I don't think anyone was ever really evangelical about Obj-C as it took off over the last couple years, riding on the coattails of the meteoric rise of iOS. Evangelism can help, but it can be more a sign of the evangelist's enthusiasm than a tech worth using.  Maybe D isn't ready for evangelism yet, there's something to be said for getting the product in gear before advertising it.
>
> Not saying there's anything wrong with DUGs, higher bandwidth interaction and all, but the current approach of D developers giving talks at outside gatherings or putting DConf talks online seems like a much better way to spread the gospel to me.  Certainly both can be done, I just wouldn't use DUGs as the main metric.
>

We are social creatures, and the fact is that people just get more done when they are in a room together.  The beer probably helps more in agreeing also. ;-)


> I've said it a couple times before, but it bears repeating: what D needs is a killer app.  Rails showed the ease of use of ruby.  iOS made Obj-C a star. D needs to show its utility by spawning a similar killer app, that's what will prove its worth in the market.  We can't know what that will be, but if D is any good, it will probably happen at some point.

Killer... app... ugh, how evangelical.
July 13, 2014
On 7/12/2014 7:53 AM, Russel Winder via Digitalmars-d wrote:
> Is evening meetings in London something you might be up for?
>
> Depending on who is involved and what constitutes the "centre of mass",
> there is always the option of meeting in a pub in Clapham Junction –
> saves the extra haul across Central London.


Wish I could be there!
July 13, 2014
On 7/12/2014 8:03 AM, Iain Buclaw via Digitalmars-d wrote:
> My only way
> of getting around would be train due to lack of a car, or license.

A lack of a car would be an advantage in London. I've touristed around there a bit, and never felt the need for a car, nor would I have ever wanted to try and find a parking space.
July 13, 2014
On 2014-07-12 05:59, Rikki Cattermole wrote:

> Something I've been thinking about is an overload for with statement.
> E.g.
>
> with(new MyAllocator) {
>      void*[256] values;
>      //...
> }
>
> class MyAllocator : IGC {
>      private {
>          IGC prevGC;
>      }
>
>      void opWithIn() {
>          this.prevGC = GC.getImpl();
>          GC.setImpl(this);
>      }
>
>      void opWithOut() {
>          GC.setImpl(this.prevGC);
>      }
> }

Or without language changes:

void withAllocator (alias allocator, alias block)
{
    auto prevGC = GC.getImpl();
    scope(exit)
        GC.setImpl(this.prevGC);

    GC.setImpl(allocator);
    block();
}

withAllocator!(new Allocator, {
    void*[256] values;
});

Not as nice syntax though. That could of course be fixed with AST macros [1] :)

[1] http://wiki.dlang.org/DIP50#Statement_Macros

-- 
/Jacob Carlborg
July 13, 2014
On 13/07/2014 11:50 p.m., Jacob Carlborg wrote:
> On 2014-07-12 05:59, Rikki Cattermole wrote:
>
>> Something I've been thinking about is an overload for with statement.
>> E.g.
>>
>> with(new MyAllocator) {
>>      void*[256] values;
>>      //...
>> }
>>
>> class MyAllocator : IGC {
>>      private {
>>          IGC prevGC;
>>      }
>>
>>      void opWithIn() {
>>          this.prevGC = GC.getImpl();
>>          GC.setImpl(this);
>>      }
>>
>>      void opWithOut() {
>>          GC.setImpl(this.prevGC);
>>      }
>> }
>
> Or without language changes:
>
> void withAllocator (alias allocator, alias block)
> {
>      auto prevGC = GC.getImpl();
>      scope(exit)
>          GC.setImpl(this.prevGC);
>
>      GC.setImpl(allocator);
>      block();
> }
>
> withAllocator!(new Allocator, {
>      void*[256] values;
> });
>
> Not as nice syntax though. That could of course be fixed with AST macros
> [1] :)
>
> [1] http://wiki.dlang.org/DIP50#Statement_Macros

Definitely, but there is a rather big difference in requirements to implement them ;)
But in saying this, we might be able to move the with statement into druntime via AST macros. Should it have the ability to modify the this context like with statement does now.

July 13, 2014
On 2014-07-13 14:01, Rikki Cattermole wrote:

> Definitely, but there is a rather big difference in requirements to
> implement them ;)
> But in saying this, we might be able to move the with statement into
> druntime via AST macros. Should it have the ability to modify the this
> context like with statement does now.

Yeah, there are many features that could have been implemented as macros instead of in the language, if D had had them from the beginning.

-- 
/Jacob Carlborg
July 13, 2014
On Sunday, 13 July 2014 at 12:21:13 UTC, Jacob Carlborg wrote:
> Yeah, there are many features that could have been implemented as macros instead of in the language, if D had had them from the beginning.

What's the status of that DIP? What's the process by which something like that would even get added to D?

I very much like the idea. Static metaprogramming and powerful compile time capabilities are the killer features of D, so strengthening them further seems worthwhile.
July 13, 2014
On Sunday, 13 July 2014 at 16:32:15 UTC, Brian Rogoff wrote:
> On Sunday, 13 July 2014 at 12:21:13 UTC, Jacob Carlborg wrote:
>> Yeah, there are many features that could have been implemented as macros instead of in the language, if D had had them from the beginning.
>
> What's the status of that DIP?

It exists, pretty much all. No proof of concept implementation and no official approval so far. Community discussion was not really active either - most likely because it does not seem very realistic to expect it implemented.

> What's the process by which something like that would even get added to D?

Usually it comes to providing DMD pull request that implements the DIP and than convincing Walter/Andrei it is worth merging. Most likely change will still be rejected but without PR chances are close zero.