Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #28891 > unrolled thread

Which Version of Python?

Started by"Charles Hottel" <chottel@earthlink.net>
First post2012-09-11 12:49 -0400
Last post2012-09-13 23:30 +0000
Articles 14 — 11 participants

Back to article view | Back to comp.lang.python


Contents

  Which Version of Python? "Charles Hottel" <chottel@earthlink.net> - 2012-09-11 12:49 -0400
    Re: Which Version of Python? MRAB <python@mrabarnett.plus.com> - 2012-09-11 18:14 +0100
    Re: Which Version of Python? Ben Finney <ben+python@benfinney.id.au> - 2012-09-12 09:55 +1000
      Re: Which Version of Python? Peter <peter.milliken@gmail.com> - 2012-09-11 17:17 -0700
        Re: Which Version of Python? Andrew Berg <bahamutzero8825@gmail.com> - 2012-09-11 20:07 -0500
        Re: Which Version of Python? Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2012-09-12 02:11 +0000
          Re: Which Version of Python? Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2012-09-12 02:15 +0000
    Re: Which Version of Python? Ramchandra Apte <maniandram01@gmail.com> - 2012-09-11 19:58 -0700
      Re: Which Version of Python? Jamie Paul Griffin <jamie@kode5.net> - 2012-09-12 13:12 +0100
    Re: Which Version of Python? Mark Lawrence <breamoreboy@yahoo.co.uk> - 2012-09-12 07:30 +0100
      Re: Which Version of Python? alex23 <wuwei23@gmail.com> - 2012-09-12 01:34 -0700
        Re: Which Version of Python? Ramchandra Apte <maniandram01@gmail.com> - 2012-09-12 01:41 -0700
          Re: Which Version of Python? Ramchandra Apte <maniandram01@gmail.com> - 2012-09-12 01:42 -0700
            RE: Which Version of Python? "Prasad, Ramit" <ramit.prasad@jpmorgan.com> - 2012-09-13 23:30 +0000

#28891 — Which Version of Python?

From"Charles Hottel" <chottel@earthlink.net>
Date2012-09-11 12:49 -0400
SubjectWhich Version of Python?
Message-ID<BcmdnbBsB7Ee9tLNnZ2dnUVZ_q2dnZ2d@earthlink.com>
 I have a lot of programming experience in many different languages and now 
I want to learn Python.  Which version do you suggest I download, Python 2.x 
or Python 3.x ?  Also why should I prefer one over the other?

Right now I am thinkng Python 3.x as it has been out since 2008, but I have 
some concerns about backward compatibility with older packages that I might 
want to use.

Thanks for your ideas and help. 

[toc] | [next] | [standalone]


#28892

FromMRAB <python@mrabarnett.plus.com>
Date2012-09-11 18:14 +0100
Message-ID<mailman.511.1347383674.27098.python-list@python.org>
In reply to#28891
On 11/09/2012 17:49, Charles Hottel wrote:
>   I have a lot of programming experience in many different languages and now
> I want to learn Python.  Which version do you suggest I download, Python 2.x
> or Python 3.x ?  Also why should I prefer one over the other?
>
> Right now I am thinkng Python 3.x as it has been out since 2008, but I have
> some concerns about backward compatibility with older packages that I might
> want to use.
>
> Thanks for your ideas and help.
>
My own preference is for Python 3.x. Python 2.x is ending at 2.7.

As you said, some older packages may still be using 2.x, but there's
not that much difference between 3.x and 2.x, so you should be able to
switch from one to the other one very easily.

[toc] | [prev] | [next] | [standalone]


#28912

FromBen Finney <ben+python@benfinney.id.au>
Date2012-09-12 09:55 +1000
Message-ID<87r4q8p12c.fsf@benfinney.id.au>
In reply to#28891
"Charles Hottel" <chottel@earthlink.net> writes:

> I have a lot of programming experience in many different languages and now 
> I want to learn Python.

Good for you, and welcome!

> Which version do you suggest I download, Python 2.x or Python 3.x ?
> Also why should I prefer one over the other?

This question is a good one. It is common enough that the home page
<URL:http://www.python.org/> has a link to the community's
answer/discussion at <URL:http://wiki.python.org/moin/Python2orPython3>.

> Right now I am thinkng Python 3.x as it has been out since 2008, but I
> have some concerns about backward compatibility with older packages
> that I might want to use.

The fact that Python 3 has been out for a number of years is important,
as is the fact that the Python developers and the community of
third-party library developers have worked quite hard to make it
feasible to work in Python 3.

More important, from the perspective of a newcomer, is that Python 2 is
essentially in maintenance-only mode, receiving only bug fixes. All
larger improvements are only going into Python 3.

The set of third-party libraries which are not ready for Python 3 still
has some significant members, and will certainly never be zero. But that
set has shrunk significantly in the many years that Python 3 has been
active.

At this stage, I would advise any person wanting to learn Python qua
Python (i.e. without considering the wrinkles of some specific task) to
focus on Python 3. If you need to learn older versions, that need will
present itself and you can learn the legacy quirks then; for now, learn
Python the way it is intended to be by going for Python 3.

-- 
 \      “A lie can be told in a few words. Debunking that lie can take |
  `\   pages. That is why my book… is five hundred pages long.” —Chris |
_o__)                                                Rodda, 2011-05-05 |
Ben Finney

[toc] | [prev] | [next] | [standalone]


#28913

FromPeter <peter.milliken@gmail.com>
Date2012-09-11 17:17 -0700
Message-ID<858be08d-c3bd-48e7-920d-b27901e13af7@googlegroups.com>
In reply to#28912
If your desire is to "learn" Python then I would stick to 2.7

My reasoning would be that there are still a significant number of packages that have not been ported to 3.x (and may never be ported). 

Not having looked at the changes in 3.x (so don't flame me! :-)), it would seem that anything you "learn" in 2.7 would be easily transferred "up" when and if you feel the need to go to 3.x, but in the meantime enjoy the better support of a greater range of packages that are still only 2.x compatible! i.e. learning (and using) features of 3.x could make it difficult to go "down" when/if you decide you really need to use a library that hasn't (and may never!) be ported to 3.x. For example, Graysons book on Python GUI programming is still one of the better Python GUI books (although very old now!) and it would steer you towards using the Pmw library - which may never be ported to 3.x. If you decide to use wxPython for your GUI work then I see that has support for 2.x only also.

So in this case, staying with the lower common denominator might be the better choice.

[toc] | [prev] | [next] | [standalone]


#28916

FromAndrew Berg <bahamutzero8825@gmail.com>
Date2012-09-11 20:07 -0500
Message-ID<mailman.529.1347412075.27098.python-list@python.org>
In reply to#28913
On 2012.09.11 19:17, Peter wrote:
> If your desire is to "learn" Python then I would stick to 2.7
> 
> My reasoning would be that there are still a significant number of packages that have not been ported to 3.x (and may never be ported).
This is true, but the /potential/ for the need for one of these packages
is not a good reason to learn from a branch that will never get any new
features. If there is indeed a compelling reason to stay with the older
version, then it is a worthwhile tradeoff. Otherwise, it is just silly.

> Not having looked at the changes in 3.x (so don't flame me! :-))
That would be a good reason /to/ flame you. ;)

> , it would seem that anything you "learn" in 2.7 would be easily transferred "up" when and if you feel the need to go to 3.x,
3.x is not a simple superset of 2.7 - there are certain limitations and
ways of doing things in 2.x that don't apply to 3.x. A new programmer
should learn, for example, handling Unicode properly (which is strongly
encouraged in 3.x) and then learn how to deal with less-than-ideal
implementations (like 2.x) rather than learn how to do it sloppily and
then be frustrated when 3.x wants them to do it correctly. Backward
compatibility was not broken for trivial reasons.

> i.e. learning (and using) features of 3.x could make it difficult to go "down"
The official documentation does point out things that have been
added/changed both overall in the "What's New" page and specifically in
each module's documentation.

> when/if you decide you really need to use a library that hasn't (and may never!) be ported to 3.x.
I don't think it's a good idea to encourage people (especially newbies)
to stick with packages that won't get updated. I'm not saying that a
package that isn't planned to be 3.x compatible will necessarily be
unmaintained, but being unmaintained is the reason many packages will
not be made 3.x compatible. In any case, packages that aren't getting
support for 3.x will likely be replaced with better alternatives,
especially once people start flocking en masse to 3.x (I'm no expert,
but my guess is that this will happen once Django and Twisted support 3.x).

If 3.0 had come out a month ago, I would see value in learning 2.x, but
it's been nearly 4 years.
-- 
CPython 3.3.0b1 | Windows NT 6.1.7601.17803

[toc] | [prev] | [next] | [standalone]


#28919

FromSteven D'Aprano <steve+comp.lang.python@pearwood.info>
Date2012-09-12 02:11 +0000
Message-ID<504fef49$0$29981$c3e8da3$5496439d@news.astraweb.com>
In reply to#28913
On Tue, 11 Sep 2012 17:17:14 -0700, Peter wrote:

> If your desire is to "learn" Python then I would stick to 2.7
> 
> My reasoning would be that there are still a significant number of
> packages that have not been ported to 3.x (and may never be ported).

But if all you want is to learn Python, then those packages are 
irrelevant. If I want to learn to write Python code, why should I care 
about SomePackage, regardless of whether it supports Python 3.x or 2.x or 
even 1.x? As a beginner to the language, I don't even know it exists, and 
chances are I'm never going to use it.

(I was happily using Python using only the standard library for about 
seven years before I installed my first third-party library.) 

You may not have intended it this way, but the argument "stick to Python 
2, because packages!" is a typical troll response. It might have been a 
reasonable response six years ago, when there weren't many (or even any) 
major packages that supported Python 3, but now many major packages do 
and most of those that don't are in the process of doing so. Now the 
choice is, paradoxically, much harder because library support is much 
more split: some libraries support 2.x, some 3.x, and some both.

Of course, if you *need* to use SomePackage which only supports Python 2 
or 3, then that will drive your decision to learn Python 2 or 3. But 
consider:

(1) If a package only supports Python 2 now, and *has no plans* to 
support Python 3, I would consider that package more or less a dead end 
and be reluctant to start a new project with it unless I had no other 
choice at all.

(Seriously guys, if you're the developer of a project that only supports 
2.x and you aren't at least *thinking about* supporting 3.x, your project 
is going to be irrelevant to the wider world soon.)

(2) The syntax differences between Python 2 and 3 are very minor. By the 
time you are proficient in one, you will be *easily* be able to jump to 
the other.


> Not having looked at the changes in 3.x (so don't flame me! :-)), it
> would seem that anything you "learn" in 2.7 would be easily transferred
> "up" when and if you feel the need to go to 3.x, 

It goes both ways. But frankly, whenever I drop down from 3.x code to 2.x 
code, I get really annoyed that there's a lot of excellent stuff I cannot 
use.


> but in the meantime
> enjoy the better support of a greater range of packages that are still
> only 2.x compatible!

That's true. But the range of 3.x compatible third party libraries is 
very impressive: it includes numpy and scipy, CherryPy, parts of zope 
(but not yet all of it), pyparsing, an unofficial port of nltk, py2exe, 
and many more. Others, like django, have committed to support 3.x as soon 
as they can drop support for 2.4 or 2.5.

See also:

http://python3wos.appspot.com/

PyPy is now in the process of supporting Python 3. Within a few years, 
Python 3 will be the standard.


> i.e. learning (and using) features of 3.x could
> make it difficult to go "down" when/if you decide you really need to use
> a library that hasn't (and may never!) be ported to 3.x.

Any package that is not ported to 3.x will eventually be as obsolete and 
irrelevant as packages that only support Python 1.5. Python 2.7 will have 
an extended support period, but that won't last forever.

My estimate is that we're past the half-way mark: in another four years, 
the question of "2.x or 3.x" will be irrelevant, people will be asking "I 
want to use library foo, but it only supports 2.7, what should I do?", 
and in eight years, people won't even ask that, they'll just ignore 
library foo as abandoned.


> So in this case, staying with the lower common denominator might be the
> better choice.

Everyone has to make that choice for themselves, based on what libraries 
they intend to use. For those who don't intend to use any libraries at 
all, I think the answer is simple:

Learn the version of Python that comes installed on your computer, or if 
you have to install it yourself, learn Python 3.



-- 
Steven

[toc] | [prev] | [next] | [standalone]


#28920

FromSteven D'Aprano <steve+comp.lang.python@pearwood.info>
Date2012-09-12 02:15 +0000
Message-ID<504ff04b$0$29981$c3e8da3$5496439d@news.astraweb.com>
In reply to#28919
On Wed, 12 Sep 2012 02:11:22 +0000, Steven D'Aprano wrote:

> On Tue, 11 Sep 2012 17:17:14 -0700, Peter wrote:
> 
>> If your desire is to "learn" Python then I would stick to 2.7
>> 
>> My reasoning would be that there are still a significant number of
>> packages that have not been ported to 3.x (and may never be ported).
> 
> But if all you want is to learn Python, then those packages are
> irrelevant. If I want to learn to write Python code, why should I care
> about SomePackage, regardless of whether it supports Python 3.x or 2.x
> or even 1.x? As a beginner to the language, I don't even know it exists,
> and chances are I'm never going to use it.
> 
> (I was happily using Python using only the standard library for about
> seven years before I installed my first third-party library.)
> 
> You may not have intended it this way, but the argument "stick to Python
> 2, because packages!" is a typical troll response. It might have been a
> reasonable response six years ago, when there weren't many (or even any)
> major packages that supported Python 3, 

Hardly surprising given that Python 3 came out four years ago. Sorry, 
brain-fart. I meant four years ago.


-- 
Steven

[toc] | [prev] | [next] | [standalone]


#28923

FromRamchandra Apte <maniandram01@gmail.com>
Date2012-09-11 19:58 -0700
Message-ID<a8a03c7f-a3ff-4b97-8e0c-aae2bbe97dea@googlegroups.com>
In reply to#28891
On Tuesday, 11 September 2012 22:19:08 UTC+5:30, Charles Hottel  wrote:
> I have a lot of programming experience in many different languages and now 
> 
> I want to learn Python.  Which version do you suggest I download, Python 2.x 
> 
> or Python 3.x ?  Also why should I prefer one over the other?
> 
> 
> 
> Right now I am thinkng Python 3.x as it has been out since 2008, but I have 
> 
> some concerns about backward compatibility with older packages that I might 
> 
> want to use.
> 
> 
> 
> Thanks for your ideas and help.

Use Python 3 because most packages support Python 3. Python 2.7 has many features that Python 3 has so it will require minimal effort to write Python 2.x code.

[toc] | [prev] | [next] | [standalone]


#28950

FromJamie Paul Griffin <jamie@kode5.net>
Date2012-09-12 13:12 +0100
Message-ID<mailman.553.1347451979.27098.python-list@python.org>
In reply to#28923
[ Ramchandra Apte wrote on Tue 11.Sep'12 at 19:58:29 -0700 ]

> On Tuesday, 11 September 2012 22:19:08 UTC+5:30, Charles Hottel  wrote:
> > I have a lot of programming experience in many different languages and now 
> > 
> > I want to learn Python.  Which version do you suggest I download, Python 2.x 
> > 
> > or Python 3.x ?  Also why should I prefer one over the other?
> > 
> > 
> > 
> > Right now I am thinkng Python 3.x as it has been out since 2008, but I have 
> > 
> > some concerns about backward compatibility with older packages that I might 
> > 
> > want to use.
> > 
> > 
> > 
> > Thanks for your ideas and help.
> 
> Use Python 3 because most packages support Python 3. Python 2.7 has many features that Python 3 has so it will require minimal effort to write Python 2.x code.

When I first started to learn Python - about a year ago - I got myself a book which focuses on version 3 but is does also include Version 2. The author wrote that because a number of supporting libraries have not been updated to work in Python 3, and where "it is felt that the theory still needs to be expounded upon" Python 2.x will be used in lieu of Python 3. I personally, as a beginner, have found this approach helpful. Although, when this book was published Python 3.1 was the latest release, so of course since then said libraries most probably have been updated. So, as a fellow beginner i'd go for version 3.x.

Jamie.

[toc] | [prev] | [next] | [standalone]


#28933

FromMark Lawrence <breamoreboy@yahoo.co.uk>
Date2012-09-12 07:30 +0100
Message-ID<mailman.540.1347431482.27098.python-list@python.org>
In reply to#28891
On 11/09/2012 17:49, Charles Hottel wrote:
>   I have a lot of programming experience in many different languages and now
> I want to learn Python.  Which version do you suggest I download, Python 2.x
> or Python 3.x ?  Also why should I prefer one over the other?
>
> Right now I am thinkng Python 3.x as it has been out since 2008, but I have
> some concerns about backward compatibility with older packages that I might
> want to use.
>
> Thanks for your ideas and help.
>
>

Perhaps this will sway you http://docs.python.org/dev/whatsnew/3.3.html
There is no longer an equivalent document for the Python 1.x or 2.x 
series of releases.

-- 
Cheers.

Mark Lawrence.

[toc] | [prev] | [next] | [standalone]


#28937

Fromalex23 <wuwei23@gmail.com>
Date2012-09-12 01:34 -0700
Message-ID<236c2754-d656-4595-8364-7503ef7c15d6@q7g2000pbj.googlegroups.com>
In reply to#28933
On 12 Sep, 16:31, Mark Lawrence <breamore...@yahoo.co.uk> wrote:
> Perhaps this will sway youhttp://docs.python.org/dev/whatsnew/3.3.html
> There is no longer an equivalent document for the Python 1.x or 2.x
> series of releases.

Perhaps not for 1.x but the 2.x series is still covered:
http://docs.python.org/dev/whatsnew/index.html

Actually, 1.6 is included here:
http://www.python.org/download/releases/1.6.1/

[toc] | [prev] | [next] | [standalone]


#28938

FromRamchandra Apte <maniandram01@gmail.com>
Date2012-09-12 01:41 -0700
Message-ID<b8aa7f74-ca2a-47ff-ab8f-4b5bd604acba@googlegroups.com>
In reply to#28937
On Wednesday, 12 September 2012 14:04:56 UTC+5:30, alex23  wrote:
> On 12 Sep, 16:31, Mark Lawrence <breamore...@yahoo.co.uk> wrote:
> 
> > Perhaps this will sway youhttp://docs.python.org/dev/whatsnew/3.3.html
> 
> > There is no longer an equivalent document for the Python 1.x or 2.x
> 
> > series of releases.
> 
> 
> 
> Perhaps not for 1.x but the 2.x series is still covered:
> 
> http://docs.python.org/dev/whatsnew/index.html
> 
> 
> 
> Actually, 1.6 is included here:
> 
> http://www.python.org/download/releases/1.6.1/

I think he meant the length of the document.

[toc] | [prev] | [next] | [standalone]


#28939

FromRamchandra Apte <maniandram01@gmail.com>
Date2012-09-12 01:42 -0700
Message-ID<b174854f-7779-4377-a7d0-894eb49396b8@googlegroups.com>
In reply to#28938
On Wednesday, 12 September 2012 14:11:56 UTC+5:30, Ramchandra Apte  wrote:
> On Wednesday, 12 September 2012 14:04:56 UTC+5:30, alex23  wrote:
> 
> > On 12 Sep, 16:31, Mark Lawrence <breamore...@yahoo.co.uk> wrote:
> 
> > 
> 
> > > Perhaps this will sway youhttp://docs.python.org/dev/whatsnew/3.3.html
> 
> > 
> 
> > > There is no longer an equivalent document for the Python 1.x or 2.x
> 
> > 
> 
> > > series of releases.
> 
> > 
> 
> > 
> 
> > 
> 
> > Perhaps not for 1.x but the 2.x series is still covered:
> 
> > 
> 
> > http://docs.python.org/dev/whatsnew/index.html
> 
> > 
> 
> > 
> 
> > 
> 
> > Actually, 1.6 is included here:
> 
> > 
> 
> > http://www.python.org/download/releases/1.6.1/
> 
> 
> 
> I think he meant the length of the document.

Sorry, Mark must have meant theres no "What's New" document of the same length (its very long).

[toc] | [prev] | [next] | [standalone]


#29090

From"Prasad, Ramit" <ramit.prasad@jpmorgan.com>
Date2012-09-13 23:30 +0000
Message-ID<mailman.651.1347579049.27098.python-list@python.org>
In reply to#28939
Ramchandra Apte wrote:
> On Wednesday, 12 September 2012 14:11:56 UTC+5:30, Ramchandra Apte  wrote:
> > On Wednesday, 12 September 2012 14:04:56 UTC+5:30, alex23  wrote:
> > > On 12 Sep, 16:31, Mark Lawrence <breamore...@yahoo.co.uk> wrote:
> > > > Perhaps this will sway youhttp://docs.python.org/dev/whatsnew/3.3.html
> > > > There is no longer an equivalent document for the Python 1.x or 2.x
> > > > series of releases.

> > > Perhaps not for 1.x but the 2.x series is still covered:
> > > http://docs.python.org/dev/whatsnew/index.html
> > > Actually, 1.6 is included here:
> > > http://www.python.org/download/releases/1.6.1/

> > I think he meant the length of the document.
 
> Sorry, Mark must have meant theres no "What's New" document of the same length
> (its very long).

Would you mind trimming your responses of blank lines? 
The double line spacing makes it difficult to read.
I know that it may be google groups that is doubling
line spaces but it would help if you could remove
the extra lines that you can when replying (as I have
done above).

Thanks,
Ramit
This email is confidential and subject to important disclaimers and
conditions including on offers for the purchase or sale of
securities, accuracy and completeness of information, viruses,
confidentiality, legal privilege, and legal entity disclaimers,
available at http://www.jpmorgan.com/pages/disclosures/email.  

[toc] | [prev] | [standalone]


Back to top | Article view | comp.lang.python


csiph-web