Re: Why Python 4.0 won't be like Python 3.0

2014-08-19 Thread Grant Edwards
On 2014-08-19, Steven D'Aprano steve+comp.lang.pyt...@pearwood.info wrote:
 Grant Edwards wrote:

 On 2014-08-18, Ethan Furman et...@stoneleaf.us wrote:
 On 08/18/2014 07:51 AM, Grant Edwards wrote:

 To all of us out here in user-land a change in the first value in the
 version tuple means breakage and incompatibilities. And when the
 second value is 0, you avoid it until some other sucker has found
 the bugs and a few more minor releases have come out.

 Even our own 3.0 was like that.
 
 So was 2.0, only it wasn't quite as distruptive as 3.0.

 How was it disruptive? It was as backward compatible to 1.5 as any point
 release can be expected to be. There were syntax changes, but they added
 new syntax, and didn't take anything away.

 In my opinion, 2.6 was a bigger change than 2.0 from the perspective of
 backwards compatibility. 2.6 finally made raising from strings an error.

I'm probably conflating the 1.5.2/2.0 and the 2.6 stuff.  I do
remember delaying moving from 1.5.2 - 2.0 until I really had to, but 
I don't remember why.

-- 
Grant Edwards   grant.b.edwardsYow! Oh, I get it!!
  at   The BEACH goes on, huh,
  gmail.comSONNY??
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Why Python 4.0 won't be like Python 3.0

2014-08-19 Thread Skip Montanaro
On Tue, Aug 19, 2014 at 9:27 AM, Grant Edwards invalid@invalid.invalid wrote:
 I'm probably conflating the 1.5.2/2.0 and the 2.6 stuff.  I do
 remember delaying moving from 1.5.2 - 2.0 until I really had to, but
 I don't remember why.

If you were a RedHat user during that timeframe, that might have
contributed to your decision to delay. I no longer remember the
details, but it was rather painful.

Skip

P.S. Grant, why is your email listed as invalid@invalid.invalid? Seems
kind of unfriendly.
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Why Python 4.0 won't be like Python 3.0

2014-08-19 Thread Grant Edwards
On 2014-08-19, Skip Montanaro s...@pobox.com wrote:
 On Tue, Aug 19, 2014 at 9:27 AM, Grant Edwards invalid@invalid.invalid 
 wrote:
 I'm probably conflating the 1.5.2/2.0 and the 2.6 stuff.  I do
 remember delaying moving from 1.5.2 - 2.0 until I really had to, but
 I don't remember why.

 If you were a RedHat user during that timeframe, that might have
 contributed to your decision to delay. I no longer remember the
 details, but it was rather painful.

 Skip

 P.S. Grant, why is your email listed as invalid@invalid.invalid? Seems
  kind of unfriendly.

Many, many years ago it was an attept to reduce spam and to avoid
receiving copies of followups.  There used to be a fair number of
Usenet and mailing-list users who seemed to think that their followups
were so important that they would not only post it to the group (or
mail it to the mailing list), they would also send you a copy
directly.  I got tired of messing with procmail filters to try to
eliminate those, so I finally removed my e-mail address from the
headers.  If people want to e-mail me, my address is below.

-- 
Grant Edwards   grant.b.edwardsYow! Vote for ME -- I'm
  at   well-tapered, half-cocked,
  gmail.comill-conceived and
   TAX-DEFERRED!
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Why Python 4.0 won't be like Python 3.0

2014-08-19 Thread Johann Hibschman
Skip Montanaro s...@pobox.com writes:

 On Tue, Aug 19, 2014 at 9:27 AM, Grant Edwards invalid@invalid.invalid 
 wrote:
 I'm probably conflating the 1.5.2/2.0 and the 2.6 stuff.  I do
 remember delaying moving from 1.5.2 - 2.0 until I really had to, but
 I don't remember why.

 If you were a RedHat user during that timeframe, that might have
 contributed to your decision to delay. I no longer remember the
 details, but it was rather painful.

I vaguely remember holding off for a while until SWIG had 2.0 support,
or maybe Numeric lagged, or something, but that's getting pretty fuzzy.
There was definitely more there than, say, for 1.4 to 1.5.  It's hard to
believe that the Dubois/Hinsen/Hugunin article in Computers in Physics
(which was where I got my start with python) was a full 18 years ago.

Cheers,
Johann
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Why Python 4.0 won't be like Python 3.0

2014-08-19 Thread Steven D'Aprano
Grant Edwards wrote:

 I do
 remember delaying moving from 1.5.2 - 2.0 until I really had to, but
 I don't remember why.

I remember delaying moving from 1.5 until 2.3, but I remember why. Three
reasons:

(1) People are often like cats, and like cats, they are either curious and
inquisitive about anything new (ooh, shiny! is it good to play with???)
or suspicious and fearful of anything new (it's different, I don't like
it). I happened to be going through a stage of my life closer to the
second than the first at the time.

(2) I was reluctant to install software by hand if it wasn't handled by my
system's package manager. I still am, but not as reluctant as I was back
then.

(3) I was still learning the language, and all the books I had on Python
covered 1.5.


-- 
Steven

-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Why Python 4.0 won't be like Python 3.0

2014-08-18 Thread Grant Edwards
On 2014-08-17, Mark Lawrence breamore...@yahoo.co.uk wrote:
 A blog from Nick Coghlan 
 http://www.curiousefficiency.org/posts/2014/08/python-4000.html that 
 should help put a few minds to rest.

I agree with the comments that the appellation for simply the next
version after 3.9 should be 3.10 and not 4.0.  Everybody I know
considers SW versions numbers to be dot-separated tuples, not 
floating point numbers.  

To all of us out here in user-land a change in the first value in the
version tuple means breakage and incompatibilities. And when the
second value is 0, you avoid it until some other sucker has found
the bugs and a few more minor releases have come out.

I don't think one (or several) blog posts is going to change the
perceptions and expectations that have been coditioned into us by
decades of experience with x.0 versions of countless software
packages. If it's just another in a a series of incremental bug fix
and minor enhancements without breaking backwards incompatibility
releases, you simply do not call it vers x.0.

-- 
Grant Edwards   grant.b.edwardsYow! Bo Derek ruined
  at   my life!
  gmail.com
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Why Python 4.0 won't be like Python 3.0

2014-08-18 Thread Chris Angelico
On Tue, Aug 19, 2014 at 12:51 AM, Grant Edwards invalid@invalid.invalid wrote:
 I agree with the comments that the appellation for simply the next
 version after 3.9 should be 3.10 and not 4.0.  Everybody I know
 considers SW versions numbers to be dot-separated tuples, not
 floating point numbers.


Agreed. However, by the time 3.9 comes out, there'll have been all
those years of changes. The version after 3.9 would be a good time
to remove stuff that's been deprecated since 3.3 or 3.6 or whatever;
technically, that's breaking backward compat (hence 4.0 rather than
3.10), but in effect, it's no more breakage than a minor release would
give you (since you should have stopped using deprecated APIs several
versions ago). So there's still value in going to 4.0 around about ten
versions after 3.0; but it doesn't necessarily have to happen exactly
then.

ChrisA
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Why Python 4.0 won't be like Python 3.0

2014-08-18 Thread ElChino

Grant Edwards invalid@invalid.invalid wrote:


To all of us out here in user-land a change in the first value in the
version tuple means breakage and incompatibilities. And when the
second value is 0, you avoid it until some other sucker has found
the bugs and a few more minor releases have come out.


Three shall be the number thou shalt count, and the number of the 
counting shall be three, no more, no less. ..

 https://www.youtube.com/watch?v=xOrgLj9lOwk   (1:30)

Or lets make the version asymptotically grow towards 4.
Any sensible function for that?

--gv
--
https://mail.python.org/mailman/listinfo/python-list


Re: Why Python 4.0 won't be like Python 3.0

2014-08-18 Thread Ethan Furman

On 08/18/2014 07:51 AM, Grant Edwards wrote:


To all of us out here in user-land a change in the first value in the
version tuple means breakage and incompatibilities. And when the
second value is 0, you avoid it until some other sucker has found
the bugs and a few more minor releases have come out.


Even our own 3.0 was like that.



I don't think one (or several) blog posts is going to change the
perceptions and expectations that have been coditioned into us by
decades of experience with x.0 versions of countless software
packages. If it's just another in a a series of incremental bug fix
and minor enhancements without breaking backwards incompatibility
releases, you simply do not call it vers x.0.


Yup.

--
~Ethan~
--
https://mail.python.org/mailman/listinfo/python-list


Re: Why Python 4.0 won't be like Python 3.0

2014-08-18 Thread Ethan Furman

On 08/18/2014 10:00 AM, ElChino wrote:

Grant Edwards invalid@invalid.invalid wrote:


To all of us out here in user-land a change in the first value in the
version tuple means breakage and incompatibilities. And when the
second value is 0, you avoid it until some other sucker has found
the bugs and a few more minor releases have come out.


Three shall be the number thou shalt count, and the number of the counting shall be 
three, no more, no less. ..
  https://www.youtube.com/watch?v=xOrgLj9lOwk   (1:30)


Right.  5.0 it is, then.

--
~Ethan~
--
https://mail.python.org/mailman/listinfo/python-list


Re: Why Python 4.0 won't be like Python 3.0

2014-08-18 Thread Grant Edwards
On 2014-08-18, Ethan Furman et...@stoneleaf.us wrote:
 On 08/18/2014 07:51 AM, Grant Edwards wrote:

 To all of us out here in user-land a change in the first value in the
 version tuple means breakage and incompatibilities. And when the
 second value is 0, you avoid it until some other sucker has found
 the bugs and a few more minor releases have come out.

 Even our own 3.0 was like that.

So was 2.0, only it wasn't quite as distruptive as 3.0.

Don't get me started on the RedHat [5678].0 OS releases from back in
the day...

-- 
Grant 
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Why Python 4.0 won't be like Python 3.0

2014-08-18 Thread Emile van Sebille

On 8/18/2014 2:09 PM, Grant Edwards wrote:

On 2014-08-18, Ethan Furman et...@stoneleaf.us wrote:

On 08/18/2014 07:51 AM, Grant Edwards wrote:


To all of us out here in user-land a change in the first value in the
version tuple means breakage and incompatibilities. And when the
second value is 0, you avoid it until some other sucker has found
the bugs and a few more minor releases have come out.


Even our own 3.0 was like that.


So was 2.0, only it wasn't quite as distruptive as 3.0.


As I recall, 2.0 _was_ 1.6.

Emile

--
https://mail.python.org/mailman/listinfo/python-list


Re: Why Python 4.0 won't be like Python 3.0

2014-08-18 Thread Ben Finney
Grant Edwards invalid@invalid.invalid writes:

 I agree with the comments that the appellation for simply the next
 version after 3.9 should be 3.10 and not 4.0. Everybody I know
 considers SW versions numbers to be dot-separated tuples, not floating
 point numbers.

This consensus is sometimes termed “semantic versioning”, that is,
giving semantic meaning to the structural elements of a version string
URL:http://semver.org/.

I'm glad someone has taken the time to codify that sensible and useful
de-facto standard for version strings.

 I don't think one (or several) blog posts is going to change the
 perceptions and expectations that have been coditioned into us by
 decades of experience with x.0 versions of countless software
 packages. If it's just another in a a series of incremental bug fix
 and minor enhancements without breaking backwards incompatibility
 releases, you simply do not call it vers x.0.

Agreed. The convention is well established and rogues deviate from it at
the peril of unnecessary confusion.

-- 
 \ “Guaranteed to work throughout its useful life.” —packaging for |
  `\  clockwork toy, Hong Kong |
_o__)  |
Ben Finney

-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Why Python 4.0 won't be like Python 3.0

2014-08-18 Thread Chris Angelico
On Tue, Aug 19, 2014 at 3:00 AM, ElChino elch...@cnn.cn wrote:
 Or lets make the version asymptotically grow towards 4.
 Any sensible function for that?

Easy! We just keep on adding parts.

3.7, 3.8, 3.9, 3.9.9, 3.9.9.9, 3.9.9.9.9, 3.9.9.9.9.9...

ChrisA
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Why Python 4.0 won't be like Python 3.0

2014-08-18 Thread Steven D'Aprano
Grant Edwards wrote:

 On 2014-08-17, Mark Lawrence breamore...@yahoo.co.uk wrote:
 A blog from Nick Coghlan
 http://www.curiousefficiency.org/posts/2014/08/python-4000.html that
 should help put a few minds to rest.
 
 I agree with the comments that the appellation for simply the next
 version after 3.9 should be 3.10 and not 4.0.  Everybody I know
 considers SW versions numbers to be dot-separated tuples, not
 floating point numbers.

I consider versions to be *strings*. They include non-numeric components
such as a, b, rc, so they aren't numbers. They're certainly not
floating point numbers, since they have a variable number of decimal
points. Although there is at least one unofficial standard for interpreting
version numbers (semantic versioning), the most popular by far is whatever
I mean by it today and the only reasonable interpretation of an arbitrary
software package's version number is as free-form text.

Given two version numbers for the same arbitrary package, X and Y, just
about the only thing you can be sure of is that if X  Y, Y is *probably*
newer.

 
 To all of us out here in user-land a change in the first value in the
 version tuple means breakage and incompatibilities.

*All* of us?

So... you're not a user of the Linux kernel?

http://www.linuxplanet.com/news/goodbye-linux-2.6-hello-linux-3.0.html

Or Java 5, 6, 7, 8.

http://en.wikipedia.org/wiki/Java_version_history

Or Firefox.

https://support.mozilla.org/en-US/questions/956361

(I believe that Firefox is now up to version 31, with version 32 due at
3:00pm and 33 due at 5:30pm.)

And not a Mac user either, I imagine, since Mac OS introduces major backward
incompatible changes to point releases. Mac OS version X tends to prefer
version *names* rather than numbers:

http://en.wikipedia.org/wiki/History_of_OS_X

which Debian-based Linux distros also tend to follow.

Or for that matter, not a Python user either:

https://docs.python.org/dev/whatsnew/2.0.html

Version 4.0, when it comes out, will merely be a return to past practices in
Python-land, which are quite similar to practices in many major software
packages. Version 3.0 was the anomaly.



-- 
Steven

-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Why Python 4.0 won't be like Python 3.0

2014-08-18 Thread Steven D'Aprano
Grant Edwards wrote:

 On 2014-08-18, Ethan Furman et...@stoneleaf.us wrote:
 On 08/18/2014 07:51 AM, Grant Edwards wrote:

 To all of us out here in user-land a change in the first value in the
 version tuple means breakage and incompatibilities. And when the
 second value is 0, you avoid it until some other sucker has found
 the bugs and a few more minor releases have come out.

 Even our own 3.0 was like that.
 
 So was 2.0, only it wasn't quite as distruptive as 3.0.

How was it disruptive? It was as backward compatible to 1.5 as any point
release can be expected to be. There were syntax changes, but they added
new syntax, and didn't take anything away.

In my opinion, 2.6 was a bigger change than 2.0 from the perspective of
backwards compatibility. 2.6 finally made raising from strings an error.

# 2.4
py raise hello
Traceback (most recent call last):
  File stdin, line 1, in ?
hello

# 2.6
py raise hello
Traceback (most recent call last):
  File stdin, line 1, in module
TypeError: exceptions must be old-style classes or derived from
BaseException, not str

(I make no comment about the quality of 2.0 versus 2.0.1 :-)



-- 
Steven

-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Why Python 4.0 won't be like Python 3.0

2014-08-18 Thread Chris Angelico
On Tue, Aug 19, 2014 at 10:05 AM, Steven D'Aprano
steve+comp.lang.pyt...@pearwood.info wrote:
 I consider versions to be *strings*. They include non-numeric components
 such as a, b, rc, so they aren't numbers. They're certainly not
 floating point numbers, since they have a variable number of decimal
 points. Although there is at least one unofficial standard for interpreting
 version numbers (semantic versioning), the most popular by far is whatever
 I mean by it today and the only reasonable interpretation of an arbitrary
 software package's version number is as free-form text.

 Given two version numbers for the same arbitrary package, X and Y, just
 about the only thing you can be sure of is that if X  Y, Y is *probably*
 newer.

Let's say version identifiers. The point of schemes like semver.org
is to make it possible to define the X  Y inequality between two
such identifiers. (There are similar schemes, such as that used by
Debian's package management. They're often broadly compatible.)

 Or Java 5, 6, 7, 8.

 http://en.wikipedia.org/wiki/Java_version_history

Are they major versions, or 1.5, 1.6, 1.7, 1.8? Or both?

 Or Firefox.

 https://support.mozilla.org/en-US/questions/956361

 (I believe that Firefox is now up to version 31, with version 32 due at
 3:00pm and 33 due at 5:30pm.)

So true.

 And not a Mac user either, I imagine, since Mac OS introduces major backward
 incompatible changes to point releases. Mac OS version X tends to prefer
 version *names* rather than numbers:

 http://en.wikipedia.org/wiki/History_of_OS_X

 which Debian-based Linux distros also tend to follow.

With Debian distros, there is a version number as well as the name -
Wheezy (current stable) is Debian 7, currently showing 7.5, and the
previous version (Squeeze) is Debian 6. This more-or-less follows the
standard concept of major versions, as it's at the point of a new
release that breaking changes will be made.

There's a broad expectation in a lot of communities that the basic
major.minor.rev scheme will be followed. It's definitely not
universal, but it's the most popular convention by far (unless you
count version numbers don't mean anything as a convention).

ChrisA
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Why Python 4.0 won't be like Python 3.0

2014-08-18 Thread Tim Delaney
On 19 August 2014 00:51, Grant Edwards invalid@invalid.invalid wrote:

 On 2014-08-17, Mark Lawrence breamore...@yahoo.co.uk wrote:
  A blog from Nick Coghlan
  http://www.curiousefficiency.org/posts/2014/08/python-4000.html that
  should help put a few minds to rest.

 I agree with the comments that the appellation for simply the next
 version after 3.9 should be 3.10 and not 4.0.  Everybody I know
 considers SW versions numbers to be dot-separated tuples, not
 floating point numbers.

 To all of us out here in user-land a change in the first value in the
 version tuple means breakage and incompatibilities. And when the
 second value is 0, you avoid it until some other sucker has found
 the bugs and a few more minor releases have come out.


 No. A major version increase *may* introduce breakage and
incompatibilities. It does not mean that it *has* to introduce breakage and
incompatibilities. If the major version increase is documented as just
being the next version then there's no reason to avoid it - unless your
policy is wait for the first patch release i.e. never take major.minor.0
but always wait for major.minor.1.

What is more important is that minor and patch version increases should
avoid introducing breakage and incompatibilities wherever possible
(security fixes are one reason to allow incompatibility in a minor release).

BTW I agree with the idea that 4.0 would be an appropriate time to remove
anything that has been deprecated for the requisite number of versions.

Tim Delaney
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Why Python 4.0 won't be like Python 3.0

2014-08-18 Thread Steven D'Aprano
Ben Finney wrote:

 Grant Edwards invalid@invalid.invalid writes:
 
 I agree with the comments that the appellation for simply the next
 version after 3.9 should be 3.10 and not 4.0. Everybody I know
 considers SW versions numbers to be dot-separated tuples, not floating
 point numbers.
 
 This consensus is sometimes termed “semantic versioning”, that is,
 giving semantic meaning to the structural elements of a version string
 URL:http://semver.org/.
 
 I'm glad someone has taken the time to codify that sensible and useful
 de-facto standard for version strings.
 
 I don't think one (or several) blog posts is going to change the
 perceptions and expectations that have been coditioned into us by
 decades of experience with x.0 versions of countless software
 packages. If it's just another in a a series of incremental bug fix
 and minor enhancements without breaking backwards incompatibility
 releases, you simply do not call it vers x.0.
 
 Agreed. The convention is well established 

Only if you ignore the vast majority of software which does not follow that
convention. Having *any* semantics to version numbers at all, apart
from bump the version number when you feel like it, is the exception
rather than the rule. Probably the most common version numbering system
is the date I last remembered to update the version number, or a simple
incrementing counter. (It's a version *number*, not a version tuple.)

It is amazing how well-established a convention can appear if you ignore the
exceptions to it and consider only a sufficiently narrow niche, like some
of the FOSS software I'm familiar with.


 and rogues deviate from it at the peril of unnecessary confusion.

Rogues like Python, the Linux kernel, Oracle, Mozilla, Haskell, ...

Well, okay, Oracle are rogues. But not because of their version numbering.


I find it amusing that Haskell uses a versioning number scheme that uses two
dot-separated major versions specifically to combat the emotional reaction
to major-version changes exhibited in this thread by Grant. With Haskell,
changing from (say) 0.6.3.2 - 0.7.0.0 is a major API-breaking upgrade, but
it avoids the emotional reaction of having to go from 6.3.2 - 7.0.0.

http://www.haskell.org/haskellwiki/Package_versioning_policy

Haskell also explicitly prohibits the useful practice of including version
tags like a, b, rc *because some tools couldn't sort them correctly*.
(This reminds me of those who advocate spaces over tabs, because some tools
can't deal with tabs correctly.) Rather than fix the tools, the Haskell
community removed non-numeric tags from the specification.

On the other hand, Oracle and Sun before them take the attitude that a jump
in Java's version number from 5 to 6 to 7 are only minor release changes,
and the Java community is quite happy to agree.



-- 
Steven

-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Why Python 4.0 won't be like Python 3.0

2014-08-17 Thread Redge @ Versalytics.com

 On Aug 17, 2014, at 8:37 AM, Mark Lawrence breamore...@yahoo.co.uk wrote:
 
 A blog from Nick Coghlan 
 http://www.curiousefficiency.org/posts/2014/08/python-4000.html that should 
 help put a few minds to rest.
 
 -- 
 My fellow Pythonistas, ask not what our language can do for you, ask
 what you can do for our language.
 
 Mark Lawrence
 
 -- 
 https://mail.python.org/mailman/listinfo/python-list

Definitely a relief. After delving into Python only a few short months ago, 
everything I was reading suggested 2.x.x. When I switched to another book to 
continue with my studies, some of the code wasn't working ... welcome to 3.x.x. 
 Needless to say, I'm using 3.4.1 exclusively today unless something bizarre 
requires me to do otherwise.

Thanks for sharing.
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Why Python 4.0 won't be like Python 3.0

2014-08-17 Thread Chris Angelico
On Mon, Aug 18, 2014 at 9:17 AM, Redge @ Versalytics.com
versalyt...@gmail.com wrote:
 Definitely a relief. After delving into Python only a few short months ago, 
 everything I was reading suggested 2.x.x. When I switched to another book to 
 continue with my studies, some of the code wasn't working ... welcome to 
 3.x.x.  Needless to say, I'm using 3.4.1 exclusively today unless something 
 bizarre requires me to do otherwise.


Good move. You should be able to upgrade to 3.4.x safely, and 3.5 fairly safely.

Eventually, books about Python 3 will be the more easily found, and
you won't have this kind of confusion.

ChrisA
-- 
https://mail.python.org/mailman/listinfo/python-list