On Fri, Feb 12, 2021 at 2:26 PM Chris Angelico <rosuav@gmail.com> wrote:
On Sat, Feb 13, 2021 at 6:58 AM Dan Stromberg <drsalists@gmail.com> wrote:
> I believe Python needs to become more independent of CPython, for Python's long term health.
>

Since 1997, Python has been defined independently of CPython.
Really?  It sounds like I missed something important then.  More specifically, what changed in 1997?

There
are numerous documents that define the language semantics for the
benefit of other implementations.
References please?  I'd love to find out this has already been done.

Multiple implementations have
somehow managed to exist without any sort of ISO standard.
Yes, the existence of a small number of other implementations (modulo web implementations) is why I say Python has done pretty well despite the existence of a reference implementation,

Can you explain what would be improved by having a formalized
standard?
It's mostly about avoiding creeping featurism and painting other implementations into corners.  Or - and this is equally important - leaving other implementations in the dust.

Consider how far back Jython and IronPython are.  If the "bureaucracy" (I see it as measured progress) of a standard would allow them to catch up, without having to study the CPython source code, the standard will have done its job.

In all candor, I do not think that frequent releases with significant new features in each are good for a language. I'll remind you that the complexity of a language varies with the square of its feature count.

There's probably been a rush to add features in the wake of the 2.x-to-3.x transition, but hopefully we won't be continuing at that pace.

And again: a good language has a small core but is extensible, enabling extensive /libraries/.  Python is indeed nicely extensible.

So far this thread has just been vague ideas that a
bureaucratic procedure will somehow help things, without showing a
problem.
I've outlined some, but you seem more than ready to dismiss them.

The things that got me thinking about this were:
1) The caution my comparative languages professor in school delivered about reference implementations and how bad they can be for a language's maturation.
2) A comment on python-list about languages without standards not being grown up, that I really couldn't disagree with.
3) The common confusion between "Python" and "CPython".  Many people still think they're the same thing.

Of course, Java is grown up and it has no formal standard.  But there's always Perl's scary example lurking in the background.  And even Java really doesn't appear to have that many competing implementations.  I'm aware of the IBM JDK, OpenJDK, and gcj.  But for all Java's success, there probably should be (have been) more.

And having a comprehensive test suite can help a lot too - it sounds like we're pretty close there?  ISTR hearing that Pypy was able to reuse much of CPython's test suite.  Having a generic test suite that isn't tied to a specific implementation would be fantastic.  One could argue this is what has given rise to the alternative implementations of Python we have.  Unless you count the ones that run in a web browser - there were at least 32 at my last count, with frequently-superficial compatibility.

But we really should encourage more compatible implementations.  That's what I'm trying to get at.  That's probably the main "problem" you seem to want me to highlight, even though I'd rather not be very critical.