Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proposal: Move C# and VB language design discussions to their new GitHub repos #17054

Closed
MadsTorgersen opened this issue Feb 9, 2017 · 106 comments

Comments

@MadsTorgersen
Copy link
Contributor

Proposal: Move C# and VB language design discussions to their new GitHub repos

We recently moved C# and VB design efforts to new csharplang and vblang repos, and attempted to move discussion onto mailing lists.

A couple of aspects of this did not go over well:

  1. We didn't consult the community before making the change
  2. Many people were appalled at the choice of mailing lists for discussion

Once again, apologies for both, and thank you very much for lots of constructive feedback!

This is an attempt to address these by proposing a different discussion venue (2), and asking the community for input on it before enacting it (1).

Balancing time for feedback with the need to fix the current broken state, I would like to act on this proposal and any ensuing suggestions and ideas on Friday Feb 10. If there is significant discord or objections, I'll wait longer to have it resolved, but absent showstoppers I';; put this into effect on Friday.

Please respond on this issue with approval, constructive disapproval and suggested improvements by Friday Feb 10!

Options

The LDT met today to discuss which avenue to take. The options on the table seem to be:

  1. Continue with Mailman
  2. Use another mailing list
  3. Use a Discourse site
  4. Use GitHub issues

1. Mailman

I think a lot of us had a bad experience specifically with Mailman: clear text passwords, fickle threading and "reply all" behavior, unwieldy archive interface and more. Some of that could probably be remedied through configuration, or waiting for Mailman 3.1 to come out, etc. But it's not a great starting point. Also, see #2.

2. Other mailing list solution

The quality of a mailing list experience depends a lot on the email client people use. Based on the feedback it has become clear to us that a lot of people aren't nearly as email driven, and don't have access to good hierarchical threading, etc.

Also, mailing lists don't offer Markdown support, topics and individual replies aren't easily linkable etc.

3. Discourse

Some of us took Discourse for a ride, and it seems to be quite a good experience. They support Markdown, have a decent mailing list mode for those that prefer that, and have threaded discussions with great quoting functionality (though seemingly not hierarchically laid out, so you can't ignore side threads you don't care about). Also, they seem to track where you got to in a discussion, so you don't have to "find your place" again when you come back in again.

4. GitHub issues

GitHub issues are really a mismatch for free form discussion: flat discussions without threading and a lack of ability to track where you got to both make it bewildering to try to keep up - or come back to - active discussions.

Also having discussion mixed in with work items seems to create noise for both. That can be mitigated through labeling, but only if someone sits at the front gate diligently labeling all incoming. The mail notification system is getting better but is still bewildering, and search is lacking.

On the other hand, issues let you have your discussion right inside the project repo, have easy cross linking with pull requests, support exactly the same Markdown as source files, etc.

Proposal

The Language Design Team recognize the upsides and downsides of all these approaches. With one or two notable detractors, who shall not be named, we are ready to rule out mailing lists as our discussion venue: they have proved to unwieldy and exclude too many people. We think that, on its own, Discourse is probably the best discussion forum experience, and it's a great open source initiative that deserves to flourish.

However, the close integration of GitHub issues with the rest of the project repo wins out for us.

We will keep pushing GitHub to improve the discussion experience. @haacked's comments are at least somewhat promising. But we can't bank on that, and have to find a way to live with GitHub as it is today.

Separation of concerns

One thing is to clearly separate "work items" from "proposals". We want to be able to have a clean view of:

  • "debt" around the state of the repos, as in design notes that need to be cleaned up, broken links that need to be fixed, proposals that aren't clear or need better examples, spec defects, etc.
  • "discussion" about the subject matter of the repos: C# and VB language design: Feature suggestions, scenarios that it would be great to try to address, improvements to existing suggestions, etc.

We propose to use labels to clearly distinguish these two. The LDT will take it upon ourselves to slap the right label on all incoming. We will put query links on the top level README so it's easy for a newcomer (or anyone) to just see discussion or just see debt.

We will close work items when the work item is done. A discussion is rarely "done" - at least there's often no single triggering event where it's obvious that the discussion is over. Instead they often peter out, and sometimes are even revived. For this reason, we won't normally close discussion issues. Instead, if you want to see what's moving, sort by recent activity.

Discussion threading

We can't really do much here, except state a few recommendations to site users to keep the discussions more navigable:

Exercise strong preference for starting a new issue rather than respond to an existing one when

  • What you have to say doesn't strongly fit under the title of the current issue (going off-topic)
  • Your response goes into a deeper level of detail on a subtopic (double-clicking/rat-holing)
  • You are proposing one possible solution to the problem described in the current issue (which will warrant separate discussion)

Just linking back to the original topic will establish the connection both ways, as it shows up in the original topic when you do.

The risk of this is higher fragmentation, which can lead to the same discussion repeating itself on multiple issues. But the reward is that threads are more on-topic and "slosh around" less, for the benefit of the reader.

Do you really need to say this?

Is it adding value that you put your words out there, or can you make the discussion more approachable by just expressing (dis)approval via thumbs-up/down to another message?

Call to action

Again: let us know by Friday Feb 10 if you have concerns or suggestions for improvement over this approach.

Once we move over, please engage in the new repos, and help us encourage good behavior and an approachable site that is welcoming and navigable to old timers and newcomers alike.

Thanks!

Mads

@NickCraver
Copy link
Member

I just wanted to say thank you. It's a pleasure to be able to follow these on GitHub, but more so the handling of strong community feedback was just extremely well done here.

@AdamSpeight2008
Copy link
Contributor

I'm currently using the VBLang repo (on github) to suggest features for vb.net, and even submitted a proposal. So the split is working for me. I'd be happy with continue to use GitHub, or Discourse. Mailing list is off the card for me, as email is too distracting ooh shiny

@hishamhm
Copy link

hishamhm commented Feb 9, 2017

Also having discussion mixed in with work items seems to create noise for both. That can be mitigated through labeling, but only if someone sits at the front gate diligently labeling all incoming. The mail notification system is getting better but is still bewildering, and search is lacking.

Some projects have separate repos for language design discussion/proposals. Rust and Haskell are examples:

@MadsTorgersen
Copy link
Contributor Author

@hishamhm: Yes, we actually discussed two repos, but I forgot to include it above. Thanks for reminding me.

Two repos does the trick, but then we're back to separate sites. poorer cross-linking etc. Ideally I just want a "Discussion" tab next to "Issues" and "Pull Requests" in GitHub! (@haacked, are you listening in?)

On balance, the LDM preference is to stick with one site, but it's definitely something we'd love to hear arguments on.

@HaloFour
Copy link

HaloFour commented Feb 9, 2017

For people who just want a bird's eye view I wonder how much effort would be needed to script scanning the Issues based on tags and periodically update a page on the Wiki which can be linked from the Wiki. Could construct something like a series of kanban boards broken down by potential language revision (e.g 7.1, 8.0, future). Either way, some quick roadmap that doesn't require the user to rely on navigating the search features for themselves.

@chrisaut
Copy link

chrisaut commented Feb 9, 2017

Thank you for responding to the criticism.

I agree with your preference for Github first (not the Roslyn repo anymore) and discourse second.

I hope Github will eventually add some sort of separation of issues so that general discussion and formal proposal could be separated by users themselves rather than relying on admins to label things appropriately. Perhaps allowing users to apply certain tags by themselves would be enough.

Looking forward to continuing to stay informed and discuss the future of .NET.

@svick
Copy link
Contributor

svick commented Feb 9, 2017

While overall I agree that GitHub is the better choice here, I think it's worth pointing out that Discourse has better tools for maintaining discussions. For example, when a discussion gets unwieldy, moderators can move the related posts to a separate topic. So users wouldn't have to know when to start a new discussion, moderators could do it for them.

@jnm2
Copy link
Contributor

jnm2 commented Feb 9, 2017

While overall I agree that GitHub is the better choice here, I think it's worth pointing out that Discourse has better tools for maintaining discussions. For example, when a discussion gets unwieldy, moderators can move the related posts to a separate topic. So users wouldn't have to know when to start a new discussion, moderators could do it for them.

@haacked... open source maintainers worldwide would love this. Just sayin.

@DustinCampbell
Copy link
Member

Ideally I just want a "Discussion" tab next to "Issues" and "Pull Requests" in GitHub! (@haacked, are you listening in?)

The very thought puts tears in my eyes! 😄

@int19h
Copy link

int19h commented Feb 9, 2017

Why is there poorer cross-linking with separate repos? From my experience working with several related repos, GitHub is actually very good at handling cross-links. You can even close a bug in one repo by a commit in another repo (just use the full URL to the bug after "Fix" - it even prettifies the link in the description, so you see something like "Foo/Bar#123").

@DustinCampbell
Copy link
Member

To be fair, I don't think there's going to be a lot of fixing bugs in other repos from this one. 😄

@HaloFour
Copy link

HaloFour commented Feb 9, 2017

I'm torn. Discourse seems like the better medium specifically for discussions, however there is something to be said about having the discussion and the proposals in one place.

I think that just by moving the language design discussion out of the roslyn repo will have a massive impact on the ability to track issues. For people who prefer to track discussions by email it immediately lets them filter and organize the notification emails accordingly. I almost feel bad for the VB.NET discussion as I foresee at least an order of magnitude less traffic there, although many of the proposals would likely apply to both languages, at least conceptually. Is it really necessary to separate the two?

As for improvements to Github, non-exhaustive and in no particular order:

  1. Discussions tab
  2. Track an optional parent comment for each comment
    1. Web interface would display a Reply button for each comment which would open a new comment editor and establish that relationship
    2. Replying to an email notification about a comment would establish the association between the two comments
    3. Web interface would list how many replies each comment has
    4. Web interface could provide two options for viewing the comments on a discussion/issue, chronologically (as it is now) or threaded, where replies are displayed inline and nested under their parent comments.
  3. Better mailing list support
    1. Each repository automatically creates a set of email addresses to which new issues or discussions can be posted
  4. Versioning of issues/discussions/comments
    1. Can see that the issue/discussion/comment has been modified and view the version history
    2. Placeholder for deleted comments
    3. Perhaps setting to disable editing/deleting after a certain duration?

@hughbe
Copy link

hughbe commented Feb 9, 2017

It's good to see the mailing list flip-flop. I thought I'd mention a decision made by the Swift team today - they're moving to Discourse, from mailing lists

There has been a tremendous amount of participation on this thread, with some extremely thoughtful analysis of how the mailing list serves the community and the tradeoffs of moving to a forum, like Discourse.

I've been thinking about the points made on this thread as well as looking at the experimental Discourse setup that Nate Cook provided. While there are tradeoffs with moving swift-evolution to Discourse, I think the benefits outweigh the negatives.

After discussing this with the Core Team, the decision is to move swift-evolution and swift-users to Discourse. I will also bring it up for discussion on the -dev mailing lists to do the same there, so that we all are using consistent infrastructure.

No rollout plan has been established yet. People are busy, and there are a variety of logistics to figure out. My intent is to engage with a handful of people across the community on helping with the transition, including making sure we configure Discourse properly so we have the best experience for those who want to continue to use email. We also want to import the history of the mailing list as well so that we do not lose valuable conversation. As a rollout plan gets figured out it will get communicated.

I realize that many people aren't following this thread anymore, so I'll send out a separate email just so people don't miss the decision. Thank you all to EVERYONE who participated in this thread and expressed an opinion.

Ted

https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20170206/031655.html
https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20170206/031657.html

@orthoxerox
Copy link
Contributor

Either a separate repo or a Discourse forum will work for me. Thank you for listening to the (not always kind) pleas of the external community.

@ErikSchierboom
Copy link

Great to see you responding to the community feedback! While Discourse is arguably the better discussion forum, I think it still makes sense to just have the discussion here, on GitHub. That way, the proposals and discussions can easily link to each other. Having the language design/discussions be separate from the Roslyn project would greatly help in removing the clutter, so perhaps issues will not be as hard to find and track on GitHub as one might expect based on the current situation.

The best option I think would be to have two GitHub projects:

  1. One for discussion new features or features under development
  2. One for keeping track of the approved and completed language features

(Not) coincidentally, this is what F# already does, with one project for language discussions (https://github.com/fsharp/fslang-suggestions) and a separate one for the language design (https://github.com/fsharp/fslang-design). This setup has worked very well for F# and is something I think worth considering.

@iam3yal
Copy link

iam3yal commented Feb 9, 2017

Thank you so much for listening. ❤️

I don't really have much to say but for me GitHub is the way to go and with time, I'm sure the GitHub team will make it even better.

GitHub is the right starting point, again, at least in my opinion. :)

p.s. @MadsTorgersen, @gafter, @DustinCampbell, @CyrusNajmabadi I have one question though and I brought it up before, sometimes, I post IDE suggestions here (Roslyn repo) can I still do it?

@miloush
Copy link

miloush commented Feb 9, 2017

I agree with the GitHub choice. It also helps to ensure there is a push for improvement on their side. :)

@orthoxerox
Copy link
Contributor

orthoxerox commented Feb 9, 2017

@MadsTorgersen, @gafter, @DustinCampbell, @CyrusNajmabadi will you migrate existing language design issues yourselves, or do you prefer that we open new issues for features we are interested in?

@jpierson
Copy link

jpierson commented Feb 9, 2017

I've tried Discourse before a few months back and found it confusing and unpolished but I'd be willing to give another try and would prefer it over mailing lists. I think the most straight forward solution would be to stick to GitHub issues.

@DavidArno
Copy link

@MadsTorgersen,

Firstly, like others, I wish to thank you for listening to us and our sometimes (mainly in my case, I suspect) antagonistic views on the mailing list decision, and for acting on that feedback.

Secondly, given the two points:

  1. The majority of the community would like language proposals to stay on Github,
  2. Github doesn't currently have the tools needed to make this work as well as it could for the team or for many in the community,

What's the best way for us all to petition Github for better tools? Would you like us to individually contact them? Is it something you would prefer to take on yourself? Is there a way we could collectively "sign" a request to be sent to them? Or do you have something else in mind?

@jnm2
Copy link
Contributor

jnm2 commented Feb 9, 2017

I wonder if Discourse could be made to crosslink to and from GitHub. GitHub would have to open an API for this and Discourse would need an extension written.

@DavidArno
Copy link

@jnm2,

Are you volunteering to write that extension? 😈

@DustinCampbell
Copy link
Member

@eyalsk:

p.s. @MadsTorgersen, @gafter, @DustinCampbell, @CyrusNajmabadi I have one question though and I brought it up before, sometimes, I post IDE suggestions here (Roslyn repo) can I still do it?

Yes! This change is only to move C# and VB language design to a repo separate from Roslyn. The C#/VB compilers and IDEs will still live in the Roslyn repo. Nothing changes about that.

@svick
Copy link
Contributor

svick commented Feb 10, 2017

@aholmes

I envisage GitHub will fall on its face for discussing the design of C#.

There's nothing to envisage, GitHub has been used for that purposed for quite a while now. Even though the process is moving and changing, it's still GitHub issues. So I think you should be able to look at the old discussions to decide for yourself if GitHub is good enough for this.

@iam3yal
Copy link

iam3yal commented Feb 10, 2017

@aholmes

I feel GitHub is a poor choice for this specifically because of it's flat discussion model. It's difficult to even follow what folks are stating in this thread because it's just a long list of replies.

So you hate flat discussions and yet vote for Discourse? I don't recall they have an option to change the view but I could be wrong.

@MarkusAmshove
Copy link

From what I've seen from Discourse I really like it and thinks it is the best platform for this. Especially the browsing and mobile experience is far superior to github (for this kind of discussion).

@MadsTorgersen
Copy link
Contributor Author

As for where to do C# and VB language discussion in the future, we (the LDT) have been following the last couple of days' discussion here, and there have been a lot of great points made.

At the end of the day, there are two things that people seem to still fall in different camps on - the good news is that neither are terribly divisive issues; most people seem to be alright either way, even if they have preferences:

  1. GitHub or Discourse: Most are happy with either. There are preferences both ways, and arguments both ways are good. We'll stick with GitHub, and do what we can to mitigate the downsides, and hopefully it will in fact get better over time.

  2. Same or different repo: Both have advantages. We'll stay in one repo, (per language) so that discussions have better discoverability, and are collocated with the proposals, notes, etc. that they are about. This comes with a tax in the form of more diligent labelling, and we'll take that tax.

So: Discussion happens in the csharplang and vblang repos, as issues with a "Discussion" label. From this thread it seems that this will be ok for most people, and from the LDT side we're also comfortable with it.

I won't have time to implement the changes until Monday Feb 13. By then I'll circle back here one last time, inviting you all over to our new place(s)!

Thanks!

Mads

@jnm2
Copy link
Contributor

jnm2 commented Feb 11, 2017

That is perfect.

@scottdorman
Copy link

@MadsTorgersen

We'll stick with GitHub, and do what we can to mitigate the downsides, and hopefully it will in fact get better over time.

Specifically regarding the downsides, I know you've collected a lot of the feedback (essentially regarding having Discussions in GitHub that are different than/separate from Issues) and passed it along to @haacked, so this might be more of a question for him. Do you know if there is a public location (like a GitHub repo for GitHub) where this is being tracked (as an issue) that we can follow and/or add additional comments?

Discussion happens in the csharplang and vblang repos, as issues with a "Discussion" label. From this thread it seems that this will be ok for most people, and from the LDT side we're also comfortable with it.

There have already been a few proposals that @gafter and I have started talking about, but it was done in the context of the "Champion xyz" issue for the proposal. Should we table the discussion there and pick it up in a new issue? Also, should there be any sort of name/title convention for these discussion issues? (@haacked, I think this is where having the ability to relate issues to one another, besides just referencing it, would be nice.)

Would it make more sense that the proposals are GitHub projects instead? So each proposal is a project, which would (as far as I can tell) effectively give the proposal it's own "embedded" issues area?

@chrisaut
Copy link

I like the "project" idea. For those who haven't come across them before on GitHub, here's one from TypeScript: https://github.com/Microsoft/TypeScript/projects/4

@hughbe
Copy link

hughbe commented Feb 11, 2017

Good to hear. I'd add another feature to my GitHub bucket list - some way to move an issue across a repo. The number of times dotnet/corefx gets an issue that should be in dotnet/roslyn is high!

Here's hoping GitHub will focus on the features you mentioned - time better spent than making the navigation bar black!

@alrz
Copy link
Member

alrz commented Feb 11, 2017

Along with cross-repo issue export, it could be an option to convert an "issue" to "discussion" when we have proper support for discussions. :D

@DavidArno
Copy link

@eyalsk,

I think that it's fine for people to criticise them for their decisions and disagree with them but in my opinion, distrust doesn't have a place here because I think that once a person reaches this point then it's useless for him/her to be here.

I fully understand your position and confess that I find your, and @jnm2's, boundless optimism a pleasant balance to my own cynicism. And the way in which the team have accepted the community's wishes here is cause for hope. I remain sceptical though: that's just the way I am 😊

@jnm2
Copy link
Contributor

jnm2 commented Feb 11, 2017

boundless optimism

Hehehe... it's more specific than that. It actually has a name. Hanlon's Razor. I don't see it as optimism- I had no idea if the team would in fact do what y'all thought was the right thing, or whether we were right- I see it as making an effort to understand what the situation looks like from the opposite point of view.

@HaloFour
Copy link

@MadsTorgersen

I'm ecstatic about the reversal. I'm a little surprised that you guys are sticking with Github, but I do think that it's great to have everything on one platform. That meeting with @haacked must have gone really well. Hopefully Github can evolve to meet our needs.

@vbcodec
Copy link

vbcodec commented Feb 11, 2017

@HaloFour
That's called 'developing in the open', democracy wins :)
But for lang development @gafter and @MadsTorgersen will post their proposals, and any community objections will be corrected by @CyrusNajmabadi . That's well established pattern :)

@iam3yal
Copy link

iam3yal commented Feb 11, 2017

@vbcodec What's your point? :)

@HaloFour
Copy link

@vbcodec

There's a big difference between "open" and "democratic". It's never been implied that the evolution of the C# language would be a democracy. We get to watch the process, make suggestions and voice our opinions, but it's still the language team which makes the final call. I don't have a problem with this. I might disagree with some of their decisions and prioritization, and I certainly make my view known, but I have very little expectation that the team will reverse their decisions based on it. Of course I'm certainly thrilled when the voice of the community helps to influence the design team in their decision making processes.

@vbcodec
Copy link

vbcodec commented Feb 11, 2017

@eyalsk
Just replied to @HaloFour 'little surprised that you guys are sticking with Github', that decision was made by community and not @MadsTorgersen himself. If fact he realized that he rushed with his decision, before asking community for their preference, and with this post gave us that chance.

As for lang development team have all rights for their dictatorship (thankfully transparent), in the end they take all responsibility in front of their management and users of languages.
Thing become less clear when they post design notes / proposals aimed for discussion (as I think), and then reject result of these discussion with 'thanks for feedback, but we will stay with original plans and won't change anything'. Surely current model of interaction team<>community is flawed, and leads to friction and misunderstandings.

@dsaf
Copy link

dsaf commented Feb 11, 2017

Actually it looks exactly like a democracy with all it's advantages and disadvantages. It's just most people are "voting" outside of GitHub.

@scottdorman
Copy link

@MadsTorgersen While you're gathering feedback to send to @haacked, one thing that's extremely annoying is that sorting issues isn't persistent. (This goes to the ability to always keep issues that have been updated floating to the top of the list by sorting them "Recently updated".) Every time I browse to the Issues page of a repo, I have to change the sort option. That's a major pain. I want to be able to set it once and have it remember that setting. (I'd love for it to be a global setting, so I only need to set it once and it applies to any repo I browse, but I'd settle for it just remembering for each repo.)

@alrz
Copy link
Member

alrz commented Feb 12, 2017

You could bookmark the page with predefined filters. But I agree it'd be nice if "Discussions" tab sort by activity by default as it bumps up new/updated threads to the top.

@scottdorman
Copy link

@alrz Yes, but then I have a ton of bookmarks for each of the repositories, it only applies to those repos I've bookmarked and I have to remember to use the bookmark each time. It would be better for GitHub to simply remember my last sort choice and always use that.

@scottdorman
Copy link

Having it remember my setting would be even more useful on mobile where there is no option to sort. (As would autocomplete for @ mentions and a markdown preview.) Hey @haacked, you're tracking all these requests and getting it to right people, right? (The GitHub backlog isn't public, so we can't track this ourselves.)

@iam3yal
Copy link

iam3yal commented Feb 13, 2017

@vbcodec I'm sorry that you feel this way but the majority of people voted for GitHub and I'm pretty sure that the design team did their research too and concluded that GitHub is the right platform for them.

I think that changes and conclusions need to be based on reason but from what I can grasp you expect them to do it just because the community said so but this can't really work like that.

@vbcodec
Copy link

vbcodec commented Feb 13, 2017

@eyalsk

expect them to do it just because the community said

Mainly, yes. While community isn't language designers nor compiler writers, most peoples participating here are experienced programmers, and they care about general experience provided by language. In case when most Giyhub community vote against changes, then team should hold on, and ask larger community to vote on these changes. But I don't think this is happen.

Staying on Github is probably discouraging most of these millions of VB/C# programmers, as they probably think 'meh, this is probably about compiler construction, don't care about it'. This way community is very small.

@iam3yal
Copy link

iam3yal commented Feb 13, 2017

@vbcodec

Mainly, yes. While community isn't language designers nor compiler writers, most peoples participating here are experienced programmers, and they care about general experience provided by language.

More importantly we aren't the designers of C#, we are privileged to contribute, we are privileged to take part in this journey with them.

I honestly believe that they appreciate us for being here and I think that they take our feedback seriously but at the end they have to make decisions and we can't expect them to lean towards the community just because they like us, I mean this is not how you make rational decisions.

In case when most Giyhub community vote against changes, then team should hold on, and ask larger community to vote on these changes.

No, they have schedules, it doesn't and can't work like this, at the end of the day, Microsoft is a company and they have a business to run.

Staying on Github is probably discouraging most of these millions of VB/C# programmers, as they probably think 'meh, this is probably about compiler construction, don't care about it'. This way community is very small.

Why are you making these assumptions?

For many and I mean most programmers "writing code" is just a mean to an end, nothing more. (ask the IT guys... j/k 😆) and there's this tiny fraction that really love the science behind it.

Some people just like to read stuff and don't post anything but they are still here and finally what makes you think that moving to Discourse will make more people participate? I really doubt it. :)

@scottdorman
Copy link

At the end of the day, we aren't the ones responsible for the actual language design and aren't answerable to Microsoft for it.

By making the language spec available on GitHub, the team has opened it up for more direct and public discussion as well as the ability for the community to offer corrections and improvements as necessary. By also making the language design process visible outside of the language design team, we get to participate in that process by offering opinions and suggestions in a public forum.

The team has never been under any obligation to do either of these actions (making the spec and the language design process openly accessible) nor have they been under any obligation to "do as we say" and implement features that the community asks for (or not implement those we say we don't want). This community isn't the only group of people (customers from Microsoft's point of view) who use the language, need features, etc.

Who are we to say a feature should or shouldn't be implemented without knowing the full rationale behind why it was requested, how much technical effort it will take, what other features may be dependent upon it (or that it depends upon), and what the timeline should be?

I think the community that's here on GitHub (either coming from the Roslyn repo or new to the language specific ones) will be vocal and, ultimately, won't care where that discussion takes place, because we're the ones who are passionate about what features get in to the language, what they look like, and what other features we might want that the design team hasn't thought about yet.

I can say from participating in design meetings and discussions, that the team does appreciate our feedback on features and does respond to it and can be influenced by it. That being said, there's a lot more to it than just listening to what we have to say about a feature and that they are the ones, ultimately, who are responsible for the design of language. We get to participate, to a degree, in that process, which is more than some other languages allow.

No matter what decision is the final one (GitHub, Discourse, mailing list, etc.), some people will be happy with it and others won't. No decision is going to make everyone happy with the outcome. The team made a decision (use a mailing list) and then realized (because of overwhelming feedback) that it might not have been the right one and are responding to that feedback by considering other options. All of the feedback here has been taken in to account, options weighed and measured, and a more informed decision has been made. Not everyone is going to agree with that choice (and @MadsTorgersen even said as much) but it's the one that the team feels makes the most sense.

@MadsTorgersen
Copy link
Contributor Author

Alright, folks. I've updated the READMEs, labels etc. over in dotnet/csharplang to reflect the use of issues there for discussion.

Any further discussion on how this works, let's have it over there! 😃

I haven't touched dotnet/vblang yet. Let's run for a couple of days in C# and get the kinks worked out. But then we'd appreciate any help we can get in rolling this out on the VB side.

Thanks again! See you on the other side! So long, and thanks for all the fish!

Mads

@svick
Copy link
Contributor

svick commented Feb 14, 2017

@MadsTorgersen Shouldn't the Roslyn README also link to csharplang and vblang?

@MadsTorgersen
Copy link
Contributor Author

@svick Great idea, do you feel like contributing a sentence or two there? 😀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests