dotnet / roslyn

The Roslyn .NET compiler provides C# and Visual Basic languages with rich code analysis APIs.
https://docs.microsoft.com/dotnet/csharp/roslyn-sdk/
MIT License
18.88k stars 4.01k forks source link

Language Design Process Moving (again) #16905

Closed MgSam closed 7 years ago

MgSam commented 7 years ago

The language team has decided to (again) move the language design process. Mads mentions this offhand in his recent blog post about the language direction.

C# language discussions will now happen on a mailing list and design notes will be posted in a new repo.

VB language discussions will also happen on a mailing list and design notes will be posted in a new repo.

As, to my knowledge, the community was not given any opportunity to voice input on this, I'm opening this issue so that those of us that have participated in language discussions are aware of the change and can provide any feedback on the process.

HaloFour commented 7 years ago

This has come up before. I kind of like things being in one place but the issues in this repo has become difficult to navigate.

The blog post isn't resolving for me at the moment. What exactly are the mailing lists for? Would proposals/comments go there vs. the Github repo?

alrz commented 7 years ago

What exactly are the mailing lists good for? Why couldn't we just use issues on those repos? I don't understand the philosophy behind mailing lists but just that it would drown the discussion in the darkness.

MgSam commented 7 years ago

@HaloFour I believe that's the intention, yes.

I have a number of feelings about this, some of which I already shared on the blog post but will repeat here for completeness.

I've asked this before but I still don't have an answer- who is in charge of the language team? Is there even anyone at Microsoft that can answer this question? This team is literally run like a bunch of college kids working on a hobby project in their spare time. There is absolutely zero accountability for anything.

HaloFour commented 7 years ago

Mailing lists are an absolutely abysmal idea for language suggestions. That decision will single-handedly murder community participation in language design outside of arguing over the vetted design notes. New ideas will die in the oubliette, drowned out in the noise. I simply can't fathom such a decision.

jnm2 commented 7 years ago

I like the new repo. A ton. GitHub does not allow filtering notifications based on tags, so my options have been 1) miss out on design notes or 2) drink from a firehose.

I concur with the others from personal experience that mailing lists == pain and will exclude all but the most dedicated (for one reason or another).

MgSam commented 7 years ago

@HaloFour Maybe that's the idea? @gafter and @CyrusNajmabadi are the only ones that seem interested in engaging with the community.

MgSam commented 7 years ago

@jnm2 That's a great point but if you don't use generalized notifications at all (I do not), it makes it literally impossible to follow what's happening across the MS ecosystem when its split into tons of repos.

jnm2 commented 7 years ago

@MgSam I'm really not sure how organizing into separate repos makes it any harder to follow. This goes cross-repo, for example: https://github.com/issues?utf8=%E2%9C%93&q=label%3A%22Design+Notes%22+label%3ALanguage-C%23

CyrusNajmabadi commented 7 years ago

I'd like to live in a world where people give things a try before coming to a conclusion on things :)

If mailing lists don't work well, we'll change. But we should not be unwilling to try new things to see if they can help us out. Many of our colleagues (both at MS and at other institutions) use mailing lists for design, and find them a attractive and valuable solution. We'd like to try it out ourselves.

--

It's worth noting, (to me at least), that a lot of language design used to happen through email. After all, that's what we had prior to trying out github-for-everything. We successfully shipped many versions of C# using this model. So i don't see any reason why, a-priori, an email system could not be an effective mechanism to tie into the design process.

alrz commented 7 years ago

I like how Rust did this, they take proposals as PRs which have to follow a template. PR comments are used to discuss the completeness of the proposal itself (often from core team members), and there is always a "tracking issue" for community to discuss the feature. There is a mailing list but I think that is used for core team discussions in public. EDIT: Nope, it's been shut down 2 years ago.

AdamSpeight2008 commented 7 years ago

Not a fan of the mailing list, I agree with @HaloFour, using the repos for proposal in their respective language. So there if you're interested in a particular language and not the other, you can follow just that repo. If the feature is applicable to both, the proposal can be raised and link back to language repos.

@MgSam Where's Lucian Wischik (@ljw1004) he seemed to also engage the community.

It's a shame that the implementations can not also be split out from the Roslyn repo. So it is focused on the common aspects.

MgSam commented 7 years ago

@jnm2

It relies on them:

There have been cases where one or both of those things don't happen. Sometimes language decisions have been made in threads not tagged design notes.

HaloFour commented 7 years ago

@CyrusNajmabadi

I'd like to live in a world where people give things a try before coming to a conclusion on things :)

Mailing lists aren't new to any of us. We know how awful they are.

It's worth noting, (to me at least), that a lot of language design used to happen through email.

Not with the general public.

So, who exactly is responsible for diving through all of the open language feature requests here on Github and posting them into the mailing list?

AdamSpeight2008 commented 7 years ago

@CyrusNajmabadi You can still reply to things on github via email.

CyrusNajmabadi commented 7 years ago

Mailing lists aren't new to any of us. We know how awful they are.

That's your opinion. It is, clearly, not universally shared.

MgSam commented 7 years ago

@CyrusNajmabadi Those successful releases were all before C# was open source, no? And the decision was made with zero community input. And I'd like to live in a world where decisions are discussed before they are made, not after.

I understand as a Microsoftie there is an instinctive desire to imitate everything Apple does, but maybe that's not always the best decision? :)

CyrusNajmabadi commented 7 years ago

@CyrusNajmabadi You can still reply to things on github via email.

I have never seen that successfully work. Especially when you care about things like having a threaded conversation.

CyrusNajmabadi commented 7 years ago

So, who exactly is responsible for diving through all of the open language feature requests here on Github and posting them into the mailing list?

Great question! Going to go get a crisp answer for that.

CyrusNajmabadi commented 7 years ago

@CyrusNajmabadi Those successful releases were all before C# was open source, no?

Yes. But i don't see why being open source makes an email-list a non-viable system for communication.

MgSam commented 7 years ago

@AdamSpeight2008 You're right Lucian does sometimes engage, and Matt Warren does as well.

Still, most of the team does not. Other members vary between complete indifference and outright hostility to the community.

MgSam commented 7 years ago

@CyrusNajmabadi

Yes. But i don't see why being open source makes an email-list a non-viable system for communication.

For the reasons people have listed- none of which you actually responded to. :)

Great question! Going to go get a crisp answer for that.

I am extremely dubious that anything will be done, as when the move from CodePlex to Github happened there were also vague promises of migrating over the issues, none of which actually occurred. Even after all this time people are still reviving old issues that were orphaned in CodePlex.

CyrusNajmabadi commented 7 years ago

For the reasons people have listed- none of which you actually responded to. :)

I responded by pointing out that we've had a very successful history using email as a communications medium. As such, the doom and gloom response to it aren't resonating with me. I acknowledge that we were successful with this system in an age when we weren't open source. But, as i mentioned already, i see nothing about being open-source that somehow makes email suddenly become non-viable.

MgSam commented 7 years ago

Isn't that a little disingenuous? When it was closed source, the group of participants was Microsoft-only, far smaller, and you all saw/communicated every single day with each other as a matter of course, no? So going from that to a system where dozens of people, mostly strangers, from around the world are entirely reliant on an email list to communicate seems like a big difference.

jnm2 commented 7 years ago

@CyrusNajmabadi The Git and WiX mailing lists are finicky about plain vs html and have design flaws or actual bugs in the subscription and unsubscription processes. I shouldn't have to be subscribed to see stuff. I can't search it like I can with GitHub. Rather than using a smoothly designed mobile site, I'll have to work in my mobile email client and I'll have to continually work against the way the app was designed to work if for example you don't support HTML emails. I'll have to be careful with reply and reply all. I'll have to set up email filters and deal with space limits. I'll have to think about spam exclusions. So much headache and overhead.

I won't have Markdown or syntax-highlighted code blocks. I won't be able to fix typos or make clarifications. I won't be able to link to points in the conversation, including on other sites or in code comments. I won't be able to +1 without sending everyone an email.

Google lists aren't as bad, but at the end of the day it feels like you're hacking email to fit a purpose which is better served by a more idiomatic medium. And you can't argue that this is not unfriendly to outsiders.

AdamSpeight2008 commented 7 years ago

Or raise an issue with Github to implement a discussion section.

MadsTorgersen commented 7 years ago

@MgSam: Who's in charge of the "language team"? That's part of the problem we are addressing with this move. The Roslyn repo represents too many different decision processes.

Here's what I wrote in my response on the blog:

As for the mailing list, can you just please give it a chance? Discussions have been overwhelming and hard to follow on GitHub, as they easily run to hundreds of unthreaded responses. Let's try this other thing, and if things really don't work out, we'll just look at it again. The process can (continue to) evolve.

AdamSpeight2008 commented 7 years ago

@MadsTorgersen When you say "discussion" is that just the LDT Members or does that include the wider open community?

MadsTorgersen commented 7 years ago

@HaloFour on moving issues over: Let's aim for a soft transition:

MadsTorgersen commented 7 years ago

@AdamSpeight2008: By "discussion" I mean the whole community. For each language:

It is my hope and belief that this separation helps the many casual visitors make sense of what's going on, without having to sift through the details of the more involved day-to-day discussions of a smaller but more highly engaged part of the community. Everyone wins. (That's the plan anyway 😀)

MadsTorgersen commented 7 years ago

For us working on the language every day, it has been practically impossible to use the Roslyn repo as our primary planning and tracking tool. I really want to get to a point where that's possible; where the whole process can actually be done in the open.

HaloFour commented 7 years ago

@MadsTorgersen

If you want to continue a discussion that is already ongoing in a Roslyn issue, simply mail to the list and link the discussion.

And for proposals that don't necessarily need more discussion? Those that have been sitting in Backlog or Ready for the last year or so? Are they going to be ported to the new repo, or do we have to spam the mailing list with a ping to start the process all over again? Seems like a cheap move to completely wipe the slate. Why would anyone want to post a suggestion knowing that after every version release the Roslyn team just completely cleans house?

It is my hope and belief that this separation helps the many casual visitors make sense of what's going on

You could have done that here by better curating the proposals and keeping the Wiki updated. The Issues section is intended to be a constantly moving target. But at least it's an easily searchable moving target. And one where I can subscribe to specific topics rather than having to take the firehose and pour it at my email client.

bbarry commented 7 years ago

I like the new repo a lot, hopefully language versions eventually get tagged/branched there so we can link to specific bits like "C#6 delegate-declarations" (where that link would go to a tag instead of to master). If this was adopted and encouraged it could result in better bug reports and a tighter integration compared to the listing of section number in issues today where users need to open the spec in word from their installation and find the section.

I dislike the mailing list idea, particularly because I cannot use my work email at home or my home email at work, in addition to the rest of the reasons listed by others above.

AdamSpeight2008 commented 7 years ago

@MadsTorgersen Makes it less sludgy and more grey. A big issue with a mailing list is spam, an scrapping of email addresses, every I've previous subscribe has been hit. Personally I prefer forums as they are designed to track discussions, some support markdown in the editor and even LateX. My that could be a better route to take. Yes it probably requires another registration and sign up. See (dreamincode.net)

AdamSpeight2008 commented 7 years ago

Does Github some roles? Eg the ability delegate the ability to edit to wiki to specified contributors? or add tags? What does the Projects section do? Can it be utilised for our goal and purpose. Edit: Remove the yorkshire accented "are"

HaloFour commented 7 years ago

From a nice list of taggable, searchable and formattable proposals ... to this.

It's literally a step 40 years into the past.

This is so embarrassing and infuriating that I am at a loss for words. I really just don't want to participate anymore.

CyrusNajmabadi commented 7 years ago

We're trying out something new :) If it turns out to be better, and address several of the problems we've been having, without introducing significantly worse issues, we'll likely keep it. If it doesn't turn out to be better, we'll either roll back or try something else.

Either way we'll learn valuable information. And through learning we can constantly be improving things. :)

AdamSpeight2008 commented 7 years ago

Codeplex also had a district discussion section, separate from Issues. @HaloFour I agree. It's like the curmudgeonly stubborn old guard asses got their way this time.

DavidArno commented 7 years ago

We're trying out something new :)

No, you are trying something old. Mailing lists are horrible, horrible, horrible. This is an even worse decision than allowing scope leakage. 😢

BreyerW commented 7 years ago

Yeah when i saw what @HaloFour posted my eyes literally started to bleed... unless i closed link and then i was immediately relieved. So much pain for such a short time. 😢

Maybe this is good for internal talks from language team but im very doubious about it being good for wider community.

As for new, separate repo i generally like that; just that i think similar result could be achieved by reorganizing existing repo. But this idea is still much better than mailing so im fine with this.

HaloFour commented 7 years ago

No, you are trying something old.

I was just about to post that.

Old is an understatement. And to claim it's new (from a process perspective) is criminally dishonest. Mailing lists are a known quantity; they lack any of the useful features that make collaborative discussion possible.

I get it, the team doesn't want to deal with the proposals from the peanut gallery. They don't want it slopping up their repos and distracting from their championed proposals. They don't want to have to dig through and categorize the constant stream of a few language suggestions every week or so. Fine. How about this. How about I open a new Github repo and you endorse that as the location for language discussion? Then I and other community members can categorize the proposals and offer them to the official language community for consideration?

CyrusNajmabadi commented 7 years ago

@HaloFour The email list is open for all. We welcome your participation there (as well as everyone else here and anyone else who wants to converse there). :)

Proposals will follow the process laid out at: https://github.com/dotnet/csharplang

We think that that process will actually be more conducive to effectively moving good ideas along the way to actually making it into the language.

Let's actually try this out to see how well this works. As mentioned already, we have had a very good track record ourselves with using mail as this sort of medium. And other peers we have in the industry have felt similarly. If it doesn't actually provide us with the benefits we hope to see, then we'll be happy to adjust accordingly.

But, one of the best ways to actually determine that is to actually try it out first hand. Certainly if things are as dire as some make it out to be, we'll see that immediately and can take commensurate action. But i'd much rather the actions be borne out of experience. Thanks! :)

jnm2 commented 7 years ago

Notice that no one has answered any of the objections I raised which deserve consideration when choosing a new platform. That indicates that community is no longer a real priority.

If they don't have reasonable answers for these things and for @HaloFour's points, it's not likely that expressing outrage will accomplish anything except make them more reluctant to listen. I know it was meant as a joke but @HaloFour's idea of a community-moderated repo sounds appealing.

CyrusNajmabadi commented 7 years ago

@jnm2 You literally only posted that 2 hours ago :-D I'm sorry that i've been unable to address every single point brought up. I'm very focused on trying to ship the actual release of VS2017 and that's taking a ton of my attention.

jnm2 commented 7 years ago

@CyrusNajmabadi

You literally only posted that 2 hours ago :-D

After which you and Mads replied to everything except it, presenting the conclusion that you've moved past it.

HaloFour commented 7 years ago

@CyrusNajmabadi

We think that that process will actually be more conducive to effectively moving good ideas along the way to actually making it into the language.

Based on what? The notion that it's much easier to lose a thread in a mailing list than on a github repo? The only thing it's more conducive to is ignoring proposals.

@jnm2

I know it was meant as a joke but @HaloFour's idea of a community-moderated repo sounds appealing.

No, it was not meant as a joke. Moving to mailing lists, that's a joke. I am dead serious about a community-moderated repo.

CyrusNajmabadi commented 7 years ago

After which you and Mads replied to everything except it

Threaded discussions would make this easier ;-)

CyrusNajmabadi commented 7 years ago

Based on what?

As mentioned before, our experience with mailing lists. If that turns out to be wrong, and does not work well in our open-source system, then we're open to change. :)

--

At this point though, i've said my piece for the day. I would like to try things out and make an informed decision about it based on what we actually see. I think improving how we operate will be a continual process that we'll always be working on improving. Thanks!

HaloFour commented 7 years ago

@CyrusNajmabadi

So after C# 8.0 we'll migrate to yet another system and every idea posted there will be tossed into the trash? That's about the status quo.

jnm2 commented 7 years ago

@CyrusNajmabadi

Threaded discussions would make this easier ;-)

Not having threads is not what is causing you to avoid my questions at this point. ;-)

CyrusNajmabadi commented 7 years ago

I honestly didn't see it. :)

At this point though, i'm not sure what you're looking for from me. I've given my thoughts on the matter and my hope that this helps us move to a better state than we're at today. I've also explained my willingness to continually be open to further changes in the future. At this point i'm not sure how i would add additional value to this discussion. If new stuff comes up that you think i'd be useful to weigh in on, let me know!