| 4 | PHP is not a good language for building large, maintainable applications: |
| 5 | http://www.ukuug.org/events/linux2002/papers/html/php/index.html |
| 6 | * especially when using it to write out complex Javascript (the syntaxes are always tripping you up) |
| 7 | * doesn't enforce Object Orientation |
| 8 | * poor separation of Presentation & Code |
| 9 | |
| 10 | Python is fully Object Oriented ('everything is an Object') |
| 11 | |
| 12 | Python is an interpreted language, similar to PHP & relatively easy for developers to adapt to. |
| 13 | |
| 14 | Java would be a reasonable choice, but the barrier to entry with Java is much harder - setting up the compiler environment, etc |
| 15 | * this doesn't fit the RAD needs of the project. |
| 16 | * we can still access any useful Java libs via Jython: http://www.jython.org/ |
| 17 | |
| 18 | Ruby-on-Rails might be a good choice, but that's primarily for Web2.0 apps still & Sahana is more than just that.[[BR]] |
| 19 | Performance is also worse than for Python: http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=python&lang2=ruby |
| 20 | |
| 21 | Python also supports a wide range of libraries for adding extra functionality, including in the GIS space:[[BR]] |
| 22 | (There are no PHP libraries for GIS) |
| 23 | * http://trac.gispython.org/lab/wiki |
| 24 | * http://featureserver.org |
| 25 | * http://tilecache.org |
| 26 | * http://mapfish.org |
| 27 | |
| 28 | Python is also the language in which the support infrastructure is written: Bzr, Trac |
| 29 | |
| 30 | * ESR's take on Python: http://pythonology.org/success&story=esr |
| 31 | * Python as an Agile language: http://agiletesting.blogspot.com/2005/02/python-as-agile-language.html |
| 32 | * Python is fun!: http://xkcd.com/353/ |