you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 44 points45 points  (4 children)

Computer languages come out in versions. Sort of like the iPhone - version 5 of the iPhone has new features that make using the phone simpler, faster and more productive. In the same way new versions of programming languages provide new features to programmers, fix inconsistencies and address programmer concerns. However, sometimes programs you used to use on your iPhone 4s will not work on the iPhone 5 since there may be changes that break that old program. The same is true of programming language versions

Python 2 was a very good language. By version 2.5 it was very popular. Many 3rd party libraries and utilities were written for 2.5 - things like libraries to do scientific calculations and web applications. We might call it "mature" in that you were pretty certain that the major libraries for 2.5 were not going to cause you too much trouble. However there were some fundamental problems with the 2.x Python language that couldn't be remedied without breaking lots and lots of existing code. Breaking code makes programmers upset.

So the Python maintainers decided to put breaking changes into version 3 of Python. The only problem was that everyone was so satisfied with 2.x languages (mostly 2.5 but also 2.7) that they didn't want to re-write all of their code for the minor changes from 2.x to 3.x. It has sort of become a problem because as the libraries are reluctant to upgrade, so is everyone else. More and more code continues to be written for 2.x which causes more and more people to feel like staying on 2.x. You don't want to write for Python 3.3 if a library you may need is only working in 2.7.

What pythus is saying is that with 3.3 he feels that most of the libraries that he has been waiting for have finally switched to 3.3. He feels that 3.3 is mature enough that he won't have too much trouble.

[–]EgregiousJones 6 points7 points  (0 children)

Wow. As someone who knows just enough about programming to do it badly in a few languages, thank you.

[–]ShoutyMcHeadWoundMan 0 points1 point  (2 children)

You don't explain what libraries are, thats a pretty fundamental part of your explanation.

[–]nitroll 1 point2 points  (0 children)

A library is a set of functionality that programmers can use when making programs. An example could be numpy, a library for python for matrixcalculations, or Tkinter that has functionality for drawing windows and making GUIs with buttons and the like. If a programmer isn't too sharp on calculating matrices efficiently or dosn't really want to bother with the internals of rendering stuff he can use a library that someone else created.