On 6 May 2014 14:09, Andrei Alexandrescu via Digitalmars-d <digitalmars-d@puremagic.com> wrote: > On 5/5/14, 8:19 PM, Manu via Digitalmars-d wrote: >> >> On 5 May 2014 14:09, Andrei Alexandrescu via Digitalmars-d >> >> <digitalmars-d@puremagic.com> wrote: >>> >>> This is nice, but on the face of it it's just this: an idea on how other >>> people should do things on their free time. I'd have difficulty >>> convincing >>> people they should work that way. The kind of ideas that I noticed are >>> successful are those that actually carry the work through and serve as >>> good >>> examples to follow. >> >> >> There's imperfect but useful pull requests hanging around for years, >> extern(Obj-C) for instance, which may be useful as an experimental >> feature to many users, even if it's not ready for inclusion in the >> official feature list and support. >> I suspect it's (experimental) presence would stimulate further >> contribution towards D on iOS for instance; it may be an enabler for >> other potential contributors. > > > So it would be nice if you reviewed that code.
I don't really know anything about it... and that's not the point. I'm just suggesting by my prior email that some steps like creating an experimental space with a lower barrier to entry might encourage growth in the number of overall contributors, which I think was the basic flavour of the emails leading up to it. >> What about AST macros? It seems to me that this is never going to be >> explored and there are competing proposals, but I wonder if there's >> room for experimental implementations that anyone in the community can >> toy with? > > > There would be of course room as long as there's be one or more champions > for it. Would that be something you'd be interested in? I have no horse in that race, but I see it come up all the time, and it is something I am passively interested in. There's at least one DIP which received little attention afaict, it's an example of something that I think would probably manifest into code in an experimental space, but clearly couldn't be accepted as a language feature without lots of field time. In lieu of an experimental space, there will be no action. It's an interesting example actually. I think lots feel the DIP isn't really an effective solution, but nobody has the motivation or ideas to refine it. The DIP author clearly has no motivation to test it experimentally, but perhaps that's what it needs to progress? The DIP's shortcomings might be discovered by experimental users in the field? It's hard to know, but it's an example of the sort of things that may have a stifling effect on progress and contribution. >> UDA's are super-useful, but they're still lacking the thing to really >> set them off, which is the ability to introduce additional boilerplate >> code at the site of the attribute. > > > Interesting. Have you worked on a related proposal? Not really, I've initiated numerous discussions which always seems to end at AST macros. The only other semi-reasonable idea I've had is the concept that tagging mixin templates as UDA's might be a practical angle, but it doesn't really make clean sense, creates a syntactic special case and also doesn't seem powerful enough, so I'm not with any solid proposal that I can imagine within the current language framework. There are presently bigger issues that keep me awake at night. >> I reckon there's a good chance that creating a proper platform for >> experimental features would also have an advantage for community >> building and increase contribution in general. If new contributors can >> get in, have some fun, and start trying their ideas while also being >> able to share them with the community for feedback without fear >> they'll just be shot down and denied after all their work... are they >> not more likely to actually make a contribution in the first place? > > > I'd say so, but we'd need initiative and quite a bit of work for such a > platform. Would you be interested? Well, in phobos, just approve 'exp' which has been raised countless times. I've got contributions that should be in exp, but instead, they're in limbo, and I've lost momentum and motivation since their completion is blocked by other issues, and I'm receiving no feedback from field testing. What happened to std.serislisation? There was motion there a year or so back... I was looking forward to it, and did some minor reviewing at the time. I wonder if that's an interesting case study? (I haven't looked) In the compiler... I may be interested, but I don't have any such compiler feature in mind to motivate the effort. I have no idea what an experimental feature platform should look like in the compiler, and if it were to exist, I have no such feature in mind to make use of it, but I have raised examples of others that have. >> Once they've made a single contribution of any sort, are they then >> more likely to continue making other contributions in the future >> (having now taken the time to acclimatise themselves with the >> codebase)? > > > I agree - and that applies to you, too. Sure, but my point... is below. >> I personally feel the perceived unlikeliness of any experimental >> contribution being accepted is a massive deterrence to making compiler >> contributions in the first place by anyone other than the most serious >> OSS advocates. > > > Contributions make it into the compiler and standard library if and they are > properly motivated, well done, and reviewed by the core team which is > literally self-appointed. The key to being on the core team is just > reviewing contributions. Have you considered looking at submissions that are > "hanging around for years"? Perhaps you misunderstood the point of my post. I've watched people make solid contributions that haven't gotten through. That is discouraging to others considering starting their own work, and for the person who has already put in the effort to continue to do so in the future. The Obj-C thing as an example. Granted, it's a huge feature and has extensive implications. The Authors have said themselves that they agree it's not 'ready' for inclusion... so, what? It sits and rots? I think it needs an experimental place to live and have people make use of it for what it is. If it's blocked by other unpopular issues that aren't receiving attention, perhaps it's presence will manifest the appropriate motivation to see those other unpopular issues resolved at some point? My point is that successful OSS seems to be about enabling the lowest-friction contribution, and my feeling right now, is that the barrier to entry is high. Whether that's true or not I can't really comment, but it's a perception, and the mental barrier inhibiting the first step is perhaps the most significant barrier of all. I can't review the Obj-C patch. 1, it's huge, 2, I don't know anything about it, other than I'd really like to use D on iOS and that's a major hurdle. Also, the authors themselves said they recognise it's not 'ready'. But is it 'experimental'? >> I have no prior experience with OSS, and it's certainly >> a factor that's kept me at arms length. > > > It's as easy as just reviewing stuff. Acta, non verba. I've never felt I have any particular authority to comment on pulls that I have no experience or vested interest in. (I do occasionally comment on pull requests that I have some interest or knowledge in) I've also had some (hopefully useful) commentary in features that did make it; Win64, UDA's, some traits extensions, and lots of bug reports and fix confirmations. I'm plenty vocal and active on things I do feel I know about, but they're often pretty radical, unpopular, and rarely come even close to turning into code. I'm pretty certain that nothing left on my short list that I personally *really* care about will ever get pulled, even if I did do the work. There's a perfectly good pull there for not-virtual-by-default. No amount of beating will get that horse through, despite almost unanimous community support. That was... extremely discouraging, to say the least.