Is Python 2.3 compatible with version 2.2? How about PHP 5.1 with PHP 4.4?
In an ideal world, the answer to every such compatibility question would be "yes, it is" but it's not always quite that simple. Python's upwards compatibility is excellent - as a language, it was designed for the purpose for which it's used to this day, and it's not overburdened with facilities, especially redundant ones, that make onward extension awkward. PHP, alas, started as "Personal Home Pages: and has grown to something much more powerful ... meaning that a few of the (then excellent) early decisions have had to be revisited and there have been a few compatibility issues - sometimes solved via the php.ini configuration file. (register_globals and magic_quotes come to mind ...).
However, there's always the exception to disprove the rule ... and I've been talking about Python compatibility today, and how the "yield" keyword was added for generators. "That would only be a problem if you happened to have a variable of that name" says I. "We do, quite often" says one of my trainees. "We're very often forecasting the yield of sludge running off a mountain in wet weather"
(written 2006-11-27, updated 2009-01-01)
Associated topics are indexed under
H101 - Introduction to PHP [3025] Learning to Program ... in PHP. Course examples. - (2010-11-01)
[2097] PHP Course - for hobby / club / charity users. - (2009-03-22)
[1958] PHP - Parse error: syntax error, unexpected $end ... - (2008-12-23)
[1753] Perl v PHP, choosing the right language - (2008-08-14)
[1717] Q - Should I use Perl or Python? - (2008-07-23)
[1198] From Web to Web 2 - (2007-05-21)
[1050] The HTML++ Metalanguage - (2007-01-22)
[924] The LAMP Cookbook - Linux, Apache, MySQL, PHP / Perl - (2006-11-13)
[917] Syntax checking in PHP - (2006-11-07)
[846] Is Perl being replaced by PHP and Python? - (2006-08-27)
[795] Remember a site's non-technical issues too - (2006-07-07)
[789] Hot answers in PHP - (2006-07-02)
[712] Why reinvent the wheel - (2006-05-06)
[691] Testing you Perl / PHP / MySQL / Tcl knowledge - (2006-04-19)
[646] PHP - London course, Melksham Course, Evening course - (2006-03-14)
[629] Choosing the right language - (2006-03-01)
[624] It's REALLY easy to add a little PHP - (2006-02-26)
[577] Learning to program in Perl or PHP - (2006-01-26)
[433] FTP - how to make the right transfers - (2005-09-01)
[382] Central London Courses - Perl, PHP, Python, Tcl, MySQL - (2005-07-18)
[380] Bridging to the customer requirement - (2005-07-16)
[341] Happy Birthday, PHP - (2005-06-09)
[317] Programming languages - a comparison - (2005-05-20)
[135] Too many Perls - (2004-11-30)
[132] Portrait of the author - (2004-11-27)
[124] PHP v Java - (2004-11-20)
[93] Case Sensitive? - (2004-10-19)
[55] Evening classes to learn PHP - (2004-09-19)
[48] PHP - onwards and upwards - (2004-09-14)
Y101 - Introduction to Python [1663] Python in an afternoon - a lecture for experienced programmers - (2008-06-01)
[1375] Python v Ruby - (2007-10-02)
[950] Python and the Magic Roundabout - (2006-11-27)
[909] Python is like a narrowboat - (2006-10-30)
[834] Python makes University Challenge - (2006-08-15)
[753] Python 3000 - the next generation - (2006-06-09)
[745] Python modules. The distribution, The Cheese Shop and the Vaults of Parnassus. - (2006-06-05)
[710] Linux training Glasgow, Python programming course Dundee - (2006-05-05)
[444] Database or Progamming - which to learn first? - (2005-09-13)
Y105 - Python - Functions, Modules and Packages [4029] Exception, Lambda, Generator, Slice, Dict - examples in one Python program - (2013-03-04)
[3945] vargs in Python - how to call a method with unknown number of parameters - (2012-12-06)
[3931] Optional positional and named parameters in Python - (2012-11-23)
[3885] Default local - a good choice by the author of Python - (2012-10-08)
[3852] Static variables in Python? - (2012-08-29)
[3766] Python timing - when to use a list, and when to use a generator - (2012-06-16)
[3695] Functions are first class variables in Lua and Python - (2012-04-13)
[3662] Finding all the unique lines in a file, using Python or Perl - (2012-03-20)
[3474] Python Packages - groupings of modules. An introduction - (2011-10-11)
[3472] Static variables in functions - and better ways using objects - (2011-10-10)
[3464] Passing optional and named parameters to python methods - (2011-10-04)
[3459] Catching the fishes first? - (2011-09-27)
[3280] Passing parameters to Python functions - the options you have - (2011-05-07)
[3159] Returning multiple values from a function call in various languages - a comparison - (2011-02-06)
[2998] Using an exception to initialise a static variable in a Python function / method - (2010-10-13)
[2994] Python - some common questions answered in code examples - (2010-10-10)
[2929] Passing a variable number of parameters in to a function / method - (2010-08-20)
[2878] Program for reliability and efficiency - do not duplicate, but rather share and re-use - (2010-07-19)
[2766] Optional and named parameters to Python functions/methods - (2010-05-15)
[2718] Python - access to variables in the outer scope - (2010-04-12)
[2520] Global and Enable - two misused words! - (2009-11-30)
[2506] Good example of recursion in Python - analyse an RSS feed - (2009-11-18)
[2481] Sample code with errors in it on our web site - (2009-10-29)
[2440] Optional parameters to Python functions - (2009-10-07)
[2439] Multiple returns from a function in Python - (2009-10-06)
[2011] Conversion of OSI grid references to Eastings and Northings - (2009-01-28)
[1879] Dynamic code - Python - (2008-11-11)
[1871] Optional and named parameters in Python - (2008-11-05)
[1870] What to do with a huge crop of apples - (2008-11-04)
[1869] Anonymous functions (lambdas) and map in Python - (2008-11-04)
[1790] Sharing variables with functions, but keeping them local too - Python - (2008-09-09)
[1784] Global - Tcl, PHP, Python - (2008-09-03)
[1464] Python Script - easy examples of lots of basics - (2007-12-08)
[1202] Returning multiple values from a function (Perl, PHP, Python) - (2007-05-24)
[1163] A better alternative to cutting and pasting code - (2007-04-26)
[1134] Function / method parameters with * and ** in Python - (2007-04-04)
[959] It's the 1st, not the 1nd 1rd or 1th. - (2006-12-01)
[913] Python - A list of methods - (2006-11-03)
[912] Recursion in Python - (2006-11-02)
[900] Python - function v method - (2006-10-20)
[821] Dynamic functions and names - Python - (2006-08-03)
[775] Do not duplicate your code - (2006-06-23)
[749] Cottage industry or production line data handling methods - (2006-06-07)
[668] Python - block insets help with documentation - (2006-04-04)
[561] Python's Generator functions - (2006-01-11)
[418] Difference between import and from in Python - (2005-08-18)
[386] What is a callback? - (2005-07-22)
[340] Code and code maintainance efficiency - (2005-06-08)
[308] Call by name v call by value - (2005-05-11)
[303] Lambdas in Python - (2005-05-06)
[294] Python generator functions, lambdas, and iterators - (2005-04-28)
[105] Distance Learning - (2004-10-31)
[96] Variable Scope - (2004-10-22)
5371
Some other Articles
Christmas in NovemberComing from London to Melksham by train for a courseWhat happened at GeekmasSludge off the mountain, and Python and PHPRunning an on line campaignWhat is an SQL injection attack?Look around this mouth.Code quality countsJust ******* Google it