Archive - Originally posted on "The Horse's Mouth" - 2010-06-30 05:57:23 - Graham Ellis
On public courses, we normally use the the latest (or a very recent) stable version of the open source software that we teach. On private courses, we will use the same version, but that is subject to amendement on discussions with customers. As of today (30th June 2010), here is a snapshot of the main versions I have on the machine from which I demonstrate / teach:
Language
Version
PHP
5.3
Python
2.6 and/or 3.1
Perl
5.10
Java
1.6
Tcl
8.5
Expect
5.44
Ruby
1.8
Lua
5.1
C anc C++
gcc 4.2
MySQL
5.1
Scala
2.7
Web Server
Apache httpd 2.2
Tomcat
6.0 and/or 5.5
* Further details (including minor version numbers) [here].
You'll notice I've quoted two versions of Python - we have them both. We are drifting from Python 2 to Python 3 as the market drifts; on one hand, we should teach the latest stable version, but on the other hand we find that there is a great deal of established software in Python 2, and indeed many of the modules are only just converting across - so for some users, it's not "leading edge" but "bleeding edge" and they're better to stick at 2 at present. There's also the 5.5 v 6.0 question for Tomcat; with Web Servers, "if it ain't bust, don't fix it" is often the ethos and you'll find many mature versions around; we still need to teach the version that customers run, and indeed there are often aspects which are more complex in the old version that have been fixed in the latest ... but they remain a critical teaching issue for delegates who cannot yet upgrade.
Our fleet of laptops runs Linux, Windows and OS X - in various flavours, and with various versions of the languages available. There will always be "recent stable" for your course, but where there are significantly different versions in common production use, we'll have them somewhere. We'll also have future looking R&D versions so that we can look ahead on the course to Tomcat 7, Perl 6 and PHP 6 ... not teaching in detail necessarily, but making sure that you - the programmer - aren't suprised when they turn up, and are already writing code that will be in line with what's coming.