digitalmars.D - The DIP Process
- Mike Parker (116/116) Feb 26 2019 Given the nature of the feedback on the DIP process lately, I
- rikki cattermole (11/11) Feb 26 2019 Something we could do differently is to create a list of actionable
- Nicholas Wilson (7/29) Feb 26 2019 Good I'm sure that people will have plenty of things to say at
- Mike Parker (6/6) Feb 26 2019 “The people who visit participate in DIP reviews do not represent
- Mike Parker (41/44) Feb 26 2019 One thing I should add regarding this bit of the procedure:
- Jonathan Marler (51/55) Feb 26 2019 I think most points of the DIP process make sense, but it has one
- Andrei Alexandrescu (24/31) Feb 26 2019 This is the case for all relevant submission processes I know of -
- James Blachly (9/15) Feb 26 2019 In my fields (medicine and genomics), it is extremely common that
- Andrei Alexandrescu (5/16) Feb 26 2019 Yah, I know of the process from my wife. There are quite a few
- James Blachly (6/25) Feb 26 2019 I am not at all describing “case reports,” and your thoughtless
- Joseph Rushton Wakeling (21/25) Feb 26 2019 Even if one is talking full blown research papers, though, there
- Andrei Alexandrescu (6/29) Feb 26 2019 Didn't that escalate a bit quick? You wrote the goings in your field
- James Blachly (40/57) Feb 26 2019 I acknowledge and apologize. I misinterpreted your terseness as tacit
- Jordan Wilson (15/23) Feb 26 2019 Would it be useful to have 1 more offical review step?
- Donald (9/21) Feb 27 2019 But that's the main problem, if you watch old DConfs they always
- Joseph Rushton Wakeling (11/13) Feb 27 2019 It may help more to have a detailed checklist of
- Andrei Alexandrescu (4/30) Feb 27 2019 That should already be the case, with a revision loop between steps 3
- Mike Parker (25/26) Feb 27 2019 I'll say that personally, and I stress *personally*, I have no
- Olivier FAURE (2/4) Feb 28 2019 I think you dropped a "not" here.
- Donald (16/19) Feb 26 2019 Let's say for example someone ask Andrei/Walter about adding X
- Manu (97/134) Feb 26 2019 It seems like you've missed the point again.
- Joseph Rushton Wakeling (20/28) Feb 26 2019 This seems an important point: what are the avenues of appeal if
- Manu (13/41) Feb 26 2019 Right, I mean, it's also offensive that W&A tried to pacify me by
- Joseph Rushton Wakeling (9/13) Feb 26 2019 Adding a fast-track revise-and-appeal seems a straightforward
- Nicholas Wilson (5/19) Feb 26 2019 ;)
- Nick Sabalausky (Abscissa) (4/9) Feb 27 2019 Sounds to me like the key is the lack of a "For the love of ****, basic
- Nicholas Wilson (3/12) Feb 27 2019 Indeed. A bit of common courtesy would go a long way too.
- Donald (11/26) Feb 26 2019 Sorry but I don't buy it. I mean if it would be so simple as you
- Manu (27/52) Feb 26 2019 I did, and the amendment was merged, and then it was reverted because
- Olivier FAURE (50/73) Feb 28 2019 We strongly disagree on this one.
- Nicholas Wilson (17/92) Feb 28 2019 The point is that that is not _actionable_, for two reasons:
- Manu (44/65) Feb 28 2019 No, I'm saying those 2 trivial issues are things that we KNOW blocked
- NaN (7/9) Feb 26 2019 You can require the same accuracy and rigour from the review as
- Andrei Alexandrescu (13/22) Feb 27 2019 Thanks for writing. We are not able, and should not aspire, to provide a...
- Nicholas Wilson (23/52) Feb 27 2019 No but the review of DIP1016 shows a large gap between the
- Olivier FAURE (21/22) Feb 28 2019 You're saying this like it's self-evident, but it seems very
- Nicholas Wilson (22/45) Feb 28 2019 Thank you for making that observation.
- Manu (23/49) Feb 28 2019 What's frustrating is how people keep misrepresenting the conversation t...
- Joseph Rushton Wakeling (66/90) Feb 26 2019 It's worth making a comparison to how new features are
- Jonathan Marler (30/81) Feb 26 2019 You said "but sometimes it's only _because_ of those multiple
- Nicholas Wilson (9/14) Feb 26 2019 FWIW Walter has said that if alias this had been proposed today
- Jonathan M Davis (8/24) Feb 26 2019 It's one of those features that's occasionally useful, but in general, I...
- H. S. Teoh (19/34) Feb 26 2019 [...]
- Walter Bright (3/5) Feb 27 2019 Any discussion of alias this should be in a separate thread, but for her...
- Manu (6/37) Feb 26 2019 I use `alias this` a lot, but that's just because it's the only tool we ...
- Walter Bright (23/23) Feb 27 2019 I propose that rejecting a DIP is NOT wasted effort.
- Nicholas Wilson (13/34) Feb 27 2019 Not a priori, no...
- Manu (22/45) Feb 28 2019 Wow...
- Walter Bright (2/3) Feb 28 2019 Indeed, and you, Nicholas and everyone else will have the opportunity to...
- Paolo Invernizzi (31/59) Feb 28 2019 From one side, there's the need to attract more 'voluntary' work
- Olivier FAURE (17/39) Feb 28 2019 If that's the direction you're going for, then the rejection
- Walter Bright (2/4) Feb 28 2019 I agree that the rejection rationale needs to be more detailed and thoro...
- Mike Parker (6/10) Feb 28 2019 That's mostly on me. I take the informal feedback they give and
- Olivier FAURE (8/11) Feb 28 2019 Without being that extreme, yeah, the community has a tendency to
- Nicholas Wilson (8/19) Feb 28 2019 The fact the they caught that the DIP doesn't specify how it is
- Walter Bright (4/9) Feb 28 2019 Despite repeated attempts and examples, Andrei and I have been unable to...
- Nick Sabalausky (Abscissa) (4/9) Feb 28 2019 (Disclaimer: No intention of being contentious here, just a genuine
- Walter Bright (3/5) Feb 28 2019 https://digitalmars.com/d/archives/digitalmars/D/announce/DIP_1016--ref_...
- Olivier FAURE (6/9) Mar 01 2019 I think he's referring to these posts:
- Jonathan M Davis (15/46) Feb 26 2019 Digitalmars-d wrote:
- Nick Sabalausky (Abscissa) (7/15) Feb 28 2019 I strongly agree that's the right way to do things. In fact, we already
- Nick Sabalausky (Abscissa) (17/17) Feb 28 2019 My take on all this (not that it counts for anything):
- Elronnd (12/18) Feb 28 2019 Bureaucracy is arguable unavoidable. At this kind of scale
- Nick Sabalausky (Abscissa) (2/10) Feb 28 2019 Chicken vs egg... :(
- Jonathan Marler (43/63) Mar 01 2019 I completely agree with this. Languages are very hard and the
- Walter Bright (21/21) Mar 01 2019 When I get involved early in the DIP process, what happens is the author...
- Paolo Invernizzi (4/10) Mar 01 2019 Oh Walter, this is soo plain wrong! I adopted D in my company,
- Walter Bright (3/5) Mar 01 2019 I suppose there is always a counterexample :-)
- Paolo Invernizzi (6/11) Mar 01 2019 For sure! It was not good, it was great, and think about all the
- Walter Bright (3/7) Mar 01 2019 And I shall continue...
- Rubn (3/12) Mar 01 2019 I see, wise words... Now to hold someone at gun point to write a
- Jonathan Marler (51/76) Mar 01 2019 This doesn't make sense. If you leave feedback and the author
- Walter Bright (3/6) Mar 01 2019 Dip1016 is not "no result". It's clear that rvalues to ref parameters is...
- Jonathan Marler (16/23) Mar 02 2019 Out of all the things I said...you chose to respond to this?
- Nick Sabalausky (Abscissa) (3/16) Mar 02 2019 Meh, as long as he agrees "rvalues to ref parameters is the way forward"...
- Walter Bright (9/11) Mar 02 2019 I've been on forums for several decades. I've done the point-by-point re...
- Jonathan Marler (8/21) Mar 02 2019 Oh sorry, how would I say that statement in a more professional
- Walter Bright (16/22) Mar 02 2019 Thanks for asking.
- Jonathan Marler (32/64) Mar 03 2019 Thanks for taking the time to respond to this one. I'm putting up
- Abdulhaq (23/31) Mar 03 2019 It means, don't suck up to Walter/Andrei to curry favour with
- Jonathan Marler (9/47) Mar 04 2019 Thanks for the feedback. Unfortunately this isn't the first time
- Walter Bright (20/37) Mar 03 2019 Please don't. We're about D, we're not about being any sort of authority...
- Jonathan Marler (51/92) Mar 04 2019 I can appreciate this argument as earlier in this thread I was
- Walter Bright (20/47) Mar 04 2019 I don't wish to get into any debate that nitpicks about what is and is n...
- H. S. Teoh (8/12) Mar 04 2019 [...]
- Jonathan Marler (9/27) Mar 04 2019 Thanks for the suggestions, I've ordered them and look forward to
- FeepingCreature (47/51) Mar 06 2019 Frankly-
- Mike Parker (72/76) Mar 06 2019 I keep seeing variations of this "months of effort" claim.
- Jonathan Marler (86/151) Mar 06 2019 I don't think you're giving the proper weight to the amount of
- Arun Chandrasekaran (2/12) Mar 06 2019 +1
- Nicholas Wilson (46/101) Mar 06 2019 1. You missed the vast amount of political effort required to get
- Rubn (4/9) Mar 04 2019 That's doesn't sound like a very good lawyer. Law is just someone
- Walter Bright (4/5) Mar 04 2019 It's the order in which you argue a case to a judge. Judges prefer to ru...
- Nicholas Wilson (3/15) Mar 01 2019 Case in point
- Elronnd (13/22) Mar 01 2019 Oh come on. This comparison makes no sense, the olympics are
- Timon Gehr (2/15) Mar 06 2019 It's an analogy. The point was merely that results matter, not effort.
- Dukc (2/7) Mar 01 2019 Exactly how it should be, in my opinion. This is a step forward.
Given the nature of the feedback on the DIP process lately, I thought it prudent to explain how I, as DIP manager, view things. The core of the process looks like this: Step 1: The author creates the DIP Step 2: The author submits the DIP to the DIP manager Step 3: The language maintainers review the DIP Step 4: The DIP manager informs the author of the verdict That's what the heart of the process is, an interaction between the DIP author and Walter & Andrei, facilitated by me. Every language has a process for improvement proposals. At their core, they are all the same, even if they have different ways for getting there. Take a look at the documenetation for Python Enhancement Proposals: https://www.python.org/dev/peps/pep-0001/#start-with-an-idea-for-python The core of the process is the same. What they add to it is this: "The PEP champion (a.k.a. Author) should first attempt to ascertain whether the idea is PEP-able. Posting to the comp.lang.python newsgroup (a.k.a. python-list python.org mailing list) or the python-ideas python.org mailing list is the best way to go about this. Vetting an idea publicly before going as far as writing a PEP is meant to save the potential author time. Many ideas have been brought forward for changing Python that have been rejected for various reasons. Asking the Python community first if an idea is original helps prevent too much time being spent on something that is guaranteed to be rejected based on prior discussions (searching the internet does not always do the trick). It also helps to make sure the idea is applicable to the entire community and not just the author. Just because an idea sounds good to the author does not mean it will work for most people in most areas where Python is used." TL;DR, they require the author to ask the community if the concept of the proposal is something that should be put through their process. Look around at other languages and you will find a number of variations on the core process, all involving some form of community feedback. In our process, we take the community feedback as a review of the written proposal. We have implemented multiple feedback rounds to get this done. The purpose here is *not* to allow the community to preliminarily approve a proposal, or to vote on it. The decision to accept or reject rests squarely with Walter and Andrei. The purpose of the Community Reviews is to reduce the burden on the author of crafting a proposal that will meet Walter and Andrei's standards. The people who visit participate in DIP reviews do not represent a small fraction of the D user base, but their backgrounds are diverse enough that there are strong odds of receiving valuable feedback. The Community Review rounds help the DIP author sound out the proposal, or kick the tires if you will. Reviewers are free to leave their opinions of the proposed feature, the details of the proposal, to identify structural flaws or other opportunities for enhancement, etc. If the author makes significant revisions, I will almost certainly call for another round of Community Review based on how signficant I judge the revisions to be. In the Final Review round, the emphasis is on helping the DIP author identify structural issues. Anything overlooked in previous rounds or introduced as a result of any revisions along the way. We aren't interested in personal opinions at this point. The keywords in both the previous paragraphs are "help/helping the DIP author". In the end, it is entirely up to the DIP author to accept or reject any or all of the feedback provided in any community review round. It is not up to me, as DIP manager, to block a DIP from progressing if the author chooses to make no revisions. I always ask the DIP manager to respond to feedback in the review thread as far as explaining why a set of related criticisms will result in a revision or none at all, but I do not require the author to actually make revisions. I am not the final arbiter of what does or does not constitute a solid proposal. So I see any complaints that a DIP "should not have progressed out of Draft/Community review" as missing the point. My experience with the process has both evolved my understanding of it and helped me identify flaws. Early on, I did not see the process quite as I describe it above. I mismanaged a couple of DIPs (specifically 1006 and 1011) and that led to an overhaul of both my understanding and the process document. I looked at how other languages handle their processes and revised Dicebot's initial work with a goal of preventing my initial mistakes and and clarifying the purpose of each review round. I'm still open to revising the process. We want a process that helps us produce the best DIPs we can so that Andrei and Walter have all the information they need to render their verdict. But any revisions to the process *must not* lose sight of these two basic facts: * the burden of producing the proposal lies with the author * the burden of reviewing the proposal lies with Walter and Andrei Any process in between should be aimed at helping to reduce the burden for either party. I'm already going to implement two changes in my part of the process based on lessons I've learned through recent reviews: * I will no longer simply *ask* DIP authors to respond to feedback in the review threads, I will *require* it. Note that this does not mean I will require the author to make any revisions, nor does it mean that I will pull the DIP if the opinions of the proposal are overwhelmingly negative. Again, that's not my role. It means the author must leave responses to feedback in the thread agreeing or disagreeing with each unique criticism and the decision to proceed lies entirely with the author. That includes Walter and Andrei if either of them are the sole author of a DIP. Previously, I didn't even ask them to respond as they are the ones rendering the final verdict anyway, but I now recognize it's important that all DIP authors express their opinions of the feedback they receive. * I will do my best to provide more detailed summaries of the Formal Assessment. Walter and Andrei tend to deliver their opinions of a proposal informally, either tersely or over a long email discussion. I do my best to summarize their thoughts at the bottom of the DIP. After the response to the review of DIP 1016, I discussed with Walter and Andrei how I can provide more detailed summaries and we will work to make that happen going forward. Again, we're all open to suggestions on how to improve the process, so feel free to leave feedback here or email me directly. Thanks!
Feb 26 2019
Something we could do differently is to create a list of actionable items that should occur before the next review. Each item should be kept pretty loose and open. So that the item doesn't dictate what the DIP author should do with it. As a wiki article anybody could add items. For the purpose of being heard. It would effectively be a to do list. Which might eliminate quite a bit of concern from the community at large over issues being ignored (potentially unknowingly). I am concerned about how much work it could add to people's roles. But perhaps we can make it more of a community lead thing? To get others involved in the DIP process more.
Feb 26 2019
On Tuesday, 26 February 2019 at 11:28:56 UTC, Mike Parker wrote:I'm still open to revising the process.Good I'm sure that people will have plenty of things to say at Dconf/the foundation meeting at dconf* I will no longer simply *ask* DIP authors to respond to feedback in the review threads, I will *require* it.Good, that strikes one item off the dconf foundation meeting agenda.Note that this does not mean I will require the author to make any revisions, nor does it mean that I will pull the DIP if the opinions of the proposal are overwhelmingly negative. Again, that's not my role. It means the author must leave responses to feedback in the thread agreeing or disagreeing with each unique criticism and the decision to proceed lies entirely with the author. That includes Walter and Andrei if either of them are the sole author of a DIP. Previously, I didn't even ask them to respond as they are the ones rendering the final verdict anyway, but I now recognize it's important that all DIP authors express their opinions of the feedback they receive.Good.* I will do my best to provide more detailed summaries of the Formal Assessment. Walter and Andrei tend to deliver their opinions of a proposal informally, either tersely or over a long email discussion. I do my best to summarize their thoughts at the bottom of the DIP. After the response to the review of DIP 1016, I discussed with Walter and Andrei how I can provide more detailed summaries and we will work to make that happen going forward.Thanks!
Feb 26 2019
“The people who visit participate in DIP reviews do not represent a small fraction of the D user base” => The people who participate in DIP reviews represent a small fraction of the D user base “I always ask the DIP manager to respond to feedback” => I always ask the DIP author to respond to feedback
Feb 26 2019
On Tuesday, 26 February 2019 at 11:28:56 UTC, Mike Parker wrote:Again, we're all open to suggestions on how to improve the process, so feel free to leave feedback here or email me directly.One thing I should add regarding this bit of the procedure: "the DIP Manager or the Language Maintainers may allow for exceptions which waive requirements or responsibilities at their discretion" I don't see anything inherently unfair in this. And I think allowing such flexibility is necessary for a healthy process. That said, it's not an option intended to be used frequently. DIP 1010 (static foreach) was fast-tracked through each stage of the process, but before 1018, no part of the process was skipped for any DIP. In this case, Walter and Andrei were both heavily involved in the drafting of the DIP and in the review of the implementation: https://github.com/dlang/dmd/pull/8688 The DIP went through extensive Draft review: https://github.com/dlang/DIPs/pull/129 And as far as I can see there were no major structural deficiencies identified in the community review: https://forum.dlang.org/post/eoqddfqbjtgfydajozsn forum.dlang.org Given that the purpose of the intermediate review rounds is intended to improve the odds the DIP will meet the standards of Walter and Andrei, that both were involved in the development of the DIP and its implementation, and that they see it as an important feature that they'd like to ship ASAP, the decision to skip the Final Review shouldn't be controversial. All DIPs are subject to that possibility of any part of the process being skipped or abbreviated, so there's nothing inherently unfair that it happened here. Especially considering that Andre and Walter felt the DIP was already at a stage where they could accept it. So I won't be removing the quoted line from the procedure document. What I can do is say that Walter and Andrei have had enough respect for the process that they have never demanded/ordered/required me to fast-track or skip a review round. In this case, they asked me if it was possible to do. Given the circumstances I've described, I saw no harm in it, especially given their timeline. If I had recommended we not do it and provided a rational reason, I'm confident we would have had a final review round. Again, this is something that should be rare, but when the circumstances warrant it, it shouldn't be prohibited.
Feb 26 2019
On Tuesday, 26 February 2019 at 11:28:56 UTC, Mike Parker wrote:Again, we're all open to suggestions on how to improve the process, so feel free to leave feedback here or email me directly. Thanks!I think most points of the DIP process make sense, but it has one very large problem. Feedback from language maintainers (Walter and Andrei) is not done until the end of the process. You're asking someone to go through a process that can take a year before the people who have the power to accept or reject the proposal look at it or leave any feedback. This is extremely wasteful of the author's time, the reviewer's time and causes extreme pressure for everyone involved. A years worth of waiting, debate and revision that are now wasted and could have easily been avoided if language maintainers left their feedback early on. Walter and Andrei should be involved in the process throughout, not just render judgement at the end. In the years I've been here I have found that feedback from anyone other than Walter and Andrei has very little bearing on what Walter and Andrei will think. The entire community can think an idea is great, but then Walter or Andrei completely reject it. And the opposite is true as well, I've seen W&A champion an idea that the community generally rejects. Designing a process to ask many people to create and perfect a proposal for a year catered to 2 specific people without any feedback from them is mind-boggling to me. Based on my observations, my guess is that the DIP process was designed to alleviate the amount of work needed from Walter and Andrei, but look what it's produced. To Walter and Andrei: The amount of decision-making power you hold needs to be matched by the amount of involvement you have in the process. There's no such thing as a free lunch, you can't just punt the work to everyone else for so long and then expect everything to work out great when all that work is completely rejected. This is a gross misuse of people's time and a good way to foster a hostile community. When you leave early feedback, you're likely to trade a years worth of debate and revision between many people for a few minutes of your time. Since you asked for suggestions, here's how I would revise the process: Step 1: Research your proposal, search through the forums/DIP repo/github/Google Step 2: Create a forum post with your proposal, Walter or Andrei is required to either accept or reject whether the proposal warrants the effort to formalize it. Step 3: If formalization is accepted, the author does so We are now at Step 1 of the current DIP process. I would then follow the current process as it exists with the modification that Walter and Andrei be involved throughout. DIPs should be a document that contains the research and results of a proposal that includes feedback from the entire community, including Walter and Andrei. Seeing it as a document created by the community to be presented to Walter and Andrei with no feedback from them results in the problems I discussed above.
Feb 26 2019
On 2/26/19 12:46 PM, Jonathan Marler wrote:I think most points of the DIP process make sense, but it has one very large problem. Feedback from language maintainers (Walter and Andrei) is not done until the end of the process. You're asking someone to go through a process that can take a year before the people who have the power to accept or reject the proposal look at it or leave any feedback. This is extremely wasteful of the author's time, the reviewer's time and causes extreme pressure for everyone involved.This is the case for all relevant submission processes I know of - conferences, journals, programming languages. A process of shepherding/assistance is not unheard of, but exceptionally rare. I've only had direct experience with it in HOPL, which itself is an exceptional (and an exceptionally rare) conference. I recall the POPL community had something similar. Until we have an army of competent reviewers, we can't consider this. The initial community process is an important step that ensures good initial quality of submissions. This is the case for many programming language communities. We could definitely do better there, and the DIP guidelines could emphasize the importance and the structure of this stage. The process of revisions is intended to provide a path for proposals to evolve from initial submission to approval. Improvements of the mechanics and logistics of the revisions would be welcome. I'm not sure how we can improve this from the top, but I'd love to foster more of an esprit de corps on the submitters' side. A DIP can be very impactful, but it requires hard work with no guaranteed outcome. All of the time and energy spent on contesting the DIP 1016 decision should have been at best directed toward improving the proposal. The attitude that DIP rejection is not an acceptable outcome and consequently needs to be negotiated in forums, that - that must be replaced with an attitude that a setback offers a solid ground for a better proposal.
Feb 26 2019
On Tuesday, 26 February 2019 at 18:22:09 UTC, Andrei Alexandrescu wrote:This is the case for all relevant submission processes I know of - conferences, journals, programming languages. A process of shepherding/assistance is not unheard of, but exceptionally rare.In my fields (medicine and genomics), it is extremely common that high impact journals offer a pre-review/estimate of suitability to authors prior to submission. For example, one does not typically submit to NEJM or Nature without discussing with an editor first.Until we have an army of competent reviewers, we can't consider this.Extending this analogy, these reviews are typically done by associate editor.
Feb 26 2019
On 2/26/19 2:45 PM, James Blachly wrote:On Tuesday, 26 February 2019 at 18:22:09 UTC, Andrei Alexandrescu wrote:Yah, I know of the process from my wife. There are quite a few differences between the fields. One is that in medicine a case presentation is in and by itself publishable material, and all the editor needs to do is assess the rarity and relevance of the material.This is the case for all relevant submission processes I know of - conferences, journals, programming languages. A process of shepherding/assistance is not unheard of, but exceptionally rare.In my fields (medicine and genomics), it is extremely common that high impact journals offer a pre-review/estimate of suitability to authors prior to submission. For example, one does not typically submit to NEJM or Nature without discussing with an editor first.
Feb 26 2019
On Tuesday, 26 February 2019 at 19:49:52 UTC, Andrei Alexandrescu wrote:On 2/26/19 2:45 PM, James Blachly wrote:I am not at all describing “case reports,” and your thoughtless dismissal of earnest feedback/suggestion really underlines the criticisms others have leveled against you specifically, and perhaps the process generally.On Tuesday, 26 February 2019 at 18:22:09 UTC, Andrei Alexandrescu wrote:Yah, I know of the process from my wife. There are quite a few differences between the fields. One is that in medicine a case presentation is in and by itself publishable material, and all the editor needs to do is assess the rarity and relevance of the material.This is the case for all relevant submission processes I know of - conferences, journals, programming languages. A process of shepherding/assistance is not unheard of, but exceptionally rare.In my fields (medicine and genomics), it is extremely common that high impact journals offer a pre-review/estimate of suitability to authors prior to submission. For example, one does not typically submit to NEJM or Nature without discussing with an editor first.
Feb 26 2019
On Tuesday, 26 February 2019 at 20:09:31 UTC, James Blachly wrote:I am not at all describing “case reports,” and your thoughtless dismissal of earnest feedback/suggestion really underlines the criticisms others have leveled against you specifically, and perhaps the process generally.Even if one is talking full blown research papers, though, there is an important difference: if a seriously flawed research paper gets published, whatever the field, it is generally very unlikely that it will have any meaningful consequences. The infamous exceptions don't exclude the fact that most research papers of any kind, correct or not, vanish with little real impact. On the other hand when one compares to the process for getting new drugs approved for use (where any mistake can have VERY serious impacts on human health), it's a much longer, more time-consuming and involved process, spanning many years. Given the fact that a problematic change to the D language or core libraries can cause a lot of pain for established users, the process needed for DIPs is inevitably going to err on the more stringent and inclined to reject side of things. That's not to say that there isn't some merit in getting earlier feedback from those with veto power, but the trouble is, the real merit of an idea often isn't clear until the hard work has been done, and in any case, it's quite possible that people will react to early rejection by just feeling they need to add more detail and putting the work in on a full DIP in any case.
Feb 26 2019
On 2/26/19 3:09 PM, James Blachly wrote:On Tuesday, 26 February 2019 at 19:49:52 UTC, Andrei Alexandrescu wrote:Didn't that escalate a bit quick? You wrote the goings in your field with no further argument as to how the process would be translated to our case. I shared the little insight I had, too, in expectation of more detail. How is one a earnest feedback/suggestion and the other thoughtless dismissal?On 2/26/19 2:45 PM, James Blachly wrote:I am not at all describing “case reports,” and your thoughtless dismissal of earnest feedback/suggestion really underlines the criticisms others have leveled against you specifically, and perhaps the process generally.On Tuesday, 26 February 2019 at 18:22:09 UTC, Andrei Alexandrescu wrote:Yah, I know of the process from my wife. There are quite a few differences between the fields. One is that in medicine a case presentation is in and by itself publishable material, and all the editor needs to do is assess the rarity and relevance of the material.This is the case for all relevant submission processes I know of - conferences, journals, programming languages. A process of shepherding/assistance is not unheard of, but exceptionally rare.In my fields (medicine and genomics), it is extremely common that high impact journals offer a pre-review/estimate of suitability to authors prior to submission. For example, one does not typically submit to NEJM or Nature without discussing with an editor first.
Feb 26 2019
On 2/26/19 5:09 PM, Andrei Alexandrescu wrote:On 2/26/19 3:09 PM, James Blachly wrote:I acknowledge and apologize. I misinterpreted your terseness as tacit dismissal based on a preformed negative impression without getting to know you personally. Mea culpa. To return to the analogy, from the perspective of an outsider [to the DIP process], the scientific article (I am speaking here of hypothesis-driven research) submission/peer referee process and the DIP submission/revision process appear quite similar, as you pointed out. To clarify further, rejection after review and possibly multiple rounds of revision is a disappointing, but expected outcome. In this sense it is like the DIP process and I believe even Manu has said that this is an acceptable outcome, so long as the review was fair. Upthread, J. Marler made the suggestion that a suitable authority or designee may be able to provide a "pre-review". This is indeed common in biomedicine: a journal's associate editor may provide an estimate of suitability of the study in question, before the manuscript is formatted to the journal's specific requirements or before final supplementary experiments and figures are compiled. If one is lucky, some general guidance about suggested experiments that might be necessary prior to acceptance may be given. If I know that _Nature Genetics_ is not at all interested in my manuscript (due to editorial priorities, or study scope, or whatever) I can save a lot of time. In the sense that I have multiple options (perhaps formatting and targeting instead _Genome Biology_) this is dissimilar to DIP. Even more importantly, **after each round of revisions in the scientific paper submission process, the editor or associate editor provides commentary regarding the reviews as received (and as a scientist themself is responsible for recognizing inappropriate, inaccurate, or unfair peer review) and makes a judgement about whether to accept the manuscript, proceed pending additional minor or major revisions, or reject.** This I find key, and could make the most improvement in the DIP review process. Ultimately, I agree with other commenters that it could be helpful to have feedback from the language maintainers much earlier in the process than at the very end of a potentially long road. Clearly no one can compel Andrei and Walter to provide more of their limited time, but some additional intervention, whether in pre-review, or shepherding of reviews, may go along way toward alleviating the concerns raised recently. Offered in a spirit of helpfulness, James BlachlyOn Tuesday, 26 February 2019 at 19:49:52 UTC, Andrei Alexandrescu wrote:Didn't that escalate a bit quick? You wrote the goings in your field with no further argument as to how the process would be translated to our case. I shared the little insight I had, too, in expectation of more detail. How is one a earnest feedback/suggestion and the other thoughtless dismissal?Yah, I know of the process from my wife. There are quite a few differences between the fields. One is that in medicine a case presentation is in and by itself publishable material, and all the editor needs to do is assess the rarity and relevance of the material.I am not at all describing “case reports,” and your thoughtless dismissal of earnest feedback/suggestion really underlines the criticisms others have leveled against you specifically, and perhaps the process generally.
Feb 26 2019
On Wednesday, 27 February 2019 at 03:19:53 UTC, James Blachly wrote:Ultimately, I agree with other commenters that it could be helpful to have feedback from the language maintainers much earlier in the process than at the very end of a potentially long road. Clearly no one can compel Andrei and Walter to provide more of their limited time, but some additional intervention, whether in pre-review, or shepherding of reviews, may go along way toward alleviating the concerns raised recently.Would it be useful to have 1 more offical review step? Step 1: The author creates the DIP Step 2: The author submits the DIP to the DIP manager (community input already implied) Step 3: The language maintainers perform a *pre-review* Step 4: The DIP manager informs the author of the feedback Step 5: The author actions feedback as needed, submits the DIP to the DIP manager Step 6: Final review I realise it's an increase of workload for the language maintainers, but the payoff may well be worth it if we can still get engagement from expert D users like Manu etc. Jordan
Feb 26 2019
On Wednesday, 27 February 2019 at 04:12:31 UTC, Jordan Wilson wrote:Would it be useful to have 1 more offical review step? Step 1: The author creates the DIP Step 2: The author submits the DIP to the DIP manager (community input already implied) Step 3: The language maintainers perform a *pre-review* Step 4: The DIP manager informs the author of the feedback Step 5: The author actions feedback as needed, submits the DIP to the DIP manager Step 6: Final review I realise it's an increase of workload for the language maintainers, but the payoff may well be worth it if we can still get engagement from expert D users like Manu etc.But that's the main problem, if you watch old DConfs they always said the same thing: "We have a lack of reviewers". I pretty sure Walter/Andrei work on other things while at the same time trying to managing everything. So while nobody with knowledge decide to step in to do a "pre-review" I don't think they will do it. Donald.
Feb 27 2019
On Wednesday, 27 February 2019 at 14:23:56 UTC, Donald wrote:So while nobody with knowledge decide to step in to do a "pre-review" I don't think they will do it.It may help more to have a detailed checklist of * things that reviewers should particularly pay attention to in order to ensure a quality review * hard lines that are likely to result in a proposal being rejected, which both authors and reviewers can take into account Right now too many community reviewers are just sharing opinions and preferences without enough reference to the questions that actually make the difference to whether a proposal is viable or not.
Feb 27 2019
On 2/26/19 11:12 PM, Jordan Wilson wrote:On Wednesday, 27 February 2019 at 03:19:53 UTC, James Blachly wrote:That should already be the case, with a revision loop between steps 3 and 5. Mike, perhaps the iteration and revision system could be emphasized and clarified further in the guidelines.Ultimately, I agree with other commenters that it could be helpful to have feedback from the language maintainers much earlier in the process than at the very end of a potentially long road. Clearly no one can compel Andrei and Walter to provide more of their limited time, but some additional intervention, whether in pre-review, or shepherding of reviews, may go along way toward alleviating the concerns raised recently.Would it be useful to have 1 more offical review step? Step 1: The author creates the DIP Step 2: The author submits the DIP to the DIP manager (community input already implied) Step 3: The language maintainers perform a *pre-review* Step 4: The DIP manager informs the author of the feedback Step 5: The author actions feedback as needed, submits the DIP to the DIP manager Step 6: Final review I realise it's an increase of workload for the language maintainers, but the payoff may well be worth it if we can still get engagement from expert D users like Manu etc.
Feb 27 2019
On Wednesday, 27 February 2019 at 04:12:31 UTC, Jordan Wilson wrote:Step 3: The language maintainers perform a *pre-review*I'll say that personally, and I stress *personally*, I have no problem with this on the surface. It would need to be understood by everyone that if we did implement this step, no feedback from Walter and/or Andrei at this stage would mean approval is guaranteed. We do have to take into consideration the amount of time it will add to an already lengthy process. Consider that this could potentially add even more work for the author (not to mention the rest of us involved in the process) with no guarantee that the DIP will be accepted. I don't know if that would actually be an improvement. However, IMO, it would be more fruitful if we could start looking for volunteers to act as "advisers" to DIP authors throughout the process. This could potentially provide more focus on revising the DIP based on technical merit without the pollution of personal opinions, particularly if we could have, say, two or three people doing it. Then by the time it gets to community review it could be in much better shape than it otherwise would have been. The problem, as always, is getting people to fill the role. The more involvement we require from Walter and Andrei in the process, the less time they have to spend on other tasks that need doing.
Feb 27 2019
On Wednesday, 27 February 2019 at 21:02:44 UTC, Mike Parker wrote:no feedback from Walter and/or Andrei at this stage would mean approval is guaranteed.I think you dropped a "not" here.
Feb 28 2019
On Tuesday, 26 February 2019 at 19:45:40 UTC, James Blachly wrote:In my fields (medicine and genomics), it is extremely common that high impact journals offer a pre-review/estimate of suitability to authors prior to submission.Let's say for example someone ask Andrei/Walter about adding X feature in the language, and they both say it sounds good. Then the DIP is written and proposed, but unfortunately it has flaws and in the end it's rejected. So I think that your suggestion will not change much the final result. The way I see there is a lack of reviewers to take care or participate in the DIP during it's development, so it will only be reviewed at the end. Now the "proposers" need to understand that it may be rejected, yes it's hard but it can happen. Finally for what I've saw from the past cases, the reviewers pointed their concerns, and you would expect then that the "proposers" to fix their DIPs. Donald.
Feb 26 2019
On Tue, Feb 26, 2019 at 10:25 AM Andrei Alexandrescu via Digitalmars-d <digitalmars-d puremagic.com> wrote:On 2/26/19 12:46 PM, Jonathan Marler wrote:It seems like you've missed the point again. I can't see anything in the process amendments that could have averted the issues with my DIP. I'm going to write this once, then I'm not going to post about this anymore. This is the process as I saw it: 1. The DIP pipeline is long, in the mean time, there were community reviews, many amendments were made, and objections were eliminated. 2. In contrast to the copy ctor DIP, which I suspect enjoyed A&W's input the whole way along (demonstrated by the pre-acceptance), which presumably included true and actionable feedback, it was clearly stated that there was a deliberate intent to NOT read or consider a single word in my in-progress DIP at any time prior to final review. a. This was iterated more than once. b. In theory, this is fine, but we're certainly playing on an un-level playing-field, and what followed shows the weakness of this strategy. 3. My DIP was rejected a. This is fine, there are valid reasons for this b. The rejection text was *completely* unhelpful, and 75% of it was completely wrong c. Despite an incorrect assessment, it was made *very clear* that I should start again, submit a new one *on the back of the queue* 4. Off the back of extensive discussion while trying to dig out details, while also being insulted, it was concluded that there are 2 minor and self-contained issues. a. All the rhetoric supporting the official rejection text was invalidated. b. One real issue is that the rewrite didn't support exceptions - I submit a PR to correct it, it was merged, and then reverted because the DIP was final c. The second is that the formal review fell off the wagon on account of one variable name, and used that to build a large fantasy about what the text intended, which was in conflict to the heading *immediately above* (and the DIP title, and the brief, and plenty of points elsewhere) - This confusion did not occur at any point during the community review - Surely the reviewers must have found the conflict with the title immediately above odd, and perhaps might have considered seeking clarification rather than repeatedly insult me about it 5. It is clear my DIP could be reconsidered and interpreted completely differently with 2 minor and self-contained amendments. a. This is the change: `my_short` => `short(10)` b. Just yesterday, Andrei re-re-reiterated "copy&paste 75% of the text, get 75% of the same review", which pisses me off even more, because I should only have to change one word, and get at least a 75% *different* review, since that 75% was completely wrong the first time. 6. No consideration or acceptance that the review was thoroughly flawed is acknowledged, and despite this realisation, it remains insisted that I produce a new DIP at the back of the pipeline. 7. The rejection is fine. The process following the rejection was insulting and deeply unsatisfying. a. I think a feature of this is a deference to process; "We rejected it, so it's rejected, period. Oh, I see that we didn't actually review what was written because we misunderstood a single word and made up the rest following that misunderstanding... you could change that word and we reconsider the actual text, but process says it's rejected, so you must start again" b. Again, you're entitled to stand by a bullshit process, but I don't want anything to do with it! c. It would have saved everyone a lot of time, energy, and good-will to accept a one-word amendment and then re-consider. TL;DR, true feedback was that I needed to do one legit self-contained fix to the rewrite syntax to support exceptions (I made a PR for that correction), and a *one word* (a trivial variable name) amendment to have the thing re-read correctly, and I'm not satisfied that I should have to restart the process on that matter. It would take me *seconds* to fix and resubmit, but I'm a salty arsehole, and I'm disenfranchised by the process and stubborn insistence that because I chose a poor variable name that all my work was rubbish and I should start over. That is the official position as still stands right now, no effort has been made to suggest otherwise (quite the contrary in fact; it has been double-triple-quadrupled-down on this point that this is the intended and desirable outcome), and if that's the intended outcome of the process, then I don't want to participate in something so unreasonable and unhelpful.I think most points of the DIP process make sense, but it has one very large problem. Feedback from language maintainers (Walter and Andrei) is not done until the end of the process. You're asking someone to go through a process that can take a year before the people who have the power to accept or reject the proposal look at it or leave any feedback. This is extremely wasteful of the author's time, the reviewer's time and causes extreme pressure for everyone involved.This is the case for all relevant submission processes I know of - conferences, journals, programming languages. A process of shepherding/assistance is not unheard of, but exceptionally rare. I've only had direct experience with it in HOPL, which itself is an exceptional (and an exceptionally rare) conference. I recall the POPL community had something similar. Until we have an army of competent reviewers, we can't consider this. The initial community process is an important step that ensures good initial quality of submissions. This is the case for many programming language communities. We could definitely do better there, and the DIP guidelines could emphasize the importance and the structure of this stage. The process of revisions is intended to provide a path for proposals to evolve from initial submission to approval. Improvements of the mechanics and logistics of the revisions would be welcome. I'm not sure how we can improve this from the top, but I'd love to foster more of an esprit de corps on the submitters' side. A DIP can be very impactful, but it requires hard work with no guaranteed outcome. All of the time and energy spent on contesting the DIP 1016 decision should have been at best directed toward improving the proposal. The attitude that DIP rejection is not an acceptable outcome and consequently needs to be negotiated in forums, that - that must be replaced with an attitude that a setback offers a solid ground for a better proposal.All of the time and energy spent on contesting the DIP 1016 decision should have been at best directed toward improving the proposal.I never did contest the decision, I contested the reasoning for your rejection (it was completely wrong) and the way you handled it, and the refusal to reconsider the DIP with the exception fix and a better choice of variable name. It remains insisted that the process is restarted.The attitude that DIP rejection is not an acceptable outcome and consequently needs to be negotiated in forums, that - that must be replaced with an attitude that a setback offers a solid ground for a better proposal.I don't hold that attitude. I *do* hold the attitude that an unfair review with no opportunity afforded to make a trivial correction is not a worthwhile outcome. You were completely bent out of shape over *one variable name*, right beneath a bold heading that couldn't have made the intended meaning more clear. The rewrite to support exceptions proper needs legit fix, but I did that within a couple of hours of rejection (and the PR was merged, then reverted). There's nothing I'm aware I could have done according to the process where I may have avoided this outcome. I have to accept that a poor choice of variable name somehow makes a completely incorrect and unfair "final" review after a couple hundred days in the pipeline just fine and normal.
Feb 26 2019
On Tuesday, 26 February 2019 at 22:16:09 UTC, Manu wrote:3. My DIP was rejected a. This is fine, there are valid reasons for this b. The rejection text was *completely* unhelpful, and 75% of it was completely wrong c. Despite an incorrect assessment, it was made *very clear* that I should start again, submit a new one *on the back of the queue*This seems an important point: what are the avenues of appeal if the decision to reject a DIP is based on problematic reasoning? It seems very reasonable that rejected DIPs should have one (but only one!) automatic "right of appeal" via which the authors can respond to the rationale for the rejection, and if needed offer potential fixes, and get a reappraisal without having to go all the way back to the beginning of the process. That should reduce the scope for rejections based on misunderstandings, miscommunications, or trivially fixed flaws, while not overly increasing the decision-makers' burden. This is much more likely to reduce wasted time or demotivation than early feedback, because most ideas only reveal their merit after thorough investigation -- but it is very frustrating and time consuming to have a well-worked-out idea knocked a long way back when the concerns may be simple to address. By the way, that's also something that exists in scientific publishing: if the referees have severely misunderstood or mis-assessed a piece of work, it's quite normal to request that the editor seek a fresh opinion.
Feb 26 2019
On Tue, Feb 26, 2019 at 3:40 PM Joseph Rushton Wakeling via Digitalmars-d <digitalmars-d puremagic.com> wrote:On Tuesday, 26 February 2019 at 22:16:09 UTC, Manu wrote:Right, I mean, it's also offensive that W&A tried to pacify me by saying "don't worry, 1018 had a lot of amendments too!", which is insulting because *they were reviewing and iterating feedback*! They were involved in that process along the way, to such a degree that it didn't even need acceptance, it was pre-accepted! Yet, I didn't even have a single opportunity to present how it was misread, and then have it reconsidered on amendment of one word! Anyway, follow-on conversation did eventually reveal action points, but by that point, the process has already self-defeated and I'm grumpy and disengaged at this point. The process was the problem here for me, not the verdict.3. My DIP was rejected a. This is fine, there are valid reasons for this b. The rejection text was *completely* unhelpful, and 75% of it was completely wrong c. Despite an incorrect assessment, it was made *very clear* that I should start again, submit a new one *on the back of the queue*This seems an important point: what are the avenues of appeal if the decision to reject a DIP is based on problematic reasoning? It seems very reasonable that rejected DIPs should have one (but only one!) automatic "right of appeal" via which the authors can respond to the rationale for the rejection, and if needed offer potential fixes, and get a reappraisal without having to go all the way back to the beginning of the process. That should reduce the scope for rejections based on misunderstandings, miscommunications, or trivially fixed flaws, while not overly increasing the decision-makers' burden. This is much more likely to reduce wasted time or demotivation than early feedback, because most ideas only reveal their merit after thorough investigation -- but it is very frustrating and time consuming to have a well-worked-out idea knocked a long way back when the concerns may be simple to address. By the way, that's also something that exists in scientific publishing: if the referees have severely misunderstood or mis-assessed a piece of work, it's quite normal to request that the editor seek a fresh opinion.
Feb 26 2019
On Tuesday, 26 February 2019 at 23:50:12 UTC, Manu wrote:Anyway, follow-on conversation did eventually reveal action points, but by that point, the process has already self-defeated and I'm grumpy and disengaged at this point. The process was the problem here for me, not the verdict.Adding a fast-track revise-and-appeal seems a straightforward process revision. If that were to be given a trial in this case as a goodwill gesture, do you think it might have a chance of de-grumpifying you? (Obviously it's not in my hands to offer that, but raising the idea seems useful.) If I understand right Nicholas Wilson has proposed a process to deal with this at DConf, so no worries if you would rather follow that route.
Feb 26 2019
On Wednesday, 27 February 2019 at 00:06:14 UTC, Joseph Rushton Wakeling wrote:On Tuesday, 26 February 2019 at 23:50:12 UTC, Manu wrote:;)Anyway, follow-on conversation did eventually reveal action points, but by that point, the process has already self-defeated and I'm grumpy and disengaged at this point. The process was the problem here for me, not the verdict.Adding a fast-track revise-and-appeal seems a straightforward process revision. If that were to be given a trial in this case as a goodwill gesture, do you think it might have a chance of de-grumpifying you? (Obviously it's not in my hands to offer that, but raising the idea seems useful.) If I understand right Nicholas Wilson has proposed a process to deal with this at DConf, so no worries if you would rather follow that route.revise-and-appealThat seems to have already been the case with DIP1009 (expressions based contracts) or at least something like it.
Feb 26 2019
On 2/26/19 7:06 PM, Joseph Rushton Wakeling wrote:Adding a fast-track revise-and-appeal seems a straightforward process revision. If that were to be given a trial in this case as a goodwill gesture, do you think it might have a chance of de-grumpifying you? (Obviously it's not in my hands to offer that, but raising the idea seems useful.)Sounds to me like the key is the lack of a "For the love of ****, basic common sense shall always prevail over rigid adherence to process!" amendment.
Feb 27 2019
On Thursday, 28 February 2019 at 02:49:01 UTC, Nick Sabalausky (Abscissa) wrote:On 2/26/19 7:06 PM, Joseph Rushton Wakeling wrote:Indeed. A bit of common courtesy would go a long way too.Adding a fast-track revise-and-appeal seems a straightforward process revision. If that were to be given a trial in this case as a goodwill gesture, do you think it might have a chance of de-grumpifying you? (Obviously it's not in my hands to offer that, but raising the idea seems useful.)Sounds to me like the key is the lack of a "For the love of ****, basic common sense shall always prevail over rigid adherence to process!" amendment.
Feb 27 2019
On Tuesday, 26 February 2019 at 22:16:09 UTC, Manu wrote:... TL;DR, true feedback was that I needed to do one legit self-contained fix to the rewrite syntax to support exceptions (I made a PR for that correction), and a *one word* (a trivial variable name) amendment to have the thing re-read correctly, and I'm not satisfied that I should have to restart the process on that matter. It would take me *seconds* to fix and resubmit, but I'm a salty arsehole, and I'm disenfranchised by the process and stubborn insistence that because I chose a poor variable name that all my work was rubbish and I should start over.Sorry but I don't buy it. I mean if it would be so simple as you say, like in matter of seconds to fix it, why not just do it? So you decided that because the way the process is you shouldn't do it? It think that was a huge mistake of your part. You should have made all the fixes and proposed it again, just to see the aftermath. Doing this in my opinion would be the way to adjust the process, not just give up. Donald.
Feb 26 2019
On Tue, Feb 26, 2019 at 3:45 PM Donald via Digitalmars-d <digitalmars-d puremagic.com> wrote:On Tuesday, 26 February 2019 at 22:16:09 UTC, Manu wrote:I did, and the amendment was merged, and then it was reverted because the document was finalised. I was told to start over, end of story, no more to say.... TL;DR, true feedback was that I needed to do one legit self-contained fix to the rewrite syntax to support exceptions (I made a PR for that correction), and a *one word* (a trivial variable name) amendment to have the thing re-read correctly, and I'm not satisfied that I should have to restart the process on that matter. It would take me *seconds* to fix and resubmit, but I'm a salty arsehole, and I'm disenfranchised by the process and stubborn insistence that because I chose a poor variable name that all my work was rubbish and I should start over.Sorry but I don't buy it. I mean if it would be so simple as you say, like in matter of seconds to fix it, why not just do it?So you decided that because the way the process is you shouldn't do it?Yes, I don't want to participate in that machine. I am a volunteer spending my free time; I don't want to do something that makes me upset and angry, I would rather do something that makes me feel good.It think that was a huge mistake of your part. You should have made all the fixes and proposed it again, just to see the aftermath.I did make the key fix (fix the exception issue), and it was merged, and then it was reverted.Doing this in my opinion would be the way to adjust the process, not just give up.Bear in mind, this period of the process was also loaded with series of personal insults describing the various ways that I was incompetent on at least 3 different accounts, which really doesn't help keep a level head. Consider DIP 1080: W&A: this needs work, fix this W&A: this needs work, fix this W&A: this needs work, fix this W&A: this is great, it's pre-accepted And DIP 1016: Others: this needs work, fix this Others: this needs work, fix this Others: this seems fine W&A: I'm confused by this word, eject the whole thing into space, start again, you're an idiot, this is final, come back 1 year! Like, this meant to be funny, but it's actually accurate.
Feb 26 2019
On Wednesday, 27 February 2019 at 00:15:02 UTC, Manu wrote:... Consider DIP 1080: W&A: this needs work, fix this W&A: this needs work, fix this W&A: this needs work, fix this W&A: this is great, it's pre-accepted And DIP 1016: Others: this needs work, fix this Others: this needs work, fix this Others: this seems fine W&A: I'm confused by this word, eject the whole thing into space, start again, you're an idiot, this is final, come back 1 year! Like, this meant to be funny, but it's actually accurate.Well this is a bit tricky. Because the way you showed above, you fixed what others pointed but not what W&A pointed. I'm not here to take any sides, but yes in DIP 1080 Andrei/Walter were more active there, and maybe that's is the trickiest part. In your case just after you presented DIP 1016 that Walter/Andrei appeared. Finally I know you are an old member and trying to help, so please don't take this DIP rejection personally, I still think you should try one more time, with what W&A pointed and even highlight it in the document and re-applied again. Donald.
Feb 26 2019
On Tue, Feb 26, 2019 at 5:05 PM Donald via Digitalmars-d <digitalmars-d puremagic.com> wrote:On Wednesday, 27 February 2019 at 00:15:02 UTC, Manu wrote:Okay, I've repeated this a bunch now, but I'll do it again. 1. They pointed out the exception problem, which I patched within an hour or 2 (and was later reverted because 'final'). 'fixing what they pointed out' is explicitly not welcome according to the process. 2. Everything else in that text is wrong. I can't address criticism that's not actually true.... Consider DIP 1080: W&A: this needs work, fix this W&A: this needs work, fix this W&A: this needs work, fix this W&A: this is great, it's pre-accepted And DIP 1016: Others: this needs work, fix this Others: this needs work, fix this Others: this seems fine W&A: I'm confused by this word, eject the whole thing into space, start again, you're an idiot, this is final, come back 1 year! Like, this meant to be funny, but it's actually accurate.Well this is a bit tricky. Because the way you showed above, you fixed what others pointed but not what W&A pointed.In your case just after you presented DIP 1016 that Walter/Andrei appeared. Finally I know you are an old member and trying to help, so please don't take this DIP rejection personally, I still think you should try one more time, with what W&A pointed and even highlight it in the document and re-applied again.There's nothing in the rejection text other than the exception issue, which I patched within hours (it was reverted). The rest of it is completely wrong. One of the cores of my struggle here beyond getting a re-assessment with a word changed, was also getting the rejection text revised to be *true*. I would appreciate it be on record the reasons that the DIP was rejected, and not the fantasy that caused it to be rejected. Then there's clear and visible detail of the path forwards which everyone can see. Right now, anybody who goes to that document can read the rejection text, and they'll assume that it's not just all made up, and that it somehow represents technical reasons it was rejected. I appealed for this outcome many times, and it's overtly and repeatedly denied. Review is 'final', and the rejection text "is what it is, and we don't owe anybody anything else" (like being correct).
Feb 26 2019
On Tuesday, 26 February 2019 at 22:16:09 UTC, Manu wrote:4. Off the back of extensive discussion while trying to dig out details, while also being insulted, it was concluded that there are 2 minor and self-contained issues.We strongly disagree on this one. Your opinion is, explicitly, that the only criticisms of the DIP were about the lack of exception support and the "ref to implicit cast" issue (your "bad choice of variable name"), and that the DIP would have been accepted if not for them. You especially insist on the "one word" part, and seem pretty confident that this word completely changed the final result. This is *not* what W&A have said. In that, they have said, multiple times, that these problems were *symptoms* of the lack of polish of the proposal, and that the DIP couldn't be accepted until that lack of polish was corrected. Notably, Andrei has said:So if we rejected the DIP, we didn't do so on account of one word that can be so easily changed; we did so on account of a DIP that as a whole failed to clarify what it purports to do (and equally importantly, to not do).(https://forum.dlang.org/post/q2u429$1cmg$1 digitalmars.com) in a post that you haven't answered. Now, I agree with you that there were problems in the process, and that the rejection rationale posted on Github was pretty unhelpful, and just plain bad. But that idea you have that "W&A stubbornly refuse to reconsider their decision based on a few lines they misunderstood" is just inaccurate.c. The second is that the formal review fell off the wagon on account of one variable name, and used that to build a large fantasy about what the text intended, which was in conflict to the heading *immediately above* (and the DIP title, and the brief, and plenty of points elsewhere) - Surely the reviewers must have found the conflict with the title immediately above odd, and perhaps might have considered seeking clarification rather than repeatedly insult me about itDuring the whole process, you've insisted a lot that "we're talking about r-values, so obviously [ref to cast of lvalue] doesn't apply". But there is no strict definition, as-is, of what is or isn't a rvalue. In fact, Walter has said:That's why it's problematic to have a rule that rvalues can be implicitly converted, but not lvalues. There's not a hard line between lvalues and rvalues.(https://forum.dlang.org/post/q2vr50$1lga$1 digitalmars.com) The DIP as it stands doesn't address how to differentiate lvalues from rvalues in cases like "symbol[expr]", "symbol.symbol", "symbol.symbol[expr]", "cast(type)expr", etc. Now, you might say (and have said in the past) "Well that's obvious, you just need to do X, unless Y, in which case Z", but the point is that all these considerations *need to be in the proposal*. As it is, the proposal doesn't have any negative space. That is, it explains what the feature should look like, but it doesn't define boundaries, where the feature is or isn't allowed to be used. Defining negative space is important because it's how you find corner cases, cases where the correct behavior seems obvious, and yet when you spell it out it turns out everyone disagrees on how it should be handled. Right now, the DIP doesn't address at all potential corner cases like alias this, return ref, auto ref, refs in foreach, casts, etc. --- tl;dr: There were major problems in how W&A handled DIP 1016, but saying it was rejected because of "a single world" is inacurate. It had major structural problems that could not be fixed with a few minor changes.
Feb 28 2019
On Friday, 1 March 2019 at 00:27:23 UTC, Olivier FAURE wrote:On Tuesday, 26 February 2019 at 22:16:09 UTC, Manu wrote:The point is that that is not _actionable_, for two reasons: 1) the rejection rationale is wrong and until the reasons for rejection reflect the problems nothing can be done to improve the DIP, and 2) attempts to do so have been rejected4. Off the back of extensive discussion while trying to dig out details, while also being insulted, it was concluded that there are 2 minor and self-contained issues.We strongly disagree on this one. Your opinion is, explicitly, that the only criticisms of the DIP were about the lack of exception support and the "ref to implicit cast" issue (your "bad choice of variable name"), and that the DIP would have been accepted if not for them. You especially insist on the "one word" part, and seem pretty confident that this word completely changed the final result. This is *not* what W&A have said. In that, they have said, multiple times, that these problems were *symptoms* of the lack of polish of the proposal, and that the DIP couldn't be accepted until that lack of polish was corrected. Notably, Andrei has said:So if we rejected the DIP, we didn't do so on account of one word that can be so easily changed; we did so on account of a DIP that as a whole failed to clarify what it purports to do (and equally importantly, to not do).(https://forum.dlang.org/post/q2u429$1cmg$1 digitalmars.com) in a post that you haven't answered. Now, I agree with you that there were problems in the process, and that the rejection rationale posted on Github was pretty unhelpful, and just plain bad. But that idea you have that "W&A stubbornly refuse to reconsider their decision based on a few lines they misunderstood" is just inaccurate.They could all be reasonable categorised a rvalue that arise from lvalues.c. The second is that the formal review fell off the wagon on account of one variable name, and used that to build a large fantasy about what the text intended, which was in conflict to the heading *immediately above* (and the DIP title, and the brief, and plenty of points elsewhere) - Surely the reviewers must have found the conflict with the title immediately above odd, and perhaps might have considered seeking clarification rather than repeatedly insult me about itDuring the whole process, you've insisted a lot that "we're talking about r-values, so obviously [ref to cast of lvalue] doesn't apply". But there is no strict definition, as-is, of what is or isn't a rvalue. In fact, Walter has said:That's why it's problematic to have a rule that rvalues can be implicitly converted, but not lvalues. There's not a hard line between lvalues and rvalues.(https://forum.dlang.org/post/q2vr50$1lga$1 digitalmars.com) The DIP as it stands doesn't address how to differentiate lvalues from rvalues in cases like "symbol[expr]", "symbol.symbol", "symbol.symbol[expr]", "cast(type)expr", etc.Now, you might say (and have said in the past) "Well that's obvious, you just need to do X, unless Y, in which case Z", but the point is that all these considerations *need to be in the proposal*.I agree, but see point 2 above.As it is, the proposal doesn't have any negative space. That is, it explains what the feature should look like, but it doesn't define boundaries, where the feature is or isn't allowed to be used. Defining negative space is important because it's how you find corner cases, cases where the correct behavior seems obvious, and yet when you spell it out it turns out everyone disagrees on how it should be handled.That is a really great analogy, I like it!Right now, the DIP doesn't address at all potential corner cases like alias this, return ref, auto ref, refs in foreach, casts, etc. --- tl;dr: There were major problems in how W&A handled DIP 1016, but saying it was rejected because of "a single world" is inacurate.A hyperbole yes...It had major structural problems that could not be fixed with a few minor changes.... but the DIP is very sensitive (in the mathematical sense: ∂|review|/∂|DIP| (where || is the edit distance) is absolutely massive) and no recourse was given. What would the required edit distance be? Hard to say, because it is currently in the domain of the review is at fault. That _must_ be fixed before the DIP can be improved, but see point 2 above.
Feb 28 2019
On Thu, Feb 28, 2019 at 4:30 PM Olivier FAURE via Digitalmars-d <digitalmars-d puremagic.com> wrote:On Tuesday, 26 February 2019 at 22:16:09 UTC, Manu wrote:No, I'm saying those 2 trivial issues are things that we KNOW blocked acceptance. Any further critical issues that blocked acceptance are unknown, and I have no path to address them. The point is, as it rested, the DIP is left in the dark in terms of how to move forward. I made the point: "I amend those things, and then what? We wait a year and find out what the actual issue is?" The feedback does not address any critical issues with the DIP that if resolved, would move it forwards. The only take-away value that I learned from the rejection was that I'm an idiot, and someone competent should do this instead. There's nothing actionable there past small self-contained fixes, which I did submit a PR for, which was reverted.4. Off the back of extensive discussion while trying to dig out details, while also being insulted, it was concluded that there are 2 minor and self-contained issues.We strongly disagree on this one. Your opinion is, explicitly, that the only criticisms of the DIP were about the lack of exception support and the "ref to implicit cast" issue (your "bad choice of variable name"), and that the DIP would have been accepted if not for them.You especially insist on the "one word" part, and seem pretty confident that this word completely changed the final result.No, I'm being misunderstood over and over again. I'm saying that if I changed that word, it would affect **the rejection text**, that is, in order to reject the DIP, they would have had to write something more useful, instead of rejecting it on the basis of something which took minutes to amend. If there was a revision cycle where the blindingly obvious issues could have been amended, then the rejection would necessarily have had to have been something worthwhile instead.This is *not* what W&A have said. In that, they have said, multiple times, that these problems were *symptoms* of the lack of polish of the proposal, and that the DIP couldn't be accepted until that lack of polish was corrected.But that's entirely vague. "Language Maintainers found other issues with the proposal, most of which may have been remedied through simple revision" I don't know what to do with that. I don't feel that way, it seems pretty straight forward to me. I had to spawn a chaotic thread where I got insulted a lot while trying to convince people it didn't say what they thought it said before I was able to reveal anything useful. And useful feedback did indeed exist, but it was hard to dig out, and it certainly isn't written anywhere near the rejection text. It's effectively lost if anyone does want to understand why the DIP was rejected.The DIP does what it purports to do and it's exactly the thing I want as far as I can tell... so I don't know how to correct that without actionable feedback. In terms of process (which is on discussion here), that whole follow-up thread is what's wrong. As Walter finally made clear in his last post here, the rejection text SHOULD contain details on how to move forward. The process shouldn't require a follow-up thread like that one to discover details that are actionable, and more than simple revision-worthy changes.So if we rejected the DIP, we didn't do so on account of one word that can be so easily changed; we did so on account of a DIP that as a whole failed to clarify what it purports to do (and equally importantly, to not do).
Feb 28 2019
On Tuesday, 26 February 2019 at 18:22:09 UTC, Andrei Alexandrescu wrote:On 2/26/19 12:46 PM, Jonathan Marler wrote: I'm not sure how we can improve this from the top,You can require the same accuracy and rigour from the review as you do from the DIP. Unless you think that yourself and Walter are infallible then the review process is fundamentally flawed. Dip in, one guy reviews, result out, decision final will result in flawed reviews and disillusioned contributors.
Feb 26 2019
On 02/26/2019 11:46 PM, NaN wrote:On Tuesday, 26 February 2019 at 18:22:09 UTC, Andrei Alexandrescu wrote:Thanks for writing. We are not able, and should not aspire, to provide a review at the same level of accuracy as the DIP. The onus to convince is squarely on the DIP. This is in keeping for all related review processes I know of. However, this is good pressure for us to produce good DIPs, together with all other proposers. I understand rejection of a DIP creates frustration, but at a level it needs to be understood by the community that it is a normal and expected part of the process. The cure is improving the quality of DIPs. The main liability in accepting a DIP that is not suitable is it creates precedent for other unsuitable DIP to get in, in a descending spiral of quality.On 2/26/19 12:46 PM, Jonathan Marler wrote: I'm not sure how we can improve this from the top,You can require the same accuracy and rigour from the review as you do from the DIP. Unless you think that yourself and Walter are infallible then the review process is fundamentally flawed. Dip in, one guy reviews, result out, decision final will result in flawed reviews and disillusioned contributors.
Feb 27 2019
On Wednesday, 27 February 2019 at 23:13:47 UTC, Andrei Alexandrescu wrote:On 02/26/2019 11:46 PM, NaN wrote:No but the review of DIP1016 shows a large gap between the desired accuracy of the DIP and the actual accuracy of the review given.On Tuesday, 26 February 2019 at 18:22:09 UTC, Andrei Alexandrescu wrote:Thanks for writing. We are not able, and should not aspire, to provide a review at the same level of accuracy as the DIP.On 2/26/19 12:46 PM, Jonathan Marler wrote: I'm not sure how we can improve this from the top,You can require the same accuracy and rigour from the review as you do from the DIP. Unless you think that yourself and Walter are infallible then the review process is fundamentally flawed. Dip in, one guy reviews, result out, decision final will result in flawed reviews and disillusioned contributors.The onus to convince is squarely on the DIP. This is in keeping for all related review processes I know of.A DIP is only as good as the feedback it receives. DIP 1016 had many issues fixed with it throughout its review, the fact that no-one picked up on any issues w.r.t e.g. exceptions is a fault of the community review (Manu doesn't use exceptions and it is unreasonable to expect him to a priori take that into account) and it is a _good thing_ it was discovered in the formal review. The way that it was _handled_ was not good.However, this is good pressure for us to produce good DIPs, together with all other proposers. I understand rejection of a DIP creates frustration, but at a level it needs to be understood by the community that it is a normal and expected part of the process.For the Nth time: the problem is NOT that the DIP was rejected, but the reasons given and that the way that it was handled. These are symptoms of issues with process. See also https://forum.dlang.org/post/mailman.7201.1551219386.29801.digitalmars-d puremagic.com Please read the whole thing, Manu says it much better than I can.The cure is improving the quality of DIPs.A DIP is only as good as the feedback it receives.The main liability in accepting a DIP that is not suitable is it creates precedent for other unsuitable DIP to get in, in a descending spiral of quality.The main liability in giving unhelpful and wrong reviews is that it pisses everyone off and wastes a whole lot of time (further extended by the length of the entire process). I'm going to make bloody well sure _that_ doesn't set a precedent.
Feb 27 2019
On Thursday, 28 February 2019 at 03:06:37 UTC, Nicholas Wilson wrote:A DIP is only as good as the feedback it receives.You're saying this like it's self-evident, but it seems very clear to me that it's the very root of your disagreement with Andrei: you believe that the process should involve the reviewers making an effort proportional to the DIP author, whereas Andrei believes that the process should minimize reviewer effort. Now, neither of these ideas are inherently invalid, but you have to realize they're a trade-off. You're not going to convince Andrei to change the DIP process by saying "The current process wastes the time of DIP authors!", because Andrei is already aware of that. The problem is that is that a process with a heavier involvement from W&A would waste/spend more of *their* time, which Andrei considers a bad trade-off. (personally, I can see where he's coming from; there are a lot of people writing DIPs, and only two W&A; any process which requires more involvement from them is going going to see them spending less time on maintaining the compiler, designing features, and whatever else it is they're doing) (that said, the current process could definitely stand to be improved, and I like the direction Mike is going for)
Feb 28 2019
On Thursday, 28 February 2019 at 23:15:30 UTC, Olivier FAURE wrote:On Thursday, 28 February 2019 at 03:06:37 UTC, Nicholas Wilson wrote:Thank you for making that observation. Yes it is a tradeoff, but we are at one extremum at the moment. I don't think I suggested that the effort of W&A put in prior to the formal assessment should match that of the author, sorry for the confusion if it came across that way. Perhaps I should have said "A DIP improves only as much as the feedback it receives." (Pedantically I suppose the improvements are bounded by the feedback it receives, since that didn't help 1017 at all.)A DIP is only as good as the feedback it receives.You're saying this like it's self-evident, but it seems very clear to me that it's the very root of your disagreement with Andrei: you believe that the process should involve the reviewers making an effort proportional to the DIP author, whereas Andrei believes that the process should minimize reviewer effort. Now, neither of these ideas are inherently invalid, but you have to realize they're a trade-off. You're not going to convince Andrei to change the DIP process by saying "The current process wastes the time of DIP authors!", because Andrei is already aware of that. The problem is that is that a process with a heavier involvement from W&A would waste/spend more of *their* time, which Andrei considers a bad trade-off.(personally, I can see where he's coming from; there are a lot of people writing DIPs, and only two W&A; any process which requires more involvement from them is going going to see them spending less time on maintaining the compiler, designing features, and whatever else it is they're doing)Maximising the return on investment of having reviews is important and I believe that there is a lot of low hanging fruit, but the PRIMARY issue it that this whole debacle could have been avoided if W&A had said "We've found some significant issues with this DIP please edit the DIP to fix them." Instead there was no communication at all, they got confused by ambiguities in the DIP and delivered the right verdict (in the sense that e.g. exception handling needs to be accounted for) for COMPLETELY the wrong reasons. Their behaviour that followed was less than stellar.(that said, the current process could definitely stand to be improved, and I like the direction Mike is going for)Yes, I'm expecting quite a few changes to the process in response to issues identified with DIPs 1000, 1015-18 at the DConf Foundation meeting.
Feb 28 2019
On Wed, Feb 27, 2019 at 3:15 PM Andrei Alexandrescu via Digitalmars-d <digitalmars-d puremagic.com> wrote:On 02/26/2019 11:46 PM, NaN wrote:What's frustrating is how people keep misrepresenting the conversation this way.On Tuesday, 26 February 2019 at 18:22:09 UTC, Andrei Alexandrescu wrote:Thanks for writing. We are not able, and should not aspire, to provide a review at the same level of accuracy as the DIP. The onus to convince is squarely on the DIP. This is in keeping for all related review processes I know of. However, this is good pressure for us to produce good DIPs, together with all other proposers. I understand rejection of a DIP creates frustration,On 2/26/19 12:46 PM, Jonathan Marler wrote: I'm not sure how we can improve this from the top,You can require the same accuracy and rigour from the review as you do from the DIP. Unless you think that yourself and Walter are infallible then the review process is fundamentally flawed. Dip in, one guy reviews, result out, decision final will result in flawed reviews and disillusioned contributors.but at a level it needs to be understood by the community that it is a normal and expected part of the process.We're not talking about rejection, we're talking about the process alone, and how it's configured to practically assure failure unless you're reviewing them along the way. Without a single feedback cycle from the stakeholders, and in light of positive community reviews, there's literally nothing I can do to have more or less confidence. It's at your whim to misinterpret a variable name and lose your mind... or not. I can't know what you're going to do on that morning, and at that stage, the process says I have absolutely no recourse for correction, and I was repeatedly told to start over at the back of the queue, despite the review being almost totally wrong on account of one word and no provision for amendment.The cure is improving the quality of DIPs.This is a function of feedback. I had zero feedback cycles, and you got all hung up on one word... so, I change that word, and then what? We wait a year and see if there was something else?The main liability in accepting a DIP that is not suitable is it creates precedent for other unsuitable DIP to get in, in a descending spiral of quality.Nobody has ever suggested at any time that an unsuitable DIP should be accepted. Are you deliberately misrepresenting this conversation? Anyway, Walter's on this now. Fortunately, he'll have his own feedback along the way. I don't expect he'll require that he wait a year to fix a typo.
Feb 28 2019
On Tuesday, 26 February 2019 at 17:46:32 UTC, Jonathan Marler wrote:I think most points of the DIP process make sense, but it has one very large problem. Feedback from language maintainers (Walter and Andrei) is not done until the end of the process. You're asking someone to go through a process that can take a year before the people who have the power to accept or reject the proposal look at it or leave any feedback. This is extremely wasteful of the author's time, the reviewer's time and causes extreme pressure for everyone involved. A years worth of waiting, debate and revision that are now wasted and could have easily been avoided if language maintainers left their feedback early on. Walter and Andrei should be involved in the process throughout, not just render judgement at the end.It's worth making a comparison to how new features are incorporated into other languages, such as C++, or Rust, or Fortran, or Haskell. In every case, it's hard -- years of work trying out different designs, different implementation attempts, balancing costs against benefits. D is if anything far more flexible than many of its counterparts when it comes to accepting new ideas. Obviously it's not great if something goes through multiple rounds of feedback and revision only to be rejected at the very end, but sometimes it's only _because_ of those multiple rounds of feedback and revision that a proposal is clear enough to take that kind of decision on it. Early feedback doesn't help with that. On the other hand, one can flip the problem on its head: perhaps the problem is less that Walter and Andrei can come in at the end with a rejection, than that things they are going to reject get put in front of them in the first place. That suggests that either the review process may be ineffective at weeding out problematic proposals, or that DIP authors may be too strongly biased towards revising and resubmitting their proposals rather than withdrawing them when problems are identified.In the years I've been here I have found that feedback from anyone other than Walter and Andrei has very little bearing on what Walter and Andrei will think. The entire community can think an idea is great, but then Walter or Andrei completely reject it. And the opposite is true as well, I've seen W&A champion an idea that the community generally rejects. Designing a process to ask many people to create and perfect a proposal for a year catered to 2 specific people without any feedback from them is mind-boggling to me.I'm going to say something comically rude here, but with the serious intent of provoking everyone to reflect a bit. Which is: have you considered the possibility that Walter and Andrei are the only people who really know what they're talking about, and everyone else is a [expletive] idiot? :-) Clearly whenever a tiny number of people wield absolute veto power, there is a risk of a certain amount of arbitrariness or preference-of-the-moment-based decision making (or, perhaps more problematically, the perception of such, even when it isn't the case). But there are very few people in the D community with a breadth and depth of experience to match Walter and Andrei either as individuals or together, so it's hardly surprising that they might regularly perceive the advantages and disadvantages of a course of action differently from the majority. After all, where subtle technical decisions are concerned, it's highly likely that a small number of domain experts are going to be able to make a better decision than the majority of users. I'd also question how one establishes that "the entire community can think an idea is great". We make a big mistake if we assume that the opinion of the self-selecting group of people who post on forums, or are active on GitHub, is representative of the wider D community of often silent users. In fact, that's the kind of thing it's worth asking both Walter and Andrei: what kinds of demonstrable consensus (and of whom?) do you think might cause you to change your minds about something you would otherwise have vetoed?Based on my observations, my guess is that the DIP process was designed to alleviate the amount of work needed from Walter and Andrei, but look what it's produced.Returning to the point earlier -- perhaps what it has produced is something that is inadequate at reducing the amount of work they have to do. It's surely nice if we can find ways to reduce the amount of time and effort DIP authors need to put in before getting a clear decision on their work. But part of the problem here is seeing that time and effort as wasted if a DIP is rejected. If instead we were to focus on seeing a DIP as a learning experience through which everyone (authors, reviewers, and language maintainers) get a better understanding of what things are possible, what things are practical or useful, and why, then a rejected DIP isn't an adversarial or problematic outcome, or a waste of anyone's time: it's a collaborative effort that established the lack of viability of a particular course of action. Just as in science or medicine, clearly identifying _negative_ results is not a bad thing -- it's a valuable (and too often undervalued) contribution!
Feb 26 2019
On Tuesday, 26 February 2019 at 22:56:40 UTC, Joseph Rushton Wakeling wrote:On Tuesday, 26 February 2019 at 17:46:32 UTC, Jonathan Marler wrote:You said "but sometimes it's only _because_ of those multiple rounds of feedback and revision that a proposal is clear enough". Which DIPs are you referring to? I can't identify any proposal that falls into this case.I think most points of the DIP process make sense, but it has one very large problem. Feedback from language maintainers (Walter and Andrei) is not done until the end of the process. You're asking someone to go through a process that can take a year before the people who have the power to accept or reject the proposal look at it or leave any feedback. This is extremely wasteful of the author's time, the reviewer's time and causes extreme pressure for everyone involved. A years worth of waiting, debate and revision that are now wasted and could have easily been avoided if language maintainers left their feedback early on. Walter and Andrei should be involved in the process throughout, not just render judgement at the end.It's worth making a comparison to how new features are incorporated into other languages, such as C++, or Rust, or Fortran, or Haskell. In every case, it's hard -- years of work trying out different designs, different implementation attempts, balancing costs against benefits. D is if anything far more flexible than many of its counterparts when it comes to accepting new ideas. Obviously it's not great if something goes through multiple rounds of feedback and revision only to be rejected at the very end, but sometimes it's only _because_ of those multiple rounds of feedback and revision that a proposal is clear enough to take that kind of decision on it. Early feedback doesn't help with that.On the other hand, one can flip the problem on its head: perhaps the problem is less that Walter and Andrei can come in at the end with a rejection, than that things they are going to reject get put in front of them in the first place. That suggests that either the review process may be ineffective at weeding out problematic proposals, or that DIP authors may be too strongly biased towards revising and resubmitting their proposals rather than withdrawing them when problems are identified.I agree with what you're saying here but doesn't really speak to the point which is that the process would be much better if Walter and Andrei were involved earlier in the process. The system as it exists today is almost comically flawed, take a whole year and a lot of people's time to put together a proposal for 2 people without any feedback from them until the end. Feedback is the most important part of any successful system, without it, the system can quickly diverge and go off on an path, and the longer it goes without feedback to correct itself, the worse and worse it gets. A year is too long to go without any feedback or course correction.Depends on the subject. There have been times when I've had to explain something to Walter and/or Andrei, they don't know everything. Languages are very hard to get right and even the smartest people in the world can have completely opposite opinions on things. I have my own opinion on their strengths and weaknesses, but I think everyone will agree with me that they do have blindspots and weakness, including them. Well, I suppose you may not agree with me based on what you said :) In general it's not good to base the merit of an idea on who is giving it, humans are very flawed creatures when it comes to completely objective logical discourse no matter how smart someone is. Instead, merit should be based on the content of an idea, not who gives it.In the years I've been here I have found that feedback from anyone other than Walter and Andrei has very little bearing on what Walter and Andrei will think. The entire community can think an idea is great, but then Walter or Andrei completely reject it. And the opposite is true as well, I've seen W&A champion an idea that the community generally rejects. Designing a process to ask many people to create and perfect a proposal for a year catered to 2 specific people without any feedback from them is mind-boggling to me.I'm going to say something comically rude here, but with the serious intent of provoking everyone to reflect a bit. Which is: have you considered the possibility that Walter and Andrei are the only people who really know what they're talking about, and everyone else is a [expletive] idiot? :-)
Feb 26 2019
On Wednesday, 27 February 2019 at 00:44:26 UTC, Jonathan Marler wrote:You said "but sometimes it's only _because_ of those multiple rounds of feedback and revision that a proposal is clear enough". Which DIPs are you referring to? I can't identify any proposal that falls into this case.FWIW Walter has said that if alias this had been proposed today that it would be rejected because it has too many nasty corner cases. I happen to believe alias this is awesome but I do see where he's coming from and I've been reviewing a lot of Razvan's PRs fixing those corner cases so I know they do exist. One of the points on the agenda for the DLF meeting at dconf is a review of the state of alias this.
Feb 26 2019
On Tuesday, February 26, 2019 5:53:51 PM MST Nicholas Wilson via Digitalmars-d wrote:On Wednesday, 27 February 2019 at 00:44:26 UTC, Jonathan Marler wrote:It's one of those features that's occasionally useful, but in general, I'm inclined to think that it causes way more trouble than it's worth. Honestly, implicit conversions in general tend to be problematic much as they can be really nice to have sometimes. They're particularly bad when templates get involved. - Jonathan M DavisYou said "but sometimes it's only _because_ of those multiple rounds of feedback and revision that a proposal is clear enough". Which DIPs are you referring to? I can't identify any proposal that falls into this case.FWIW Walter has said that if alias this had been proposed today that it would be rejected because it has too many nasty corner cases. I happen to believe alias this is awesome but I do see where he's coming from and I've been reviewing a lot of Razvan's PRs fixing those corner cases so I know they do exist. One of the points on the agenda for the DLF meeting at dconf is a review of the state of alias this.
Feb 26 2019
On Tue, Feb 26, 2019 at 06:12:45PM -0700, Jonathan M Davis via Digitalmars-d wrote:On Tuesday, February 26, 2019 5:53:51 PM MST Nicholas Wilson via Digitalmars-d wrote:[...][...] I'm a pretty heavy user of alias this, and would be quite unhappy if the present semantics were to change or become deprecated or otherwise cease being supported. I understand there are some dark corner cases where it's not at all obvious what the "correct" behaviour is, but still, alias this does offer significant value for arithmetical types and wrapper types. I'd even say that in many cases, it *helps* with templates because it lets you make your custom type work with a template that doesn't (and shouldn't) know about the specifics of your type. Where it breaks down is when templates are written with assumptions that don't come directly from introspection. Then you start getting into ambiguous corner cases and other nasty unexpected behaviours. Anyway, if anything were to change with alias this, we'd better have a darned good replacement for it, because I'll be expecting it! T -- All men are mortal. Socrates is mortal. Therefore all men are Socrates.FWIW Walter has said that if alias this had been proposed today that it would be rejected because it has too many nasty corner cases. I happen to believe alias this is awesome but I do see where he's coming from and I've been reviewing a lot of Razvan's PRs fixing those corner cases so I know they do exist. One of the points on the agenda for the DLF meeting at dconf is a review of the state of alias this.It's one of those features that's occasionally useful, but in general, I'm inclined to think that it causes way more trouble than it's worth. Honestly, implicit conversions in general tend to be problematic much as they can be really nice to have sometimes. They're particularly bad when templates get involved.
Feb 26 2019
On 2/26/2019 5:34 PM, H. S. Teoh wrote:Anyway, if anything were to change with alias this, we'd better have a darned good replacement for it, because I'll be expecting it!Any discussion of alias this should be in a separate thread, but for here it suffices to say it was admitted into the language without nearly enough review.
Feb 27 2019
On Tue, Feb 26, 2019 at 5:34 PM H. S. Teoh via Digitalmars-d <digitalmars-d puremagic.com> wrote:On Tue, Feb 26, 2019 at 06:12:45PM -0700, Jonathan M Davis via Digitalmars-d wrote:I use `alias this` a lot, but that's just because it's the only tool we have. ` implicit` constructors (and/or cast operators) would resolve all uses I can think of, and I think the rules on those would be much simpler.On Tuesday, February 26, 2019 5:53:51 PM MST Nicholas Wilson via Digitalmars-d wrote:[...][...] I'm a pretty heavy user of alias this, and would be quite unhappy if the present semantics were to change or become deprecated or otherwise cease being supported. I understand there are some dark corner cases where it's not at all obvious what the "correct" behaviour is, but still, alias this does offer significant value for arithmetical types and wrapper types. I'd even say that in many cases, it *helps* with templates because it lets you make your custom type work with a template that doesn't (and shouldn't) know about the specifics of your type. Where it breaks down is when templates are written with assumptions that don't come directly from introspection. Then you start getting into ambiguous corner cases and other nasty unexpected behaviours. Anyway, if anything were to change with alias this, we'd better have a darned good replacement for it, because I'll be expecting it!FWIW Walter has said that if alias this had been proposed today that it would be rejected because it has too many nasty corner cases. I happen to believe alias this is awesome but I do see where he's coming from and I've been reviewing a lot of Razvan's PRs fixing those corner cases so I know they do exist. One of the points on the agenda for the DLF meeting at dconf is a review of the state of alias this.It's one of those features that's occasionally useful, but in general, I'm inclined to think that it causes way more trouble than it's worth. Honestly, implicit conversions in general tend to be problematic much as they can be really nice to have sometimes. They're particularly bad when templates get involved.
Feb 26 2019
I propose that rejecting a DIP is NOT wasted effort. Most language ideas come up again and again. If an idea is rejected early in the process, it will come up again and people will have to rediscover the thought process for why it was rejected. The worst case will be not rediscovering the why, then implement it, and find out the hard way. For example, we were pretty far along in the automatic ref counting thing until Timon found a fundamental flaw in it that everyone missed. It sunk the whole thing, we couldn't find a way to make it memory safe. ARC keeps coming up again and again. But we don't have a DIP to point to to show the fatal flaw, and we just have to remember to point it out again. A rejected DIP comes with a rationale, so anyone trying to resurrect the idea will have a starting point for both the new proposal and will be prepared to surmount the objections, which will save a lot of grief. If they've got nothing new to add, they'll save a lot of time repeating the failure. Rejected DIPs also form a basis and a standard for future DIPs. Andrei and I have both noticed that C++ proposals have gotten steadily better over the years. DIPs - rejected and accepted - form the corpus of knowledge that make up what and why D is what it is. For another example, analyzing failed military campaigns is just as useful as studying successful ones. --- Tl,Dr: Rejecting a completed DIP wastes time in the short term, but saves time in the long term.
Feb 27 2019
On Thursday, 28 February 2019 at 06:03:00 UTC, Walter Bright wrote:I propose that rejecting a DIP is NOT wasted effort.Not a priori, no...Most language ideas come up again and again. If an idea is rejected early in the process, it will come up again and people will have to rediscover the thought process for why it was rejected. The worst case will be not rediscovering the why, then implement it, and find out the hard way. For example, we were pretty far along in the automatic ref counting thing until Timon found a fundamental flaw in it that everyone missed. It sunk the whole thing, we couldn't find a way to make it memory safe. ARC keeps coming up again and again. But we don't have a DIP to point to to show the fatal flaw, and we just have to remember to point it out again.... and yes, this establishes that equivalence to memory unsafety as a basis for rejection of proposals, ...A rejected DIP comes with a rationale,... but it helps no-one if the rationale has no basis in fact, especially if that rationale is left as is.Rejected DIPs also form a basis and a standard for future DIPs. Andrei and I have both noticed that C++ proposals have gotten steadily better over the years. DIPs - rejected and accepted - form the corpus of knowledge that make up what and why D is what it is.Yes. And? This misses the point, yet again, that the problem is NOT the _outcome_ of the DIP (the DIP does have problems, e.g. exception handling), the problem is the _process_ that results in rejection on a false basis.Tl,Dr: Rejecting a completed DIP wastes time in the short term, but saves time in the long term.... if, and only if, the process is amended to avoid the problems observed with the process as a result of the DIP.
Feb 27 2019
On Wed, Feb 27, 2019 at 10:05 PM Walter Bright via Digitalmars-d <digitalmars-d puremagic.com> wrote:I propose that rejecting a DIP is NOT wasted effort. Most language ideas come up again and again. If an idea is rejected early in the process, it will come up again and people will have to rediscover the thought process for why it was rejected. The worst case will be not rediscovering the why, then implement it, and find out the hard way. For example, we were pretty far along in the automatic ref counting thing until Timon found a fundamental flaw in it that everyone missed. It sunk the whole thing, we couldn't find a way to make it memory safe. ARC keeps coming up again and again. But we don't have a DIP to point to to show the fatal flaw, and we just have to remember to point it out again. A rejected DIP comes with a rationale, so anyone trying to resurrect the idea will have a starting point for both the new proposal and will be prepared to surmount the objections, which will save a lot of grief. If they've got nothing new to add, they'll save a lot of time repeating the failure. Rejected DIPs also form a basis and a standard for future DIPs. Andrei and I have both noticed that C++ proposals have gotten steadily better over the years. DIPs - rejected and accepted - form the corpus of knowledge that make up what and why D is what it is. For another example, analyzing failed military campaigns is just as useful as studying successful ones. --- Tl,Dr: Rejecting a completed DIP wastes time in the short term, but saves time in the long term.Wow... I'm speechless. How can you write this email with a straight face? You can't possibly write this and then not go back and correct your rejection text. There's an exception issue; easily amendable, and then the rest was a misreading due to a misunderstood variable name and then a gloss over anything else ("found other issues with the proposal, most of which may have been remedied through simple revision"); completely unhelpful. "it will come up again and people will have to rediscover the thought process for why it was rejected" - WB "A rejected DIP comes with a rationale" - WB "so anyone trying to resurrect the idea will have a starting point for both the new proposal and will be prepared to surmount the objections" - WB I'd also like to know why it was rejected, and I think that should be clearly stated at the bottom. I feel like it's not the first time I've said this. What's written there now is worthless to posterity. Anyway, it's your DIP now.
Feb 28 2019
On 2/28/2019 12:31 AM, Manu wrote:Anyway, it's your DIP now.Indeed, and you, Nicholas and everyone else will have the opportunity to destroy it.
Feb 28 2019
On Thursday, 28 February 2019 at 06:03:00 UTC, Walter Bright wrote:I propose that rejecting a DIP is NOT wasted effort. Most language ideas come up again and again. If an idea is rejected early in the process, it will come up again and people will have to rediscover the thought process for why it was rejected. The worst case will be not rediscovering the why, then implement it, and find out the hard way. For example, we were pretty far along in the automatic ref counting thing until Timon found a fundamental flaw in it that everyone missed. It sunk the whole thing, we couldn't find a way to make it memory safe. ARC keeps coming up again and again. But we don't have a DIP to point to to show the fatal flaw, and we just have to remember to point it out again. A rejected DIP comes with a rationale, so anyone trying to resurrect the idea will have a starting point for both the new proposal and will be prepared to surmount the objections, which will save a lot of grief. If they've got nothing new to add, they'll save a lot of time repeating the failure. Rejected DIPs also form a basis and a standard for future DIPs. Andrei and I have both noticed that C++ proposals have gotten steadily better over the years. DIPs - rejected and accepted - form the corpus of knowledge that make up what and why D is what it is. For another example, analyzing failed military campaigns is just as useful as studying successful ones. --- Tl,Dr: Rejecting a completed DIP wastes time in the short term, but saves time in the long term.From one side, there's the need to attract more 'voluntary' work towards the D ecosystem, and from the other side there's the need to save time of who is already involved, and that's reasonable. Most of the DIP work is done by voluntaries, in their spare time, reality is that they are not payed researchers submitting papers to payed journals reviewer. I know that you are a really pragmatic man, so I will suggest you and Andrei to just use a pragmatic and simple way of moving. I'm assuming that the DIP is _already_ in a good shape, or the community review process has something wrong, which does not seem to me the case, actually. Give credits, to the author and to the community: if it seems so strange to you that, eg. Manu, have not seen the "big hole" that's involved in the DIP, simply contact him during the review, and ask for clarification to dispel the doubts. Open a channel. If you both agree that the DIP has the _potential_ of having value, just provide feedback and encourage the author to emend the part that are not yet perfectly shaped, and mentor him during that part. You have foreseen value, a LOT of work was already done by the community, now it's W&A turn to contribute with the final touches, that the community was not able to property see and handle. That's is almost always not a big work to do, shape together the DIP towards the final accepted shape. There's not better time spent that working side by side with a volunteer on that, IMHO, and it's a great way to thanks them for the effort they have put in the process. Respectfully, Paolo
Feb 28 2019
On Thursday, 28 February 2019 at 06:03:00 UTC, Walter Bright wrote:A rejected DIP comes with a rationale, so anyone trying to resurrect the idea will have a starting point for both the new proposal and will be prepared to surmount the objections, which will save a lot of grief. If they've got nothing new to add, they'll save a lot of time repeating the failure.If that's the direction you're going for, then the rejection rationale needs to be a little more polished than DIP-1016's was. I understand that reviewer time is limited, but the rejection rationale is especially important, not just for the sake of the DIP author, but for the sake of everyone comes after him. In particular, at some point in the post-rejection debate, Andrei wrote:It must be clear that the reason of this misunderstanding is squarely due to the DIP itself. It has multiple problems of informality and vague language that have worked together to cause said misunderstanding. [...] So the code with my_short was open to interpretation. Cool. In a thorough submission, however, there would have been many places that clear that up: * Use of a distinct notation (non-code non-text font for metalanguage, i.e. general expressions); * Description of the typechecking process, with examples of code that passes and code that fails; * A clarification that lowering proceeds not against all expressions, but only against rvalues; * Several places in text in which it is explained that rvalues resulted from implicit conversions are not eligible; * etc. etc. etc.Now, this? This is *exactly* what the rejection rationale should have been in the first place. The current rejection rationale gives a few points of contention, but they're almost secondary. The quote above actually points out the root cause of the rejection, and what steps need to be taken to fix it. Again, I understand there's a trade-off at work, but if you want the quality of submitted DIPs to increase over time, you need to put some effort into explaining why you reject certain DIPs.
Feb 28 2019
On 2/28/2019 3:17 PM, Olivier FAURE wrote:If that's the direction you're going for, then the rejection rationale needs to be a little more polished than DIP-1016's was.I agree that the rejection rationale needs to be more detailed and thorough.
Feb 28 2019
On Thursday, 28 February 2019 at 23:17:15 UTC, Olivier FAURE wrote:. If that's the direction you're going for, then the rejection rationale needs to be a little more polished than DIP-1016's was.That's mostly on me. I take the informal feedback they give and craft the summary. I've committed to providing more detailed review summaries in the future and they've committed to helping me do so.
Feb 28 2019
On Tuesday, 26 February 2019 at 22:56:40 UTC, Joseph Rushton Wakeling wrote:Which is: have you considered the possibility that Walter and Andrei are the only people who really know what they're talking about, and everyone else is a [expletive] idiot? :-)Without being that extreme, yeah, the community has a tendency to immediately assume "W&A are missing something obvious" instead of "W&A are seeing something I'm not". The fact that W&A seem somewhat bad at communicating their viewpoint (and understanding other people's viewpoint) doesn't help.
Feb 28 2019
On Thursday, 28 February 2019 at 23:17:49 UTC, Olivier FAURE wrote:On Tuesday, 26 February 2019 at 22:56:40 UTC, Joseph Rushton Wakeling wrote:The fact the they caught that the DIP doesn't specify how it is supposed to behave under exception is a good thing...Which is: have you considered the possibility that Walter and Andrei are the only people who really know what they're talking about, and everyone else is a [expletive] idiot? :-)Without being that extreme, yeah, the community has a tendency to immediately assume "W&A are missing something obvious" instead of "W&A are seeing something I'm not".The fact that W&A seem somewhat bad at communicating their viewpoint (and understanding other people's viewpoint) doesn't help.... therein lies the problem. The good thing is we can fix this by fixing the DIP process to prescribe what should and shouldn't happen when DIP breaking behaviour is discovered post final. Communication with the DIP author is a good start.
Feb 28 2019
On 2/28/2019 3:17 PM, Olivier FAURE wrote:Without being that extreme, yeah, the community has a tendency to immediately assume "W&A are missing something obvious" instead of "W&A are seeing something I'm not".Despite repeated attempts and examples, Andrei and I have been unable to communicate the implicit rvalue conversion problem. I don't know what to do about that. I wish I had Herb Sutter's / Scott Meyers' skills, but I don't.The fact that W&A seem somewhat bad at communicating their viewpoint (and understanding other people's viewpoint) doesn't help.
Feb 28 2019
On 2/28/19 8:52 PM, Walter Bright wrote:Despite repeated attempts and examples, Andrei and I have been unable to communicate the implicit rvalue conversion problem. I don't know what to do about that. I wish I had Herb Sutter's / Scott Meyers' skills, but I don't.(Disclaimer: No intention of being contentious here, just a genuine question) Could someone point me to some of these attempts/examples? I'm curious to take a look at them.
Feb 28 2019
On 2/28/2019 9:04 PM, Nick Sabalausky (Abscissa) wrote:Could someone point me to some of these attempts/examples? I'm curious to take a look at them.https://digitalmars.com/d/archives/digitalmars/D/announce/DIP_1016--ref_T_accepts_r-values--Formal_Assessment_54145.html Just look for my posts.
Feb 28 2019
On Friday, 1 March 2019 at 05:04:05 UTC, Nick Sabalausky (Abscissa) wrote:(Disclaimer: No intention of being contentious here, just a genuine question) Could someone point me to some of these attempts/examples? I'm curious to take a look at them.I think he's referring to these posts: - https://forum.dlang.org/post/q2vr50$1lga$1 digitalmars.com - https://forum.dlang.org/post/q2ubds$1r6e$1 digitalmars.com - https://forum.dlang.org/post/q2rfug$7af$1 digitalmars.com
Mar 01 2019
On Tuesday, February 26, 2019 6:34:04 PM MST H. S. Teoh via Digitalmars-d wrote:On Tue, Feb 26, 2019 at 06:12:45PM -0700, Jonathan M Davis viaDigitalmars-d wrote:Basically, if your template constraint tests for an implicit conversion, it then needs to force that implicit conversion rather than assuming that the type provided acts like the target type. If you don't force the conversion, then some operations may act like the target type and some may not (it may even do the conversion with some operations and use the actual type in others), and you could get some pretty weird bugs. It can work work if you force the implicit conversion, but really, if you're dealing with implicit conversions and templated code, you have to be careful, and in general, it's far less error-prone to just not use implicit conversions with templated code and require that the caller do the conversion.On Tuesday, February 26, 2019 5:53:51 PM MST Nicholas Wilson viaDigitalmars-d wrote:[...][...] I'm a pretty heavy user of alias this, and would be quite unhappy if the present semantics were to change or become deprecated or otherwise cease being supported. I understand there are some dark corner cases where it's not at all obvious what the "correct" behaviour is, but still, alias this does offer significant value for arithmetical types and wrapper types. I'd even say that in many cases, it *helps* with templates because it lets you make your custom type work with a template that doesn't (and shouldn't) know about the specifics of your type. Where it breaks down is when templates are written with assumptions that don't come directly from introspection. Then you start getting into ambiguous corner cases and other nasty unexpected behaviours.FWIW Walter has said that if alias this had been proposed today that it would be rejected because it has too many nasty corner cases. I happen to believe alias this is awesome but I do see where he's coming from and I've been reviewing a lot of Razvan's PRs fixing those corner cases so I know they do exist. One of the points on the agenda for the DLF meeting at dconf is a review of the state of alias this.It's one of those features that's occasionally useful, but in general, I'm inclined to think that it causes way more trouble than it's worth. Honestly, implicit conversions in general tend to be problematic much as they can be really nice to have sometimes. They're particularly bad when templates get involved.Anyway, if anything were to change with alias this, we'd better have a darned good replacement for it, because I'll be expecting it!I'd be very surprised if alias this got axed at this point. - Jonathan M Davis
Feb 26 2019
On 2/26/19 6:28 AM, Mike Parker wrote:https://www.python.org/dev/peps/pep-0001/#start-with-an-idea-for-python The core of the process is the same. What they add to it is this: "The PEP champion (a.k.a. Author) should first attempt to ascertain whether the idea is PEP-able. Posting to the comp.lang.python newsgroup (a.k.a. python-list python.org mailing list) or the python-ideas python.org mailing list is the best way to go about this.I strongly agree that's the right way to do things. In fact, we already do it that way in D. But there's one key difference between the way Python does that and the way D does it: When *we* do that here in D, the post is immediately followed by a public lynching at having had THE NERVE to suggest an idea change without writing both a complete DIP and PR first.
Feb 28 2019
My take on all this (not that it counts for anything): See? This is what happens when you introduce bureaucracy/red-tape to problems. You get the same problems, just with much slower progress. Frankly, I think we already have far better mechanisms that anything a supposedly-improved DIP process could ever provide: Github reviews and CI tests. Looking at DIP1016 in particular: 1. Using the same Github code review process we already use to get things done instead of this "The DIP Process" contrivance would have allowed the DIP the flexibility necessary to receive W&A feedback sooner AND respond to such feedback without the "Too bad, go back to start, try again" formality-for-the-sake-of-formality worthlessness. 2. The test suite is going to do a ****FAAAAARRRR**** better job of rooting out technical problems than five years of human-review. Does anyone seriously think it *wouldn't* have caught the issues with 1016 right away? And even if so, does that say more about the DIP process, or does it say more about the test suite?
Feb 28 2019
On Friday, 1 March 2019 at 05:24:25 UTC, Nick Sabalausky (Abscissa) wrote:See? This is what happens when you introduce bureaucracy/red-tape to problems. You get the same problems, just with much slower progress.Bureaucracy is arguable unavoidable. At this kind of scale (really, more than 5-10 people or so), what we need is _maximally efficient_ bureaucracy. We can't get rid of the cruft, the arbitrariness, the red tape, only replace it with new cruft that's hopefully smaller. The solution space is constrained to bureaucratic solutionsThe test suite is going to do a ****FAAAAARRRR**** better job of rooting out technical problems than five years of human-review.This requires a disproportionate amount of work to implement the DIP, which is wasted if the DIP is not accepted. Not to mention, it raises the barrier of entry to a would-be DIP author -- now, you have to know or learn compiler internals too!
Feb 28 2019
On 3/1/19 2:02 AM, Elronnd wrote:On Friday, 1 March 2019 at 05:24:25 UTC, Nick Sabalausky (Abscissa) wrote:Chicken vs egg... :(The test suite is going to do a ****FAAAAARRRR**** better job of rooting out technical problems than five years of human-review.This requires a disproportionate amount of work to implement the DIP, which is wasted if the DIP is not accepted. Not to mention, it raises the barrier of entry to a would-be DIP author -- now, you have to know or learn compiler internals too!
Feb 28 2019
On Friday, 1 March 2019 at 05:24:25 UTC, Nick Sabalausky (Abscissa) wrote:My take on all this (not that it counts for anything): See? This is what happens when you introduce bureaucracy/red-tape to problems. You get the same problems, just with much slower progress. Frankly, I think we already have far better mechanisms that anything a supposedly-improved DIP process could ever provide: Github reviews and CI tests. Looking at DIP1016 in particular: 1. Using the same Github code review process we already use to get things done instead of this "The DIP Process" contrivance would have allowed the DIP the flexibility necessary to receive W&A feedback sooner AND respond to such feedback without the "Too bad, go back to start, try again" formality-for-the-sake-of-formality worthlessness. 2. The test suite is going to do a ****FAAAAARRRR**** better job of rooting out technical problems than five years of human-review. Does anyone seriously think it *wouldn't* have caught the issues with 1016 right away? And even if so, does that say more about the DIP process, or does it say more about the test suite?I completely agree with this. Languages are very hard and the DIP process has been put in place as a result. Walter and Andrei want to be sure that any language changes we make going forward are thoroughly researched and vetted. The DIP process was put in place so they could leverage the community's efforts rather than having to do all the work themselves and leverage the large experience/viewpoint pool that comes with large group. However, the process itself has sorely missed the mark in achieving this. For some reason, someone decided that rather than having the entire community work together on a DIP, it should be everyone except Walter and Andrei. So now the original goal of "Let's research and vet a new proposal as a community to see if it's good for D" Has now become: "Go spend a year writing a proposal for your idea to convince Walter and Andrei that your proposal is a good idea. And do all this without any feedback from them during this time. Then at the end, they'll look over the proposal and either accept it or reject it, maybe they'll give you some good feedback, maybe they won't. Oh and if they don't accept it, you'll need to start the whole process over again. And if they give bad feedback, too bad, the process doesn't account for this or give you any recourse and we MUST FOLLOW THE PROCESS TO THE LETTER. Why? Well...because it's the process." Now I'm not saying that processes are all inherently bad. They are an attempt to provide a set of rules to facilitate a final goal. Processes become a hindrance when people start to rigidly adhere to them no matter what, and they forget the original goal of why the process was created in the first place. The DIP process is now suffering from the "rigid adherence" problem but also has a second problem. The DIP process as it's designed is horribly flawed because it has left out the 2 most important people in the community in most of the process. To fix this we need to fix the process, and also fix people's mindsets. Keep the original goal in mind. When the process contradicts the original goal don't just adhere to the process anyway, feel free to break it. And lastly, fix the process. Don't write Walter and Andrei out until the end. The communities efforts will be much more effective if they are guided by its leaders rather than forcing them to go in a direction for an entire year that may be completely in the wrong direction.
Mar 01 2019
When I get involved early in the DIP process, what happens is the author quits and leaves it to me to finish, which usually means doing 98% of the work. Most proposals to improve process with D revolve around asking myself and Andrei to do most of the work. It just doesn't scale. The point of the DIP process is to mobilize the community to do the work, demand a high standard, and vet the work. As mentioned before, this has been successful in the C++ community in that the standard of proposals has steadily risen. I've spoken with Mike Parker about picking out a couple of approved DIPs to be presented as a "gold standard" on how to do a DIP. We expect to replace them with better ones over time, to keep on raising the bar on quality. Having such examples makes it much easier to review a DIP and bounce it back as "not good enough". --- On a final note it doesn't matter to the DIP approval process how hard anyone works on the proposal, or how much time they spent on it, etc. Only results matter. By the same token, I don't expect anyone to care how much time I spend on D, I don't expect anyone to use D because people worked hard on it, etc. The only thing that matters is how good D is. It's a bit like the Olympics. Nobody cares how hard/long an athlete trained. Only that they win. Who would want it any other way?
Mar 01 2019
On Friday, 1 March 2019 at 21:23:10 UTC, Walter Bright wrote:On a final note it doesn't matter to the DIP approval process how hard anyone works on the proposal, or how much time they spent on it, etc. Only results matter. By the same token, I don't expect anyone to care how much time I spend on D, I don't expect anyone to use D because people worked hard on it, etc. The only thing that matters is how good D is.Oh Walter, this is soo plain wrong! I adopted D in my company, more than 15 years ago, exactly for the opposite reason... /P
Mar 01 2019
On 3/1/2019 1:38 PM, Paolo Invernizzi wrote:Oh Walter, this is soo plain wrong! I adopted D in my company, more than 15 years ago, exactly for the opposite reason...I suppose there is always a counterexample :-) But I do hope you found D to be good for your company.
Mar 01 2019
On Friday, 1 March 2019 at 21:40:51 UTC, Walter Bright wrote:On 3/1/2019 1:38 PM, Paolo Invernizzi wrote:For sure! It was not good, it was great, and think about all the mess we cross in that 15 years of D development... I just hope for more pragmatism, like your way moving, and MORE vision.... just don't underestimate that... Sincerely, PaoloOh Walter, this is soo plain wrong! I adopted D in my company, more than 15 years ago, exactly for the opposite reason...I suppose there is always a counterexample :-) But I do hope you found D to be good for your company.
Mar 01 2019
On 3/1/2019 1:54 PM, Paolo Invernizzi wrote:For sure! It was not good, it was great, and think about all the mess we cross in that 15 years of D development...That is wonderful news!I just hope for more pragmatism, like your way moving, and MORE vision.... just don't underestimate that...And I shall continue...
Mar 01 2019
On Friday, 1 March 2019 at 21:23:10 UTC, Walter Bright wrote:On a final note it doesn't matter to the DIP approval process how hard anyone works on the proposal, or how much time they spent on it, etc. **Only results matter **. By the same token, I don't expect anyone to care how much time I spend on D, I don't expect anyone to use D because people worked hard on it, etc. The only thing that matters is how good D is. It's a bit like the Olympics. Nobody cares how hard/long an athlete trained. Only that they win. Who would want it any other way?I see, wise words... Now to hold someone at gun point to write a DIP..
Mar 01 2019
On Friday, 1 March 2019 at 21:23:10 UTC, Walter Bright wrote:When I get involved early in the DIP process, what happens is the author quits and leaves it to me to finish, which usually means doing 98% of the work.This doesn't make sense. If you leave feedback and the author quits you don't have to take over the work. Let someone else take it over. Even better, since you left feedback, the new owner can take your feedback and improve the DIP with it. If no one takes it over, then the DIP isn't worth anyone's time and you've now saved a years worth of the author's and community's time from researching/revising and debating worthless DIP.Most proposals to improve process with D revolve around asking myself and Andrei to do most of the work. It just doesn't scale. The point of the DIP process is to mobilize the community to do the work, demand a high standard, and vet the work.This is misrepresentation of what we are proposing. We are not proposing that you "baby" each DIP through the whole process. We are proposing that you stay involved along the process just like all the other reviewers. This means that if you see a new DIP and it definitely will never get into the language, take a minute to respond immediately with why it won't be accepted. Not every proposal will need your intervention either. If you take a look at a DIP and it looks fine but needs some polish, let the community do that. If you see a DIP and there's a question you can already answer such as a general direction it should take, then give that direction. All we're asking for is feedback and direction from you. Since you are the decision maker, you're the only one that can do this job. What's worse is it sounds like you and Andrei are actually using the DIP process to go out of your way not to leave any feedback at all. I have no idea why either of you would think this is a good idea.As mentioned before, this has been successful in the C++ community in that the standard of proposals has steadily risen. I've spoken with Mike Parker about picking out a couple of approved DIPs to be presented as a "gold standard" on how to do a DIP. We expect to replace them with better ones over time, to keep on raising the bar on quality. Having such examples makes it much easier to review a DIP and bounce it back as "not good enough".The C++ standard is a good goal to work towards but trying to force it on a community that hasn't matured yet will not produce the results you want. In my opinion, the DIP process should start with yours and Andrei's involvement and evolve naturally into what the C++ community has. As the community interacts with you and Andrei on the proposals, certain people will start to stand out as those who can implement your standards and who have similar opinions as you. Over time, you should find that you just don't need to spend as much time because your "lieutenants" will already be giving the feedback that you would have given. Trying to force this heirarchy without the necessary foundation of transferring knowledge and expertise to the community will result in a "foundation-less" process where no one is able to know what you and Andrei want so in your eyes the quality suffers. That's exactly what we are seeing today.--- On a final note it doesn't matter to the DIP approval process how hard anyone works on the proposal, or how much time they spent on it, etc. Only results matter. By the same token, I don't expect anyone to care how much time I spend on D, I don't expect anyone to use D because people worked hard on it, etc. The only thing that matters is how good D is.Agreed. We are not complaining about the amount of work. We are complaining that there is no feedback to the work we are doing so we are "wasting work". The "amount of work" is not a problem. A large community with a good process can do amazing things, but with a bad process will just be a waste of everyone's time as it does not produce any results and takes everyone's work away from what could be productive tasks.It's a bit like the Olympics. Nobody cares how hard/long an athlete trained. Only that they win. Who would want it any other way?Exactly. With the current process everyone is doing alot of work and producing no results. We are proposing to change the process not to save work, but to turn the work we are already doing into effective results.
Mar 01 2019
On 3/1/2019 2:01 PM, Jonathan Marler wrote:Exactly. With the current process everyone is doing alot of work and producing no results. We are proposing to change the process not to save work, but to turn the work we are already doing into effective results.Dip1016 is not "no result". It's clear that rvalues to ref parameters is the way forward. I'm now writing the DIP for it.
Mar 01 2019
On Saturday, 2 March 2019 at 03:51:00 UTC, Walter Bright wrote:On 3/1/2019 2:01 PM, Jonathan Marler wrote:Out of all the things I said...you chose to respond to this? I suppose I shouldn't be surprised. If we've learned anything from the way you respond on the forums and the way you give DIP feedback, it seems to be a pattern of yours to ignore the major points of what someone writes, then respond to a minor part of it and think that's adequate. I have a hard time seeing how someone can justify this behavior to themselves, unless you don't realize what you're actually doing; or maybe you just don't think a full response is worth your time. Because of these poor responses we can never seem to get resolution. We just keep arguing and coming back to the same things over and over. I'd rather spend time my time programming but for some reason I still have hope that this community will get better. Maybe I'm delusional.Exactly. With the current process everyone is doing alot of work and producing no results. We are proposing to change the process not to save work, but to turn the work we are already doing into effective results.Dip1016 is not "no result". It's clear that rvalues to ref parameters is the way forward. I'm now writing the DIP for it.
Mar 02 2019
On 3/2/19 4:50 AM, Jonathan Marler wrote:On Saturday, 2 March 2019 at 03:51:00 UTC, Walter Bright wrote:Meh, as long as he agrees "rvalues to ref parameters is the way forward" and is working on a DIP, I'm satisfied.On 3/1/2019 2:01 PM, Jonathan Marler wrote:Out of all the things I said...you chose to respond to this? I suppose I shouldn't be surprised...Exactly. With the current process everyone is doing alot of work and producing no results. We are proposing to change the process not to save work, but to turn the work we are already doing into effective results.Dip1016 is not "no result". It's clear that rvalues to ref parameters is the way forward. I'm now writing the DIP for it.
Mar 02 2019
On 3/2/2019 1:50 AM, Jonathan Marler wrote:Out of all the things I said...you chose to respond to this?I've been on forums for several decades. I've done the point-by-point responses endlessly. They never result in understanding nor resolution. They just spawn another point-by-point riposte, which demands another point-by-point response, which goes on and on until someone gives up from sheer exhaustion. Few forum readers ever seem to read these chains, either. Instead, I choose to respond to what seems like the overarching point of the message. It seems to work better.you don't realize what you're actually doingPlease maintain professional demeanor.
Mar 02 2019
On Saturday, 2 March 2019 at 22:42:55 UTC, Walter Bright wrote:On 3/2/2019 1:50 AM, Jonathan Marler wrote:Out of all the things I said...you chose to respond to this?I've been on forums for several decades. I've done the point-by-point responses endlessly. They never result in understanding nor resolution. They just spawn another point-by-point riposte, which demands another point-by-point response, which goes on and on until someone gives up from sheer exhaustion. Few forum readers ever seem to read these chains, either. Instead, I choose to respond to what seems like the overarching point of the message. It seems to work better.Oh sorry, how would I say that statement in a more professional demeanor? I genuinely wasn't sure whether or not you were are of this pattern. I admit one of my weaknesses is not always knowing how to say something in the most tactful way. I find people are more sensitive than myself so I have a hard time knowing when I've said something insensitive, or how to say it in a way that's more tactful. How could I have said that in a professional manner?you don't realize what you're actually doingPlease maintain professional demeanor.
Mar 02 2019
On 3/2/2019 4:16 PM, Jonathan Marler wrote:Oh sorry, how would I say that statement in a more professional demeanor? I genuinely wasn't sure whether or not you were are of this pattern. I admit one of my weaknesses is not always knowing how to say something in the most tactful way. I find people are more sensitive than myself so I have a hard time knowing when I've said something insensitive, or how to say it in a way that's more tactful. How could I have said that in a professional manner?Thanks for asking. You could say that what I responded to wasn't the salient part of the post, and summarize what you consider to be the most important. --- In general, the following would be considered inappropriate in a professional setting (not just here, really anywhere): 1. impugning the motives of others 2. questioning others' intelligence, competence or mental stability 3. believing one's argument is so compelling that others must have been secretly convinced, and are continuing to disagree out of dishonesty, cussedness or attempts to save face 4. obsequiousness It's discouraged because it is highly unlikely to produce useful results. BTW, I'll often write a rant, then put it in my drafts folder. Looking at it an hour later, I almost always sigh and just delete it.
Mar 02 2019
On Sunday, 3 March 2019 at 02:33:26 UTC, Walter Bright wrote:On 3/2/2019 4:16 PM, Jonathan Marler wrote:Thanks for taking the time to respond to this one. I'm putting up a wiki: https://wiki.dlang.org/?title=Guidelines_for_Professional_Conduct The rest of this response is an effort to get clarification on your guidelines and hopefully put together a good wiki for them. As I read these and think about them I'm having a hard time understanding some of these guidelines. For example, "impugning the motives of others". In simple terms I understand this to mean "accusing someone of having sinister motives". In my mind, if someone is behaving in a way that appears to be caused by sinister motives, wouldn't you want to point that out and ask them about it? Either you want to bring those sinister motives to light or hopefully they explain what their motives actually are and it bring better cooperative understanding. How do you rectify this and remain professional? In the wiki I rewrote number 2 as "Avoid personal attacks. Avoid insulting another's intelligence, competence or mental stability.". Feel free to modify it of course.Oh sorry, how would I say that statement in a more professional demeanor? I genuinely wasn't sure whether or not you were are of this pattern. I admit one of my weaknesses is not always knowing how to say something in the most tactful way. I find people are more sensitive than myself so I have a hard time knowing when I've said something insensitive, or how to say it in a way that's more tactful. How could I have said that in a professional manner?Thanks for asking. You could say that what I responded to wasn't the salient part of the post, and summarize what you consider to be the most important. --- In general, the following would be considered inappropriate in a professional setting (not just here, really anywhere): 1. impugning the motives of others 2. questioning others' intelligence, competence or mental stability 3. believing one's argument is so compelling that others must have been secretly convinced, and are continuing to disagree out of dishonesty, cussedness or attempts to save face 4. obsequiousness It's discouraged because it is highly unlikely to produce useful results. BTW, I'll often write a rant, then put it in my drafts folder. Looking at it an hour later, I almost always sigh and just delete it.3. believing one's argument is so compelling that others must have been secretly convinced, and are continuing to disagree out of dishonesty, cussedness or attempts to save faceThis one is confusing to me. It doesn't appear to be a guideline for professional conduct, more like a guideline to life and how to view other people. It sounds like you're saying we should assume that people are always "open minded" and that they never let pride get in the way of things. Is this correct or did I misunderstand? If so then this doesn't really match my own life experience with myself or other people. I try my best to remain open minded but I realize my mind constantly wants to "pick a side" and I have to actively fight that tendency. My own experience seems very consistent with how I see other people behave as well. Do you hold a different view on this?4. obsequiousnessHad to look this one up, but even after that I'm not sure what you meant by this one.
Mar 03 2019
On Sunday, 3 March 2019 at 16:29:03 UTC, Jonathan Marler wrote:Thanks for taking the time to respond to this one. I'm putting up a wiki: https://wiki.dlang.org/?title=Guidelines_for_Professional_Conduct The rest of this response is an effort to get clarification on your guidelines and hopefully put together a good wiki for them.It means, don't suck up to Walter/Andrei to curry favour with them. Jonathan, you have a high signal to noise ratio and you are usually very 'professional'. I think your time would be better spent thinking/designing/coding than updating wiki pages about social issues. But in any case, I'll add a few personal thoughts on my own rules for contributing to forums, perhaps others will find them beneficial. 1) Don't post when you are angry. 2) Target / address all the readers of the comment, not just the person who posted the comment you are replying to. Trying to 'win the argument' with the poster who you are replying to is nearly always a waste of time and just ends up in aggravation and even lost sleep. 3) Always be polite even when someone is being gratuitously rude and insulting. 4) Give people the benefit of the doubt. Readers will notice, these rules are not a recipe to win a technical argument. Technical discussion is the interesting part of the debate, but in the absence of the social rules it can quickly descend into a slanging match.4. obsequiousnessHad to look this one up, but even after that I'm not sure what you meant by this one.
Mar 03 2019
On Sunday, 3 March 2019 at 20:16:11 UTC, Abdulhaq wrote:On Sunday, 3 March 2019 at 16:29:03 UTC, Jonathan Marler wrote:Thanks for the feedback. Unfortunately this isn't the first time or the first person who has accused me of being "unprofessional". Because of this I take it seriously and I'm trying to be better. I think it can be good to take some time to self-reflect and possibly re-adjust yourself.Thanks for taking the time to respond to this one. I'm putting up a wiki: https://wiki.dlang.org/?title=Guidelines_for_Professional_Conduct The rest of this response is an effort to get clarification on your guidelines and hopefully put together a good wiki for them.It means, don't suck up to Walter/Andrei to curry favour with them. Jonathan, you have a high signal to noise ratio and you are usually very 'professional'. I think your time would be better spent thinking/designing/coding than updating wiki pages about social issues.4. obsequiousnessHad to look this one up, but even after that I'm not sure what you meant by this one.But in any case, I'll add a few personal thoughts on my own rules for contributing to forums, perhaps others will find them beneficial. 1) Don't post when you are angry. 2) Target / address all the readers of the comment, not just the person who posted the comment you are replying to. Trying to 'win the argument' with the poster who you are replying to is nearly always a waste of time and just ends up in aggravation and even lost sleep. 3) Always be polite even when someone is being gratuitously rude and insulting. 4) Give people the benefit of the doubt. Readers will notice, these rules are not a recipe to win a technical argument. Technical discussion is the interesting part of the debate, but in the absence of the social rules it can quickly descend into a slanging match.These are good tips. I know you said I shouldn't spend time on the wiki but I think it's worth the effort to include them. I've added a "Tips" section.
Mar 04 2019
On 3/3/2019 8:29 AM, Jonathan Marler wrote:Thanks for taking the time to respond to this one. I'm putting up a wiki: https://wiki.dlang.org/?title=Guidelines_for_Professional_ConductPlease don't. We're about D, we're not about being any sort of authority on manners. I particularly don't want to codify things in a way that becomes something written in a lawyerly fashion for people looking to conform to the letter yet violate the spirit. I suggest anyone looking for an authority on it to pick out one of the "Emily Post" books on Amazon.TFor example, "impugning the motives of others". In simple terms I understand this to mean "accusing someone of having sinister motives". In my mind, if someone is behaving in a way that appears to be caused by sinister motives, wouldn't you want to point that out and ask them about it?No. It is extremely rude to do so, and in every case I know of the accuser was wrong about it.The two are the same.3. believing one's argument is so compelling that others must have been secretly convinced, and are continuing to disagree out of dishonesty, cussedness or attempts to save faceThis one is confusing to me. It doesn't appear to be a guideline for professional conduct, more like a guideline to life and how to view other people.It sounds like you're saying we should assume that people are always "open minded" and that they never let pride get in the way of things. Is this correct or did I misunderstand?It's a misunderstanding. It's not about the Bob continuing to disagree, it's about Fred asserting that Bob couldn't honestly disagree, that Bob must be trying to save face. I've seen (3) many times in this forum, and don't care to see it again. No, I'm not going to identify particular instances. I'm reminded of something a lawyer told me long ago: 1. When the law is on your side, argue the law. 2. When justice is on your side, argue for justice. 3. When neither the law nor justice is on your side, engage in character assassination.
Mar 03 2019
On Monday, 4 March 2019 at 06:41:36 UTC, Walter Bright wrote:On 3/3/2019 8:29 AM, Jonathan Marler wrote:I can appreciate this argument as earlier in this thread I was just using the same argument to describe a problem with the current DIP process. That people are rigidly adhering to the process and forgetting the spirit of it. My issue here is that these guidelines are not obvious to me and I've seen others question what they are as well. That being said, I think your concern of "rigid adherence" can be addressed by being careful with how the guidelines are presented. This is why I changed the wording in your response from "do not do X". to "avoid X" and "consider X" Because of your concern, I've also added a statement that these are not rules to be followed to the letter and included a list of "goals" to describe the "sprit of the guidelines". I'm not sure what these goals are so I just included one and am hoping for it to be filled in by the leadership.Thanks for taking the time to respond to this one. I'm putting up a wiki: https://wiki.dlang.org/?title=Guidelines_for_Professional_ConductPlease don't. We're about D, we're not about being any sort of authority on manners. I particularly don't want to codify things in a way that becomes something written in a lawyerly fashion for people looking to conform to the letter yet violate the spirit.I suggest anyone looking for an authority on it to pick out one of the "Emily Post" books on Amazon.At work I have also been known to be "intimidating" at times and can come off as rude and insensitive. I know you are probably shocked! I don't want to be this way and I try hard not to be. I take this stuff seriously and I am taking your suggestions seriously. I see a fair number of books, which ones would you specifically recommend?This is very interesting to me. To clarify, you're saying that if you suspect someone has sinister motives that you shouldn't say anything about it. This is very contradictory to my current world view. I've come to believe that if something is wrong then you should bring it out in the open so that it can be resolved rather than letting it simmer and get worse. However, I also believe that the way in which you discuss it is VERY IMPORTANT and is often the deciding factor in whether or not it can be resolved. So if I understand you correctly, you're saying that some things should never be discussed. Futhermore, if you think someone has bad motives, you're probably wrong, so you should drop it and not ask the person what their motives actually are. This is so fundamentally different to how I think. I will have to think on this more and reconsider my current beliefs I listed above.TFor example, "impugning the motives of others". In simple terms I understand this to mean "accusing someone of having sinister motives". In my mind, if someone is behaving in a way that appears to be caused by sinister motives, wouldn't you want to point that out and ask them about it?No. It is extremely rude to do so, and in every case I know of the accuser was wrong about it.I think you're reasoning here matches that previous one. You're saying that if you suspect someone isn't being convinced by your argument because of some other reason besides your argument, you're probably wrong. It's unlikely that the person who disagrees with you is doing so because they dislike you or because they have an agenda. You shouldn't ask them about it because doing so would be rude and it's unlikely that it's true. So just assume you're suspicions are wrong and continue. I would say I agree with this up to a point. I personally try to give people the "benefit of the doubt" when it comes to these things. However, I would stipulate that if you see what appears to be repeated vindictive behavior then at some point it should be addressed and discussed between the parties.The two are the same.3. believing one's argument is so compelling that others must have been secretly convinced, and are continuing to disagree out of dishonesty, cussedness or attempts to save faceThis one is confusing to me. It doesn't appear to be a guideline for professional conduct, more like a guideline to life and how to view other people.It sounds like you're saying we should assume that people are always "open minded" and that they never let pride get in the way of things. Is this correct or did I misunderstand?It's a misunderstanding. It's not about the Bob continuing to disagree, it's about Fred asserting that Bob couldn't honestly disagree, that Bob must be trying to save face. I've seen (3) many times in this forum, and don't care to see it again. No, I'm not going to identify particular instances. I'm reminded of something a lawyer told me long ago: 1. When the law is on your side, argue the law. 2. When justice is on your side, argue for justice. 3. When neither the law nor justice is on your side, engage in character assassination.
Mar 04 2019
On 3/4/2019 5:03 AM, Jonathan Marler wrote:Because of your concern, I've also added a statement that these are not rules to be followed to the letter and included a list of "goals" to describe the "sprit of the guidelines". I'm not sure what these goals are so I just included one and am hoping for it to be filled in by the leadership.I don't wish to get into any debate that nitpicks about what is and is not professional conduct. It's a hopeless debate, as hopeless as trying to codify the difference between art and porn. As far as the forums go, the decision will be made by the moderators. It's usually pretty clear, and we'll discuss among ourselves any problematic cases.For starters, "How To Win Friends and Influence People" by Carnegie is a long-standing classic for good reason. And, "Emily Post's Etiquette". When I was growing up, I noticed something interesting. I was able to recognize people that were less "mature" than I was, but not more "mature". I could only see my maturation in hindsight. I think it's similar with manners. BTW, I think it's very good of you to recognize issues and work to resolve them. I have a lot of respect for that. But don't expect to just read a book and get better at it. It's a lifelong struggle. I've been working on mine since I first read HTWFaIP as a teenager.I suggest anyone looking for an authority on it to pick out one of the "Emily Post" books on Amazon.At work I have also been known to be "intimidating" at times and can come off as rude and insensitive. I know you are probably shocked! I don't want to be this way and I try hard not to be. I take this stuff seriously and I am taking your suggestions seriously. I see a fair number of books, which ones would you specifically recommend?This is very interesting to me. To clarify, you're saying that if you suspect someone has sinister motives that you shouldn't say anything about it. This is very contradictory to my current world view. I've come to believe that if something is wrong then you should bring it out in the open so that it can be resolved rather than letting it simmer and get worse. However, I also believe that the way in which you discuss it is VERY IMPORTANT and is often the deciding factor in whether or not it can be resolved. So if I understand you correctly, you're saying that some things should never be discussed. Futhermore, if you think someone has bad motives, you're probably wrong, so you should drop it and not ask the person what their motives actually are. This is so fundamentally different to how I think. I will have to think on this more and reconsider my current beliefs I listed above.Even if you're right about their motives, you'll never resolve it by bringing it out into the open. You'll just make them mad at you.However, I would stipulate that if you see what appears to be repeated vindictive behavior then at some point it should be addressed and discussed between the parties.Vindictive behavior is something entirely different from failing to find one's argument compelling.
Mar 04 2019
On Mon, Mar 04, 2019 at 02:25:01PM -0800, Walter Bright via Digitalmars-d wrote: [...]When I was growing up, I noticed something interesting. I was able to recognize people that were less "mature" than I was, but not more "mature". I could only see my maturation in hindsight. I think it's similar with manners.[...] And also with programming languages. Cf. the Blub paradox: http://www.paulgraham.com/avg.html T -- MACINTOSH: Most Applications Crash, If Not, The Operating System Hangs
Mar 04 2019
On Monday, 4 March 2019 at 22:25:01 UTC, Walter Bright wrote:On 3/4/2019 5:03 AM, Jonathan Marler wrote:Thanks for the suggestions, I've ordered them and look forward to what I can learn from them.[...]For starters, "How To Win Friends and Influence People" by Carnegie is a long-standing classic for good reason. And, "Emily Post's Etiquette". When I was growing up, I noticed something interesting. I was able to recognize people that were less "mature" than I was, but not more "mature". I could only see my maturation in hindsight. I think it's similar with manners. BTW, I think it's very good of you to recognize issues and work to resolve them. I have a lot of respect for that. But don't expect to just read a book and get better at it. It's a lifelong struggle. I've been working on mine since I first read HTWFaIP as a teenager.Well you've got a point there. I wouldn't say I'm convinced that in most cases if you present it in the right way that you can actually discuss things like that so long as you do it the right way. But I could be wrong. In any case this is a new perspective I will try to consider in the future, and now I know where you stand on the subject as well.[...]Even if you're right about their motives, you'll never resolve it by bringing it out into the open. You'll just make them mad at you.
Mar 04 2019
On Monday, 4 March 2019 at 22:25:01 UTC, Walter Bright wrote:BTW, I think it's very good of you to recognize issues and work to resolve them. I have a lot of respect for that. But don't expect to just read a book and get better at it. It's a lifelong struggle.Frankly- at several points in this thread it seems that your response to a complaint that something was not done or not attempted has been "I've tried doing that, and it has not worked, so I no longer try to do that." I don't see how a process that relies on feedback can function when one of the participants has given up on feedback. I don't see how DIPs can work if you've given up on supporting DIPs! I think asking you to put in all of the effort in implementing a feature, pushing a DIP through to completion is unreasonable. However, providing no feedback and letting the DIP author develop in the wrong direction and finally giving a verdict a year into the process is *also* unreasonable. Letting others try to push effort off onto you is unreasonable, but it's not fair to the developers of current DIPs to punish them for the bad behavior of previous developers. If you have given up on providing feedback during the process, then 1. this should be clearly documented on the relevant Wiki pages, and 2. you should probably expect very few dips and a high rate of burnout. You, W&A, are not the Standards Committee. D is not C++. We do not have so large a community that we can select the very best and most important of DIPs and still have DIPs be a meaningful mechanism for driving the language forward. If DIPs should be limited to either trivial features or highly dedicated, enthusiastic and ascetic developers who can work for months to years in radio silence, get a terse rejection and keep trucking - saints - then the current course of action is appropriate. Frankly, if I worked on a feature for a year and got the response that Manu got, I'd fork the project. But if the point of DIPs is to get moderate changes to the language proposed, reviewed, implemented and included - the sort of thing where if you go wrong in the beginning, you can spend a long time and a lot of effort walking in the wrong direction - then there absolutely must be, not equitability, but some amount of sane proportion between the effort put in by W&A and the effort *not wasted* by the DIP author. It is grossly disproportionate that a few lines of feedback can invalidate months of work *done within the lines drawn by the process*. That is a bad process, and it will not work, and in its failure it will drive people away from contributing at all. It's okay to not have a DIP process. But a broken process that absorbs community effort for no gain is a danger to the entire project.
Mar 06 2019
On Wednesday, 6 March 2019 at 15:48:12 UTC, FeepingCreature wrote:highly dedicated, enthusiastic and ascetic developers who can work for months to years in radio silenceif I worked on a feature for a yeara few lines of feedback can invalidate months of workI keep seeing variations of this "months of effort" claim. There's simply no such thing. It's more like "months of waiting". The effort on a DIP is front-loaded. The majority of it goes into getting the initial draft ready for the Draft Review stage. Some DIPs receive more feedback than others in Draft Review, but even those that have long discussions tend to get them out of the way early on, with a little more feedback trickling in now and again while the author waits for me to move the DIP to the next round, but very little revision after the initial couple of weeks or so. When I do initiate the next phase, I do a couple of editing passes to get the grammar and the language in decent shape and then we do the Community Review. Some DIPs require revision subsequent to the review, some do not. But if there are any, they are relatively minor. Then there's more waiting until the Final Review. Usually, there are no subsequent revisions here. Then the DIP goes to Walter and Andrei. I'm not trying to minimize the amount of effort involved. Some DIPs do require more work than others. But let's not exaggerate the scale -- the lion's share of the effort is up front. The rest of the time is spent waiting. As for Walter and Andrei's feedback, I've thought about this quite a bit lately and I really don't think it reasonable to require it up front. Imagine they flat out tell a DIP author in Draft Review that the DIP has zero chance of being approved. The DIP author closes the PR and then we'll never know. Because there was no Community Review, the community lost the opportunity to debate and improve the DIP. There is no chance to change Walter or Andrei's mind. And yes, they have approved a DIP before that they expected to reject. If, on the other hand, Walter and Andrei provide editorial feedback to strengthen the DIP, this will easily lead to the impression that they are likely to approve it. How does the DIP author feel, then, when they get to the end and it's rejected? What if we wait and instead ask them for feedback during the Community Review? Now they can see the debate, see the improvements. So... should they reject a bad DIP now? Should they suggest their own improvements? Again, what if they do suggest improvements and then reject the DIP in the end? At this point, why bother with the Final Review or Formal Assessment at all? I appreciate the sentiment behind the suggestions throughout this thread. The goal is to increase the likelihood of acceptance while giving an early out to DIPs that won't be accepted. I agree we can do more of the former, but not the latter. The DIP process is long, but it absolutely should be. And anyone going into it needs to understand that up front and that they might not agree with the end result. But again, the majority of the effort goes into the initial draft, so having a long process does not add a significant burden of effort on the DIP author. It may test the author's patience, but that's something else entirely. A long process also means that people aren't going to submit DIPs willy nilly. There needs to be a substantial amount of thought that goes into one, so the bar should be high. The stages of review are there so that the community can put their collective deliberation into it and try to persuade the author to change/fix/enhance the DIP in one way or another. This isn't always going to produce a DIP that's up to standard, but that doesn't mean rejection. Walter and Andrei have accepted DIPs conditionally and sent them back to the author for modification before, and they likely will again. So the TL;DR from me is, Walter and Andrei should not be involved in the process until the end. As I suggested before, however, we could absolutely use a couple of people at the beginning who have the background needed to nudge a DIP toward the standard of technical soundness Walter and Andrei are looking for. My focus is on grammar, vocabulary, that sort of thing. Given a couple of people who have received instruction from Walter and Andrei and with whom I can consult to ensure the DIP is hitting all the right notes at different stages of the review, we can produce higher quality DIPs and hopefully make the process more efficient.
Mar 06 2019
On Wednesday, 6 March 2019 at 18:40:57 UTC, Mike Parker wrote:On Wednesday, 6 March 2019 at 15:48:12 UTC, FeepingCreature wrote:I don't think you're giving the proper weight to the amount of time and effort that it takes to go through the DIP process. We're not just talking the time it takes to write the DIP readme file. There's the time it takes for everyone that is involved to read it, think about it, discuss it on the forums, research it, create test cases, look at code to see how to implemented it, etc. Alot of time and effort goes into a DIP that isn't shown in the final readme document, and it takes that time away from many people, not just the author and manager of the DIP.highly dedicated, enthusiastic and ascetic developers who can work for months to years in radio silenceif I worked on a feature for a yeara few lines of feedback can invalidate months of workI keep seeing variations of this "months of effort" claim. There's simply no such thing. It's more like "months of waiting". The effort on a DIP is front-loaded. The majority of it goes into getting the initial draft ready for the Draft Review stage. Some DIPs receive more feedback than others in Draft Review, but even those that have long discussions tend to get them out of the way early on, with a little more feedback trickling in now and again while the author waits for me to move the DIP to the next round, but very little revision after the initial couple of weeks or so.As for Walter and Andrei's feedback, I've thought about this quite a bit lately and I really don't think it reasonable to require it up front. Imagine they flat out tell a DIP author in Draft Review that the DIP has zero chance of being approved. The DIP author closes the PR and then we'll never know.If Walter and Andrei say a DIP has 0% chance of being approved, then we've just saved alot of people alot of time, argument and potentially hurt feelings. Walter and Andrei aren't required to give a final ruling at this time, but it would be great if they could give feedback like: "I'm not sure about this feature, we'll need some good rational and examples to be convinced." "I really want this feature in D in some form, let's do some good research to make sure there are no nasty corner cases and that we get a very good implementation". "I don't see any path for this particular feature to be accepted." I think W&A can tell the difference between a poorly written DIP and a poor idea. If a DIP is poorly written they can say "I think there's a good idea here but the DIP is poorly written".there was no Community Review, the community lost the opportunity to debate and improve the DIP. There is no chance to change Walter or Andrei's mind. And yes, they have approved a DIP before that they expected to reject.You're talking like W&A are children who rush to judgement and can't keep an open mind. I don't think this is the case, and if it is, we got bigger problems on our hands :) I think they are capable of giving reasonable feedback without unnecessarily rushing to judgment.If, on the other hand, Walter and Andrei provide editorial feedback to strengthen the DIP, this will easily lead to the impression that they are likely to approve it. How does the DIP author feel, then, when they get to the end and it's rejected?It's all in the way the response is worded. If they're not sure about the idea yet and are waiting for more research from the community then they can indicate that. "Not sure whether or not this feature would be good for D at this time. Would like to see some more rational/research from the community on this one."What if we wait and instead ask them for feedback during the Community Review? Now they can see the debate, see the improvements. So... should they reject a bad DIP now? Should they suggest their own improvements? Again, what if they do suggest improvements and then reject the DIP in the end? At this point, why bother with the Final Review or Formal Assessment at all?Should they reject the DIP now? It depends on what they think of it. If they know it will never be accepted then yes. If not, then why would they reject it? Should they suggest their own improvements? Of course, why not? If they still end up rejecting the DIP that's a much better process than if they left no feedback at all during the whole process, and now the DIP will contain more relevant points that matter rather than focusing on things that don't since it wasn't given any guidance.I appreciate the sentiment behind the suggestions throughout this thread. The goal is to increase the likelihood of acceptance while giving an early out to DIPs that won't be accepted. I agree we can do more of the former, but not the latter.Increasing acceptance is most certainly 100% NOT the goal. I don't remember anyone saying that. The goal is to leverage the community to vet new features for D. Our suggestions help with that goal by 1) directing people's efforts towards fruitful endeavors rather than wasting time on pointless ones 2) maintaining a positive community by showing we value people's time by taking our own time to leave feedback and give directionA long process also means that people aren't going to submit DIPs willy nilly. There needs to be a substantial amount of thought that goes into one, so the bar should be high. The stages of review are there so that the community can put their collective deliberation into it and try to persuade the author to change/fix/enhance the DIP in one way or another. This isn't always going to produce a DIP that's up to standard, but that doesn't mean rejection. Walter and Andrei have accepted DIPs conditionally and sent them back to the author for modification before, and they likely will again.I keep hearing these rules and justifications like A long process also means that people aren't going to submit DIPs willy nilly It's true that people are detured from things if they take longer, but that's not justification to implement such a rule. They would also be detured if they had to hand out their social security number and perform a double-backflip on the trampoline before they could submit a DIP :) Instead, we should let the process evolve naturally and only intervene with rules when problems occur, and even then, creating a new rule should be a last resort since it's very hard to write a rule that is good in all cases.So the TL;DR from me is, Walter and Andrei should not be involved in the process until the end. As I suggested before, however, we could absolutely use a couple of people at the beginning who have the background needed to nudge a DIP toward the standard of technical soundness Walter and Andrei are looking for. My focus is on grammar, vocabulary, that sort of thing. Given a couple of people who have received instruction from Walter and Andrei and with whom I can consult to ensure the DIP is hitting all the right notes at different stages of the review, we can produce higher quality DIPs and hopefully make the process more efficient.Though I see your reasoning I think you can see from my responses that I very much disagree with your conclusion. What we're saying is, at the very minimum, there should not be a rule to exclude Walter and Andrei till the end. You provided one example where them leaving feedback early on would cause a DIP to fail. This is exactly what we want. We don't want to waste people's time if Walter and Andrei already know they're going to reject the DIP. In the case where they don't know whether or not it will succeed, then you're example doesn't apply since Walter and Andrei wouldn't leave feedback indicating the DIP is Dead on Arrival. As to whether Walter and Andrei should be required to leave feedback, I would argue "yes" but I know that's a more radical change to the current process. However, I strongly believe they shouldn't be pushed out of the process until the end. Each DIP will be unique, let each one be handled in the proper way. If W&A think a DIP is viable and want to wait for community feedback and revision that's fine. If they have suggestions/guidance for it, even better. If they know it's a waste of time, then I recommend they say something and point the author towards better endeavors.
Mar 06 2019
On Wednesday, 6 March 2019 at 19:54:23 UTC, Jonathan Marler wrote:As to whether Walter and Andrei should be required to leave feedback, I would argue "yes" but I know that's a more radical change to the current process. However, I strongly believe they shouldn't be pushed out of the process until the end. Each DIP will be unique, let each one be handled in the proper way. If W&A think a DIP is viable and want to wait for community feedback and revision that's fine. If they have suggestions/guidance for it, even better. If they know it's a waste of time, then I recommend they say something and point the author towards better endeavors.+1
Mar 06 2019
On Wednesday, 6 March 2019 at 18:40:57 UTC, Mike Parker wrote:the lion's share of the effort is up front. The rest of the time is spent waiting.1. You missed the vast amount of political effort required to get to the bottom of why it was rejected.As for Walter and Andrei's feedback, I've thought about this quite a bit lately and I really don't think it reasonable to require it up front. Imagine they flat out tell a DIP author in Draft Review that the DIP has zero chance of being approved. The DIP author closes the PR and then we'll never know.Not quite that harshly, but https://github.com/dlang/DIPs/pull/101#issuecomment-414803648 ...Because there was no Community Review, the community lost the opportunity to debate and improve the DIP.Not entirely, there is still draft review.There is no chance to change Walter or Andrei's mind....the author agreed to withdraw it.And yes, they have approved a DIP before that they expected to reject.Out of curiosity, which one?If, on the other hand, Walter and Andrei provide editorial feedback to strengthen the DIP, this will easily lead to the impression that they are likely to approve it.You should it imply that? If they see a problem or a direction they fell the DIP should go inHow does the DIP author feel, then, when they get to the end and it's rejected?That depends entirely on _why_ is was rejected. In the case of 1015 or 1016, disappointed would be an understatement, although for different reasons.What if we wait and instead ask them for feedback during the Community Review? Now they can see the debate, see the improvements. So... should they reject a bad DIP now?If the DIP is beyond salvaging, or the author has failed to fix any problems previously identified *chough* 1017 *cough*.Should they suggest their own improvements?Yes!Again, what if they do suggest improvements and then reject the DIP in the end?Then they will have their reasons, and those reasons will be available for all to see (and possibly ridiculed if they are completely wrong (e.g. 1015/16), and rightly so).At this point, why bother with the Final Review or Formal Assessment at all?It may pick up something the community has missed.I appreciate the sentiment behind the suggestions throughout this thread. The goal is to increase the likelihood of acceptance while giving an early out to DIPs that won't be accepted. I agree we can do more of the former, but not the latter.2. It should be a trivial effort for W&A to answer: at the end of the draft stage, reading _just_ the title and the abstract, "If this thing is well specified something we _think_ would benefit from having in the language?" at the end of community: is this well specified? Has the answer above changed? What issues that have been identified, must be resolved?The DIP process is long, but it absolutely should be.No, it should be thorough. One of the sections of the DConf foundation meeting is to provide a platform for rigorous review and feedback to cut down the amount of time it takes.And anyone going into it needs to understand that up front and that they might not agree with the end result. But again, the majority of the effort goes into the initial draft, so having a long process does not add a significant burden of effort on the DIP author. It may test the author's patience, but that's something else entirely.See point 1.A long process also means that people aren't going to submit DIPs willy nilly.s/long/thoroughThere needs to be a substantial amount of thought that goes into one, so the bar should be high. The stages of review are there so that the community can put their collective deliberation into it and try to persuade the author to change/fix/enhance the DIP in one way or another. This isn't always going to produce a DIP that's up to standard, but that doesn't mean rejection.Unfortunately just because a DIP is up to standard and the community endorses it, doesn't mean that it will be accepted, see 1015.Walter and Andrei have accepted DIPs conditionally and sent them back to the author for modification before, and they likely will again. So the TL;DR from me is, Walter and Andrei should not be involved in the process until the end.I couldn't disagree more. Their involvement means we can avoid process errors like: 1015 (wrong outcome) 1016 (poor handling of the response) 1017 (everything, but principally wasting time reviewing a DIP that contains all of its flaws) 1018 implicit, ideally they would have taken the hint a bit sooner but they eventually fixed it, which is was matters, even it if detracted from the review.As I suggested before, however, we could absolutely use a couple of people at the beginning who have the background needed to nudge a DIP toward the standard of technical soundness Walter and Andrei are looking for.Thats all well and good, but as long as W&A are the ones that have the final say, it is them who need to answer point 2.
Mar 06 2019
On Monday, 4 March 2019 at 06:41:36 UTC, Walter Bright wrote:I'm reminded of something a lawyer told me long ago: 1. When the law is on your side, argue the law. 2. When justice is on your side, argue for justice. 3. When neither the law nor justice is on your side, engage in character assassination.That's doesn't sound like a very good lawyer. Law is just someone made up and justice is whatever people perceive it to be. There's plenty you can do other than those 3 things.
Mar 04 2019
On 3/4/2019 2:34 PM, Rubn wrote:That's doesn't sound like a very good lawyer.It's the order in which you argue a case to a judge. Judges prefer to rule based on the law, because it's easier. It's much easier to win a case when the law is on your side. It's much harder to argue that justice should override the law.
Mar 04 2019
On Friday, 1 March 2019 at 22:01:03 UTC, Jonathan Marler wrote:On Friday, 1 March 2019 at 21:23:10 UTC, Walter Bright wrote:Case in point https://github.com/dlang/DIPs/pull/101#issuecomment-414803648When I get involved early in the DIP process, what happens is the author quits and leaves it to me to finish, which usually means doing 98% of the work.This doesn't make sense. If you leave feedback and the author quits you don't have to take over the work. Let someone else take it over. Even better, since you left feedback, the new owner can take your feedback and improve the DIP with it. If no one takes it over, then the DIP isn't worth anyone's time and you've now saved a years worth of the author's and community's time from researching/revising and debating worthless DIP.
Mar 01 2019
On Friday, 1 March 2019 at 21:23:10 UTC, Walter Bright wrote:On a final note it doesn't matter to the DIP approval process how hard anyone works on the proposal, or how much time they spent on it, etc. Only results matter. By the same token, I don't expect anyone to care how much time I spend on D, I don't expect anyone to use D because people worked hard on it, etc. The only thing that matters is how good D is. It's a bit like the Olympics. Nobody cares how hard/long an athlete trained. Only that they win. Who would want it any other way?Oh come on. This comparison makes no sense, the olympics are nothing like a programming language. Specifically, a programming language is changing (it's not static)--which is very relevant considering we're talking about proposals to change it! It absolutely is worth considering (and is considered) if a programming language you want to use is maintained by people who care enough about it to do their very best at maintaining it. I have always balked at the assumption that a leader should *have* to love what they do, but there needs to be *some* sort of reason to believe that a project will be well-led, and that it will continue to progress intelligently as time goes on; passion and hard work are as good a reason as any.
Mar 01 2019
On 02.03.19 07:15, Elronnd wrote:On Friday, 1 March 2019 at 21:23:10 UTC, Walter Bright wrote:It's an analogy. The point was merely that results matter, not effort.On a final note it doesn't matter to the DIP approval process how hard anyone works on the proposal, or how much time they spent on it, etc. Only results matter. By the same token, I don't expect anyone to care how much time I spend on D, I don't expect anyone to use D because people worked hard on it, etc. The only thing that matters is how good D is. It's a bit like the Olympics. Nobody cares how hard/long an athlete trained. Only that they win. Who would want it any other way?Oh come on. This comparison makes no sense, the olympics are nothing like a programming language.
Mar 06 2019
On Thursday, 7 March 2019 at 02:33:11 UTC, Timon Gehr wrote:Community-building matters. If you don't provide positive feedback to other people who are putting great effort to help your project, they are unlikely to continue putting effort into your project.It's an analogy. The point was merely that results matter, not effort.It's a bit like the Olympics. Nobody cares how hard/long an athlete trained. Only that they win. Who would want it any other way?Oh come on. This comparison makes no sense, the olympics are nothing like a programming language.
Mar 07 2019
On Thursday, 7 March 2019 at 02:33:11 UTC, Timon Gehr wrote:On 02.03.19 07:15, Elronnd wrote:People are not pointing out the effort involved because they want "medals for effort", what they want is the race to be run well, for a high speed camera at the finish line not some old guy squinting through one eye. The point is that you need to respect the effort they put in by making sure the DIP process is fair and accurate.On Friday, 1 March 2019 at 21:23:10 UTC, Walter Bright wrote:It's an analogy. The point was merely that results matter, not effort.On a final note it doesn't matter to the DIP approval process how hard anyone works on the proposal, or how much time they spent on it, etc. Only results matter. By the same token, I don't expect anyone to care how much time I spend on D, I don't expect anyone to use D because people worked hard on it, etc. The only thing that matters is how good D is. It's a bit like the Olympics. Nobody cares how hard/long an athlete trained. Only that they win. Who would want it any other way?Oh come on. This comparison makes no sense, the olympics are nothing like a programming language.
Mar 08 2019
On Tuesday, 26 February 2019 at 11:28:56 UTC, Mike Parker wrote:* I will no longer simply *ask* DIP authors to respond to feedback in the review threads, I will *require* it. Note that this does not mean I will require the author to make any revisions, nor does it mean that I will pull the DIP if the opinions of the proposal are overwhelmingly negative.Exactly how it should be, in my opinion. This is a step forward.
Mar 01 2019