how to create strawman proposals?
On Jun 2, 2011, at 4:16 PM, Kyle Simpson wrote:
Is it available for general public members to register for an account to create strawman proposals for ES?
No, it's an Ecma TC39 resource. Ecma needs IPR handoff per its patent covenant so this can't be a free-for-all, for better or worse.
In particular, I'd like to create two proposals for some future discussion:
- a "n" (or "c") flag for regexp's, that reverses the default capturing behavior of ( ) to be non-capturing by default, and thus (?: ) to be capturing.
Is there any precedent for this in other perl-based regexp packages?
- a "@>" (or something like it) operator for what I call statement-localized continuations
We've been over continuations at length on this list. There is a harmony:generators proposal already in ES.next, and a deferred functions strawman as well. Dave Herman's shallow continuations strawman was intentionally deferred.
Is it available for general public members to register for an account to create strawman proposals for ES?
No, it's an Ecma TC39 resource. Ecma needs IPR handoff per its patent covenant so this can't be a free-for-all, for better or worse.
So if a non-TC39 member wants to create suggestions and proposals and ideas for the community to discuss, am I to understand that not only this list, but also the wiki that this list so frequently references, are not really intended for that?
There've been several times on this list in various discussion threads where it was clear that only official-wiki-based strawmans were things people wanted to seriously discuss. And now to find out that such strawmans cannot even be authored by any of us non-committee members, it seems like it further reinforces the desire that there be some other forum for the "Rest of us"T to use to talk about our ideas, not just the ideas of the committee members.
What's the best way for such informal and non-committee-sponsored discussions to proceed?
In particular, I'd like to create two proposals for some future discussion:
- a "n" (or "c") flag for regexp's, that reverses the default capturing behavior of ( ) to be non-capturing by default, and thus (?: ) to be capturing.
Is there any precedent for this in other perl-based regexp packages?
Perl6 regular expressions have introduced [ ] as a non-capturing grouping operator (instead of (?: ) operator). They moved character classes to <[ ]>.
I'm not saying I like that decision (or dislike it), but it's definitely nice (and prettier code) to have a single character (on either side, of course) operator for the common task (highly common to me anyway) of non-capturing grouping.
But more to the point of my intended proposal, .NET has the /n flag for turning off capturing for ( ) -- I'm not sure if it then turns on capturing for (?: ) or not, someone more familiar with .NET would have to inform here.
In any case, I write far more (like probably 98% vs. 2%) regular expressions where I want non-capturing grouping, and it's onerous (and ugly) to always add the ?: to those grouping operators, if I could just use a single flag to tell the entire regex that by default I don't care about it capturing (unless I explicitly opt-in to it with ?: or something like that).
There was a time when I felt like the default should reverse itself, and that ( ) should default to non-capturing. I explored those ideas in blog.getify.com/2010/11/to-capture-or-not
But it's quite obvious that this is an impossible proposition, as it would break probably ~100% of existing regex content. So, it seems (and was the main conclusion of that article and comment thread) like a simple next-best solution is to make it opt-in with a flag.
Doing so shouldn't have any backwards-breaking functionality, and should, for the most part*, only cause unnecessary (and thus sub-optimal performance) capturing for older regex engines that ignored the /n flag.
*There's two cases I can think of where an older regex engine ignoring the /n flag and still capturing would cause unexpected results (besides the performance slowdown of unnecessary capturing):
- \xx back-references would be incorrectly numbered
- str.split() behaves a bit differently (includes more results) if there are capturing groups in the regex it splits on
Both those incompatibilities seem manageable and not terribly risky, given that such a feature would of course have to be introduced into some opt-in version of ES like ES.Harmony, and authors just simply shouldn't author such regexes if they intend for that code to run in ES5 and below.
- a "@>" (or something like it) operator for what I call statement-localized continuations
We've been over continuations at length on this list. There is a harmony:generators proposal already in ES.next, and a deferred functions strawman as well. Dave Herman's shallow continuations strawman was intentionally deferred.
I am well aware of the discussions on this list about continuations, as well as the existing strawmans. I am also well aware that my views on that topic aren't particularly popular. But nevertheless, I still have issues with the existing proposals/ideas, and I'd like a chance to advance some discussion about my ideas as an alternative. I thought that creating a more structured/formalized proposal would be a decent next-step. I'm also working on some way to prototype my idea in some JS engine.
On Jun 2, 2011, at 5:56 PM, Kyle Simpson wrote:
Is it available for general public members to register for an account to create strawman proposals for ES?
No, it's an Ecma TC39 resource. Ecma needs IPR handoff per its patent covenant so this can't be a free-for-all, for better or worse.
So if a non-TC39 member wants to create suggestions and proposals and ideas for the community to discuss, am I to understand that not only this list, but also the wiki that this list so frequently references, are not really intended for that?
I didn't say anything about this list. Discussion on all kinds of ideas goes on here. (Yes, people including me get grumpy about overciting, filibustering, padding with rehashed motivation, etc. -- so what?)
So, dismount that high horse, please.
There've been several times on this list in various discussion threads where it was clear that only official-wiki-based strawmans were things people wanted to seriously discuss. And now to find out that such strawmans cannot even be authored by any of us non-committee members, it seems like it further reinforces the desire that there be some other forum for the "Rest of us"T to use to talk about our ideas, not just the ideas of the committee members.
Yeah, pay-to-play standards bodies suck, news at eleven. This applies to just about all the big ones. Ecma is far better than some, and TC39 is healthier by many measures than most standards bodies I've seen and participated in.
In theory we could use an open ended contract among arbitrary people, a kind of Creative Commons for standardization, with patent protocols and so on, to create standards. I've talked about this with Mozilla and open source types, a few even lawyers. Two quick thoughts:
(a) Such a standards framework is not going to happen quickly, not with big companies all buying in before the standard goes anywhere.
(b) You'd still end up with winner-take-Pareto-80% effects favoring w3.org or a replacement. The winner would not tolerate uncurated and wide-open wikis, endless discussions, etc.
My best model for standardization is de-facto, github.com in fact. So please don't envy us Ecmanauts. At best we are codifying de-facto standards.
What's the best way for such informal and non-committee-sponsored discussions to proceed?
Talk here. What is stopping you?
You want a wiki instance, there are many.
Now on to discussion:
Is there any precedent for this in other perl-based regexp packages?
Perl6 regular expressions have introduced [ ] as a non-capturing grouping operator (instead of (?: ) operator). They moved character classes to <[ ]>. I'm not saying I like that decision (or dislike it), but it's definitely nice (and prettier code) to have a single character (on either side, of course) operator for the common task (highly common to me anyway) of non-capturing grouping.
Yes, it's great Perl 6 broken compatibility. Wish we could. Not likely, at this point.
But more to the point of my intended proposal, .NET has the /n flag for turning off capturing for ( ) -- I'm not sure if it then turns on capturing for (?: ) or not, someone more familiar with .NET would have to inform here.
That's interesting. I found
msdn.microsoft.com/en-us/library/yd1hzczs.aspx, msdn.microsoft.com/en-us/library/yd1hzczs.aspx#Explicit
There is no sign of non-capturing syntax (?:...) here at all. This n flag seems a bit different from what you propose.
I agree with you (and with lwall, who wrote about it when designing Perl 6) that the default is wrong here. An n flag or similar to address this is worth discussing. So let's do that.
As with all things RegExp, I wonder what Steve thinks.
- a "@>" (or something like it) operator for what I call statement-localized continuations
We've been over continuations at length on this list. There is a harmony:generators proposal already in ES.next, and a deferred functions strawman as well. Dave Herman's shallow continuations strawman was intentionally deferred.
I am well aware of the discussions on this list about continuations, as well as the existing strawmans. I am also well aware that my views on that topic aren't particularly popular.
So why in the world do you think jamming your views into wiki.ecmascript.org is going to do any good?
On 06/02/11 17:56, Kyle Simpson wrote:
Is it available for general public members to register for an account to create strawman proposals for ES?
No, it's an Ecma TC39 resource. Ecma needs IPR handoff per its patent covenant so this can't be a free-for-all, for better or worse.
So if a non-TC39 member wants to create suggestions and proposals and ideas for the community to discuss, am I to understand that not only this list, but also the wiki that this list so frequently references, are not really intended for that?
There've been several times on this list in various discussion threads where it was clear that only official-wiki-based strawmans were things people wanted to seriously discuss. And now to find out that such strawmans cannot even be authored by any of us non-committee members, it seems like it further reinforces the desire that there be some other forum for the "Rest of us"T to use to talk about our ideas, not just the ideas of the committee members.
What's the best way for such informal and non-committee-sponsored discussions to proceed?
You can either become an ECMA member or convince one of the existing members to advance your proposal. Having spent far more time than I would have liked on process discussions at the ECMA General Assembly level, there are good legal reasons for doing things this way. IPR issues do come up and standards organizations have been burned by them.
Waldemar
So if a non-TC39 member wants to create suggestions and proposals and ideas for the community to discuss, am I to understand that not only this list, but also the wiki that this list so frequently references, are not really intended for that?
I didn't say anything about this list. Discussion on all kinds of ideas goes on here. (Yes, people including me get grumpy about overciting, filibustering, padding with rehashed motivation, etc. -- so what?)
With all due respect, it's a somewhat common occurrence on this list when someone brings up an idea that bears even a remote resemblance to an existing official strawman, the instinctual and rapid triage is to shoehorn the discussion into the strawman and quickly move on.
That is of course perfectly fine to run this list that way, but I was asking if there was a place (or could there be a place?) where ideas could be discussed in a less formal setting without the need for formalized strawman proposals, and certainly without the urge to immediately bucket each idea or question into an existing proposal, or dismiss a topic as having already been hashed out long ago.
So, dismount that high horse, please.
I don't see any high horse around here. I am coming at this from quite the opposite perspective, of being just the common folk outsider looking to get a leg up. I'd really prefer it if there could be a bit more benefit of the doubt around here. Do these types of discussions really have to so regularly devolve into this combative tone?
There've been several times on this list in various discussion threads where it was clear that only official-wiki-based strawmans were things people wanted to seriously discuss. And now to find out that such strawmans cannot even be authored by any of us non-committee members, it seems like it further reinforces the desire that there be some other forum for the "Rest of us"T to use to talk about our ideas, not just the ideas of the committee members.
Yeah, pay-to-play standards bodies suck, news at eleven. This applies to just about all the big ones. Ecma is far better than some, and TC39 is healthier by many measures than most standards bodies I've seen and participated in.
Your sarcasm suggests that you have taken my observations about the tone and demeanor of this list as personal (or organizational) attacks -- that definitely wasn't intended at all. I'm quite aware of how this list works, and I have my own opinions about the pluses and minuses. But I think it's fine that this list and TC39 operate as they do, and I'm sure it's for good reason.
I wasn't suggesting that this list or TC39 should change how they operate. I'm merely pointing out that a regular source of frustration on this list comes from people like me wanting to discuss ES related topics in a forum that has more relaxed rules and standards than this one has.
Why is it that asking for a separate and less formal place to discuss ES issues and ideas comes off as threatening or criticizing? It seems to me like it'd be useful to have such an informal forum where ideas can percolate until they solidify and are ready to be elevated to a more formal discussion process such as the ones that most regulars on this list seem to prefer.
Talk here. What is stopping you?
For one, the perception that if I'm not discussing an already accepted strawman sponsored by an existing TC39 member, then the tolerance level here for such discussion and informality is somewhat low. Again, such discussions don't often seem to belong (or really be wanted) on this list, and so I'd rather stop generating the same friction every time I have an idea I want to discuss or get feedback on.
Is there any precedent for this in other perl-based regexp packages? ....Perl6.... But more to the point of my intended proposal, .NET has the /n flag for turning off capturing for ( ) -- I'm not sure if it then turns on capturing for (?: ) or not, someone more familiar with .NET would have to inform here.
That's interesting. I found
msdn.microsoft.com/en-us/library/yd1hzczs.aspx, msdn.microsoft.com/en-us/library/yd1hzczs.aspx#Explicit
There is no sign of non-capturing syntax (?:...) here at all. This n flag seems a bit different from what you propose.
msdn.microsoft.com/en-us/library/bs2twtah.aspx#noncapturing_group
Again, I'm not sure if .NET swaps the default behavior as I'm proposing, when /n is present. But it seems quite natural to me that /n would do so, rather than having a strange asymmetry where without the flag, both capturing and non-capturing are possible, but with the flag present only non-capturing is possible.
As with all things RegExp, I wonder what Steve thinks.
Do you mean Steven Levithan (aka "Mr Regex")? If so, he already commented at length on that blog post I mentioned. I guess he implies the discussion is worth having by saying "...and which can be explored in future ECMAScript specs."
I am well aware of the discussions on this list about continuations, as well as the existing strawmans. I am also well aware that my views on that topic aren't particularly popular.
So why in the world do you think jamming your views into wiki.ecmascript.org is going to do any good?
Who's jamming anything? I politely asked if there was a way for me to create a more formalized statement around my proposal/idea, so that future discussions around it could be more productive. I understand that you and others already disagree with me on it, and would rather just focus on what you've already written up (and I guess have me quit bothering you about it), but I wish that you'd show a little more tolerance and patience for dissenting ideas like mine and not move so tersely to shoot down a cordial and well-intentioned request that you simply don't like.
Prior to this discussion thread, I assumed that strawman proposals could be put up by interested community members in a similar fashion to how I've written up a few proposals for the WHATWG and W3C HTML-WG groups using the WHATWG wiki. Please forgive my clearly incorrect assumption.
Furthermore, I wasn't intending to rehash that discussion on this list at all. As I've said half a dozen times now, I was hoping it could be the catalyst for discussions in some other (informal) forum, where it could be kicked around based on its own merits without baggage. I had hoped that if any of my informal ideas ever amounted to anything useful, only then would they bubble up from that other forum into the ranks of this formal list and TC39 strawmen.
On Jun 2, 2011, at 10:15 PM, Kyle Simpson wrote:
So if a non-TC39 member wants to create suggestions and proposals and ideas for the community to discuss, am I to understand that not only this list, but also the wiki that this list so frequently references, are not really intended for that?
I didn't say anything about this list. Discussion on all kinds of ideas goes on here. (Yes, people including me get grumpy about overciting, filibustering, padding with rehashed motivation, etc. -- so what?)
With all due respect, it's a somewhat common occurrence on this list when someone brings up an idea that bears even a remote resemblance to an existing official strawman, the instinctual and rapid triage is to shoehorn the discussion into the strawman and quickly move on.
No, there are lots of discussions not "shoehorned' into wiki'd proposals.
Recent threads including "Proxies with State", "statements that could be expressions", "Regex on substrings", "ES parsing tools", all have no strawman and seem to be doing fine without any overlong complaints about "shoe-horning".
But if something comes up that is similar to an existing strawman or proposal, then people including me will try to cite the relevant wiki page. What is wrong with that?
That is of course perfectly fine to run this list that way, but I was asking if there was a place (or could there be a place?) where ideas could be discussed in a less formal setting without the need for formalized strawman proposals, and certainly without the urge to immediately bucket each idea or question into an existing proposal, or dismiss a topic as having already been hashed out long ago.
You are writing way, way too many words of complaint, instead of doing what you imply you are being prevented from doing.
You want to discuss ideas including /n and @>? Discuss.
You want wiki access? No.
Now, what's the problem?
I just wanted to add, that it's always wise to flesh out an idea by writing it up as a cohesive proposal. Don't let lack of non-member access to the TC39 wiki stop you from doing this. Write it up anyway. Then post it to your personal blog, website, github, or anywhere else that you have access to. Then start a discussion thread here and point at your proposal. That's really all it takes.
I just wanted to add, that it's always wise to flesh out an idea by writing it up as a cohesive proposal. Don't let lack of non-member access to the TC39 wiki stop you from doing this. Write it up anyway. Then post it to your personal blog, website, github, or anywhere else that you have access to. Then start a discussion thread here and point at your proposal. That's really all it takes.
Thanks Allen. That's the spirit of what I was trying to accomplish. I was operating under (incorrect) assumptions about how I've been able to create proposals for W3C/WHATWG on their wiki before, and thinking that perhaps there was (or should be?) a simple "this is not official" (aka, "es-informal") sandbox on the ES wiki (and corresponding list) for the same.
On Thu, Jun 2, 2011 at 10:15 PM, Kyle Simpson <getify at gmail.com> wrote:
With all due respect, it's a somewhat common occurrence on this list when someone brings up an idea that bears even a remote resemblance to an existing official strawman, the instinctual and rapid triage is to shoehorn the discussion into the strawman and quickly move on.
"Shoehorn" has negative connotations. If this list does tend to point to an existing proposal when a new idea comes up, there's merit in doing so: by referencing an existing proposal we can bring in all of the context that committee members have in their head that is likely to be relevant to this new one. It's more efficient to discuss the delta between an old idea (that has likely had a lot of brain juice poured onto it) and a new one then it is to start from scratch. Doing so doesn't imply that you're constrained to the original proposal, just that it's a useful starting point to minimize rehashing stuff.
I wasn't suggesting that this list or TC39 should change how they operate. I'm merely pointing out that a regular source of frustration on this list comes from people like me wanting to discuss ES related topics in a forum that has more relaxed rules and standards than this one has.
Your frustration is valid, and shared by lots of people. But it's also worth remembering where the committee members are coming from. They spend a ton of time on this list interacting with the larger JS community and (as I'm sure you've noticed) much of it is re-answering the same questions and comments that have been brought up time and again. I can't fault them for being a little terse given that.
Why is it that asking for a separate and less formal place to discuss ES issues and ideas comes off as threatening or criticizing? It seems to me like it'd be useful to have such an informal forum where ideas can percolate until they solidify and are ready to be elevated to a more formal discussion process such as the ones that most regulars on this list seem to prefer.
This is a great idea. If I had a new proposal that I wanted to bring up for discussion, I'd probably:
- Write it up in markdown on github.
- Post a link to it on my blog/twitter/reddit/etc. to get some discussion going.
- Post a link to it here.
.#1 makes easy for people to fork, modify and refine it. .#2 gets your idea outside of the JS echo chamber. .#3 gets it in front of the actual committee.
On Jun 3, 2011, at 8:47 AM, Allen Wirfs-Brock <allen at wirfs-brock.com> wrote:
I just wanted to add, that it's always wise to flesh out an idea by writing it up as a cohesive proposal. Don't let lack of non-member access to the TC39 wiki stop you from doing this. Write it up anyway. Then post it to your personal blog, website, github, or anywhere else that you have access to. Then start a discussion thread here and point at your proposal. That's really all it takes.
Great idea, it's also easy to tweet your concept and add @BrendanEich, @wycats or some others. Given how active Brendan and Allen are
The point is to encourage people to write more well-thought-out proposals than can fit in an email, not less. Hence Allen's suggestion of blogs, websites, or github. If language design issues can be resolved in bursts of 140 characters then I think I will need to find a new line of work. ;)
Is it available for general public members to register for an account to create strawman proposals for ES?
In particular, I'd like to create two proposals for some future discussion:
a "n" (or "c") flag for regexp's, that reverses the default capturing behavior of ( ) to be non-capturing by default, and thus (?: ) to be capturing.
a "@>" (or something like it) operator for what I call
statement-localized continuations
I couldn't find an obvious place on the wiki for creating an account, so I was wondering what the process is for that?