Re: [Python-ideas] JS? governance model is worth inspecting

2018-09-24 Thread James Lu
> Which features of the TC39 committee's ECMAscript (ES) language governance
> model would be helpful to incorporate into the Python language governance
> model?

Having “beta” or “alpha” editions of features, special versions of the 
interpreter people can test out to see if they prefer the version with the new 
feature. 

To prevent splintering, the main releases would only support the main feature 
set. In a worst case scenario, people can compile incompatible code to .pyc 
before running it.
___
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/


Re: [Python-ideas] JS’ governance model is worth inspecting

2018-09-24 Thread Stephen J. Turnbull
Wes Turner writes:

 > Is there a link to a document describing the PEP process (with and
 > without BDFL)?

PEP 1, and https://devguide.python.org/langchanges/#

But most changes don't need a PEP.  We're only discussing this now
because Anders's proposal would need a PEP.

In general, though, PEPs are rare.  There are many hundreds of pull
requests accepted every year, but there only about 500 PEPs (including
rejected, withdrawn, and deferred PEPs) over the entire history of
Python.  Of those, quite a few are Process and Informational PEPs.

The Language Changes section is #20, and doesn't get a quick link from
the table of links in the "Contributing" section of the home page of
the DevGuide.  That's as it should be, IMO, so I'm not going to write
up a PR to add such a link.  YMMV, go right ahead.

___
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/


Re: [Python-ideas] JS’ governance model is worth inspecting

2018-09-24 Thread Wes Turner
On Thursday, September 20, 2018, James Lu  wrote:

> JS’ decisions are made by a body known as TC39, a fairly/very small group
> of JS implementers.


https://github.com/tc39/

Python has devs with committer privileges:
https://devguide.python.org/experts/

There are maintainers for many modules:
https://devguide.python.org/experts/


>
> First, JS has an easy and widely supported way to modify the language for
> yourself: Babel. Babel transpires your JS to older JS, which is then run.
>
> You can publish your language modification on the JS package manager, npm.


Babel plugins are packaged for and installable with npm:
https://babeljs.io/docs/en/plugins

New ES features can run on older JS interpreter features with transpilation
by Babel.


>
> When a feature is being considered for inclusion in mainline JS, the
> proposal must first gain a champion (represented by )that is a member of
> TC-39. The guidelines say that the proposal’s features should already have
> found use in the community. Then it moves through three stages, and the
> champion must think the proposal is ready for the next stage before it can
> move on. I’m hazy on what the criterion for each of the three stages is.
> The fourth stage is approved.


Is there a link to a document describing the PEP process (with and without
BDFL)?

That would be a helpful link to add to the table here:
https://devguide.python.org/#contributing

e.g. "How to write a PEP" as an ISSUE_TEMPLATE/ might be helpful:

- [ ] Read the meta-PEPs
- [ ] and find the appropriate BDFL-delegate
- [ ] copy the PEP 12 RST template
- [ ] add the headings specified in PEP 1
- [ ] Read PEP 1

"Meta-PEPs (PEPs about PEPs or Processes)"
https://www.python.org/dev/peps/#meta-peps-peps-about-peps-or-processes

PEP 12 -- Sample reStructuredText PEP Template
https://www.python.org/dev/peps/pep-0012/

PEP 1 -- PEP Purpose and Guidelines
https://www.python.org/dev/peps/pep-0001/

PEPs
https://github.com/python/peps


> I believe the global TC39 committee meets regularly in person, and at
> those meetings, proposals can advance stages- these meetings are frequent
> enough for the process to be fast and slow enough that people can have the
> time to try out a feature before it becomes main line JS. Meeting notes are
> made public.


PEP 1 describes the PEP mailing list and editors.


>
> The language and its future features are discussed on ESDiscuss.org, which
> is surprisingly filled with quality and respectful discussion, largely from
> experts in the JavaScript language.


python-dev@, python-ideas@,


>
> I’m fairly hazy on the details, this is just the summary off the top of my
> head.
>
> —
> I’m not saying this should be Python’s governance model, just to keep JS’
> in mind.


Which features of the TC39 committee's ECMAscript (ES) language governance
model would be helpful to incorporate into the Python language governance
model?
___
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/


Re: [Python-ideas] JS’ governance model is worth inspecting

2018-09-24 Thread Stephen J. Turnbull
Michel Desmoulin writes:

 > [W]e should not disregard the design policies because of these
 > particular issues.

Please stop.  As long as core developers don't get involved, it's just
noise.

If you must continue this thread, PEP it.  No major change in the
procedures described in the DevGuide, PEP 1, and so on will take place
without a PEP.  If you're serious, you'll have to put in that much
effort to get a hearing.  If you're not, you're wasting lines in my
mail client's summary screen.

___
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/


Re: [Python-ideas] JS’ governance model is worth inspecting

2018-09-24 Thread Michel Desmoulin

Le 22/09/2018 à 20:27, James Lu a écrit :
> > To my mind, there is one very big reason we should be cautious about
> > adopting JS language-design policies, namely, that they have led to a
> > very, very poorly designed language.  No doubt a good deal of that is
> > baggage from early stages in which JS had a poor to nonexistent language
> > design governance model.  Nonetheless, the failure of JS to fix its
> > numerous fundamental flaws, and especially the rapid feature churn in
> > recent years, suggests to me that their model should be viewed with
> > skepticism.
> I disagree. The language is often very flexible and effective in its
domains. I don’t know what you mean by “rapid feature churn”, churn
usually means existing features are superseded by newer ones- this isn’t
the case.
>
> JS is much more nuanced than it appears on the surface. It’s
understandable that those with only a glossing of JS look down on it,
because JS really was a primitive language a few years ago.
>
> You can learn about JS in depth with the poorly-named “You don’t know
JS” free online book.
>

I worked with JS for the last 10 years, and I agree that "we should be
cautious about
adopting JS language-design policies", particularly about the fact they
completly ignored readability in their concerns.

But still, using the old JS baggages to justify we reject what they are
doing currently is not a good argument:

  - they can't break the whole Web so deprecation is very hard. Python 2
=> 3 should make us understand that. Yes it sucks you can still declare
a variable global by default. It also sucked we had to rewrite most good
python modules during the last decade.
  - the new JS features have been so far a good fit for the language and
overall made it better.
  - fast pace evolution is only for the JS ecosystem (and I agree it's
terrible). But the spec and implementations
have been very reasonable in their progress.

Now it's hard to know if it's because of the design policy or in spite
of it. But while I still dislike JS, it IS a vastly better language that
it used to be and we should not disregard the design policies because of
these particular issues.


___
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/


Re: [Python-ideas] JS’ governance model is worth inspecting

2018-09-22 Thread James Lu
> To my mind, there is one very big reason we should be cautious about 
> adopting JS language-design policies, namely, that they have led to a 
> very, very poorly designed language.  No doubt a good deal of that is 
> baggage from early stages in which JS had a poor to nonexistent language 
> design governance model.  Nonetheless, the failure of JS to fix its 
> numerous fundamental flaws, and especially the rapid feature churn in 
> recent years, suggests to me that their model should be viewed with 
> skepticism.
I disagree. The language is often very flexible and effective in its domains. I 
don’t know what you mean by “rapid feature churn”, churn usually means existing 
features are superseded by newer ones- this isn’t the case.

JS is much more nuanced than it appears on the surface. It’s understandable 
that those with only a glossing of JS look down on it, because JS really was a 
primitive language a few years ago.

You can learn about JS in depth with the poorly-named “You don’t know JS” free 
online book.


___
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/


Re: [Python-ideas] JS’ governance model is worth inspecting

2018-09-21 Thread Brendan Barnwell

On 2018-09-20 18:56, James Lu wrote:

JS’ decisions are made by a body known as TC39, a fairly/very small
group of JS implementers.



— I’m not saying this should be Python’s governance model, just to
keep JS’ in mind.


	To my mind, there is one very big reason we should be cautious about 
adopting JS language-design policies, namely, that they have led to a 
very, very poorly designed language.  No doubt a good deal of that is 
baggage from early stages in which JS had a poor to nonexistent language 
design governance model.  Nonetheless, the failure of JS to fix its 
numerous fundamental flaws, and especially the rapid feature churn in 
recent years, suggests to me that their model should be viewed with 
skepticism.


--
Brendan Barnwell
"Do not follow where the path may lead.  Go, instead, where there is no
path, and leave a trail."
   --author unknown
___
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/


Re: [Python-ideas] JS’ governance model is worth inspecting

2018-09-21 Thread James Lu
> Babel's primary purpose is transpiling to run on older browsers, which isn't 
> that much of an issue with Python. It's also complicated a bit by the large 
> number of implementations that *must* be developed in sync, again due to 
> running in user's browsers. 
It’s true that one of Babel’s purposes is to transpile to older browsers. 
However, if you look at the React Native project template (a fairly typical 
JavaScript project template), the Babel transpiler preset looks like this:
- Remove Flow and transpile JSX: these are language extensions for type hinting 
and inline XML, not intended to be merged with mainline JavaScript. 
- Transpile Standardized JavaScript to older JavaScript 
- Stage-3 Proposal: adds dedicated syntax for setting static and instance 
variables outside of the constructor but within the class.
- Stage-1 Proposal: syntax to support trailing comma in functions
function foo(
a,
b,
c,
) { }
Inspired from Python’s syntax:
def foo(a,
  b, 
  c,
 ):
...

As you can see, two non-standard features under consideration for inclusion in 
the standard are included in the preset. This inclusion of non-standard 
features is typical for JS starter projects. One of the requirements for 
advancing stages is seeing practical use in the industry.

Since almost everyone uses Babel anyways, this four stage process acts as a way 
to gain consensus on the base set of JS features. 

Almost all of the newest standard JS took this route of unofficial use before 
official inclusion. 
___
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/


Re: [Python-ideas] JS’ governance model is worth inspecting

2018-09-21 Thread Ryan Gonzalez
This feels a bit like apples and oranges.

Babel's primary purpose is transpiling to run on older browsers, which
isn't that much of an issue with Python. It's also complicated a bit by the
large number of implementations that *must* be developed in sync, again due
to running in user's browsers.

On Fri, Sep 21, 2018, 6:25 AM James Lu  wrote:

> JS’ decisions are made by a body known as TC39, a fairly/very small group
> of JS implementers.
>
> First, JS has an easy and widely supported way to modify the language for
> yourself: Babel. Babel transpires your JS to older JS, which is then run.
>
> You can publish your language modification on the JS package manager, npm.
>
> When a feature is being considered for inclusion in mainline JS, the
> proposal must first gain a champion (represented by )that is a member of
> TC-39. The guidelines say that the proposal’s features should already have
> found use in the community. Then it moves through three stages, and the
> champion must think the proposal is ready for the next stage before it can
> move on. I’m hazy on what the criterion for each of the three stages is.
> The fourth stage is approved.
>
> I believe the global TC39 committee meets regularly in person, and at
> those meetings, proposals can advance stages- these meetings are frequent
> enough for the process to be fast and slow enough that people can have the
> time to try out a feature before it becomes main line JS. Meeting notes are
> made public.
>
> The language and its future features are discussed on ESDiscuss.org, which
> is surprisingly filled with quality and respectful discussion, largely from
> experts in the JavaScript language.
>
> I’m fairly hazy on the details, this is just the summary off the top of my
> head.
>
> —
> I’m not saying this should be Python’s governance model, just to keep JS’
> in mind.
>
>
> ___
> Python-ideas mailing list
> Python-ideas@python.org
> https://mail.python.org/mailman/listinfo/python-ideas
> Code of Conduct: http://python.org/psf/codeofconduct/
>
-- 

Ryan (ライアン)
Yoko Shimomura, ryo (supercell/EGOIST), Hiroyuki Sawano >> everyone else
https://refi64.com/
___
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/


[Python-ideas] JS’ governance model is worth inspecting

2018-09-21 Thread James Lu
JS’ decisions are made by a body known as TC39, a fairly/very small group of JS 
implementers.

First, JS has an easy and widely supported way to modify the language for 
yourself: Babel. Babel transpires your JS to older JS, which is then run.

You can publish your language modification on the JS package manager, npm. 

When a feature is being considered for inclusion in mainline JS, the proposal 
must first gain a champion (represented by )that is a member of TC-39. The 
guidelines say that the proposal’s features should already have found use in 
the community. Then it moves through three stages, and the champion must think 
the proposal is ready for the next stage before it can move on. I’m hazy on 
what the criterion for each of the three stages is. The fourth stage is 
approved.

I believe the global TC39 committee meets regularly in person, and at those 
meetings, proposals can advance stages- these meetings are frequent enough for 
the process to be fast and slow enough that people can have the time to try out 
a feature before it becomes main line JS. Meeting notes are made public.

The language and its future features are discussed on ESDiscuss.org, which is 
surprisingly filled with quality and respectful discussion, largely from 
experts in the JavaScript language. 

I’m fairly hazy on the details, this is just the summary off the top of my head.

—
I’m not saying this should be Python’s governance model, just to keep JS’ in 
mind. 


___
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/