I find the progressing fron one major version of a language to another is often incredibly slow. But I suppose I shouldn't find it "incredible" because lifetime code maintenance and updates account for more time spent on a successfully appied piece of software that the original writing of it. And even with new code, there's often a requirement to use well established modules and tools which may not (yet) be available in the new environment, even though the new version of the language itself is available.
Furthermore, most new versions of existing successful languages don't really provide all that great an enhancement. The new facilities may be "nice", they may be "useful", they may "cure longstanding issues" and they may make it "neater", but we should not forget that the old version was a success - there wasn't much wrong with it, so the immediate need for an upgrade is marginal for many or even most of the existing users.
So it is that - five years or more on - I'm teaching Python and asking my delegates "will you be writing in Python 2 or Python 3" and the answer if often "Python 2". Than was the case on yesterday's private day where we majored on
wxPython, and I have a public
Python Programming course starting in about 2 hours which could be "biased" either way. Fortunately, the differences are small enough for the course to major one way or the other, and our group sizes (also small) lend themselves to this approach.
In practise, this upgrade (Python 2 to Python 3) is an odd one - it's possible (and recommended) to write code that's pretty similar / works exactly in both without too much effort - and I recommend that approach and teach it - and yet even "Hello World" can vary!
Python 2:
print "Hello World"
(see source
[here]
Python 3:
print ("Hello World",end="\n")
(see source
[here]
Or Python 2 AND Python 3:
print ("Hello World")
(see source
[here]
Accommodation's full for tonight at our
Well House Manor hotel ... but anyone who lives within an hour or so of Melksham would still be just in time to book on the course and commute. No - I don't exepect it to happen, but stranger things have. For the more conventional - see our schedule
[here] for public courses in the New Year. For private courses, a few days remain available in the lead up to Christmas.
(written 2015-12-01)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
Y101 - Introduction to Python [317] Programming languages - a comparison - (2005-05-20)
[380] Bridging to the customer requirement - (2005-07-16)
[382] Central London Courses - Perl, PHP, Python, Tcl, MySQL - (2005-07-18)
[444] Database or Progamming - which to learn first? - (2005-09-13)
[629] Choosing the right language - (2006-03-01)
[710] Linux training Glasgow, Python programming course Dundee - (2006-05-05)
[712] Why reinvent the wheel - (2006-05-06)
[745] Python modules. The distribution, The Cheese Shop and the Vaults of Parnassus. - (2006-06-05)
[753] Python 3000 - the next generation - (2006-06-09)
[834] Python makes University Challenge - (2006-08-15)
[846] Is Perl being replaced by PHP and Python? - (2006-08-27)
[909] Python is like a narrowboat - (2006-10-30)
[949] Sludge off the mountain, and Python and PHP - (2006-11-27)
[950] Python and the Magic Roundabout - (2006-11-27)
[1375] Python v Ruby - (2007-10-02)
[1663] Python in an afternoon - a lecture for experienced programmers - (2008-06-01)
[4118] We not only teach PHP and Python - we teach good PHP and Python Practice! - (2013-06-18)
[4298] Python - an interesting application - (2014-09-18)
Y300 - Python 3 - What is new, what's changed and why [1788] Python 2 to Python 3 / Python 3000 / Py3k - (2008-09-07)
[1791] The road ahead - Python 3 - (2008-09-10)
[2277] Python classes / courses - what version do we train on? - (2009-07-10)
[2285] Great new diagrams for our notes ... Python releases - (2009-07-13)
[2559] Moving the product forward - ours, and MySQL, Perl, PHP and Python too - (2010-01-01)
[2778] Learning to program in Python 2 ... and / or in Python 3 - (2010-05-24)
[2871] Moving from Python 2.6 to Python 3 - (2010-07-14)
[4469] Sorting in Python 3 - and how it differs from Python 2 sorting - (2015-04-20)
[4470] Testing in Python 3 - unittest, doctest and __name__ == __main__ too. - (2015-04-21)
[4649] Object and Static methods - what is the difference; example in Python 3 - (2016-02-17)
[4650] Why populate object with values as you construct them? - (2016-02-18)
[4711] Convering from Python 2 to Python 3 - an update, and the 2to3 utility - (2016-10-30)
[4712] A reminder of the key issues to consider in moving from Python 2 to Python 3 - (2016-10-30)
Some other Articles
XML handling in Python - a new teaching example using etreeCommand line parameter handling in Python via the argparse moduleA comparison of the public transport alternatives to the Royal United Hospital, Bath - from Melksham.From single block to structure and object oriented programmingProgress on moving from Python 2 to Python 3 - training for both versionsPrinciples or a GUI and their practical application using wxPthonWhat teach you in a week stays with you for a decadeshell - bash. Writing conditional tests and statements - the options availableExtending your bash shell with aliases, functions and extra commandsWhat is make? What is gcc?