Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #28891 > unrolled thread
| Started by | "Charles Hottel" <chottel@earthlink.net> |
|---|---|
| First post | 2012-09-11 12:49 -0400 |
| Last post | 2012-09-13 23:30 +0000 |
| Articles | 14 — 11 participants |
Back to article view | Back to comp.lang.python
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
| From | "Charles Hottel" <chottel@earthlink.net> |
|---|---|
| Date | 2012-09-11 12:49 -0400 |
| Subject | Which 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]
| From | MRAB <python@mrabarnett.plus.com> |
|---|---|
| Date | 2012-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]
| From | Ben Finney <ben+python@benfinney.id.au> |
|---|---|
| Date | 2012-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]
| From | Peter <peter.milliken@gmail.com> |
|---|---|
| Date | 2012-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]
| From | Andrew Berg <bahamutzero8825@gmail.com> |
|---|---|
| Date | 2012-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]
| From | Steven D'Aprano <steve+comp.lang.python@pearwood.info> |
|---|---|
| Date | 2012-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]
| From | Steven D'Aprano <steve+comp.lang.python@pearwood.info> |
|---|---|
| Date | 2012-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]
| From | Ramchandra Apte <maniandram01@gmail.com> |
|---|---|
| Date | 2012-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]
| From | Jamie Paul Griffin <jamie@kode5.net> |
|---|---|
| Date | 2012-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]
| From | Mark Lawrence <breamoreboy@yahoo.co.uk> |
|---|---|
| Date | 2012-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]
| From | alex23 <wuwei23@gmail.com> |
|---|---|
| Date | 2012-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]
| From | Ramchandra Apte <maniandram01@gmail.com> |
|---|---|
| Date | 2012-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]
| From | Ramchandra Apte <maniandram01@gmail.com> |
|---|---|
| Date | 2012-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]
| From | "Prasad, Ramit" <ramit.prasad@jpmorgan.com> |
|---|---|
| Date | 2012-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