In the 1970s, we had C and in that decade and the following one, we put together our systems in that language and its derivatives.
In the 1990s, we had Perl and in that decade and the following one, we put together our systems in that language are related ones.
In the 2010s, we'll have a wide range of web environments, and we'll put together our systems using those - or some of them; it's a little hard as yet to know exactly how the market will shake out from all the products that are already catching on in these area.
As an online community, it's more than natural for us to order our books from online stores (and perhaps read the books on line, and learn on line too - but that's a story for another day). So many of the superb bookshops have shrunk from carrying an impressive stock of books on "our" subjects to just a few shelves, leaving it up to us to order, sight unseen, on line. And you can't really walk into an online store, turn your head and take in the panorama of the shelves, see where people are gathered, where stock levels are high, which sections are growing in quite the same way you can in a real live store.
What did I spot? My subject line - Moodle, Drupal, Django and Rails amongst others. And a big growth in Ruby too, much pushed towards Rails. Some of the raw programming sections shrinking a little, Linux and OS matters growing, and a complete new room now for Microsoft.
Perhaps I had better define the strange new subjects that I have not mentioned here before for readers ...
Moodle ... Moodle is a web application written in PHP, storing its data im MySQL (both technologies we teach!). If provides a learning environment for students, and a management system for looking after those students - so it's a specialised form of a CMS (Content Management System) ...
Drupal ... Drupal is a more generalised (i.e. more flexible but more daunting to set up!) content management framework. It lets you take a straightforward site and add a whole lot of services as and when you wish, using extra modules of which many ar available ... or you can write and tune your own in PHP.
Django ... Whereas Drupal and Moodle are PHP based, Django is Python based. It's described as a "web development framework" - in other words it takes the hard work of much of the Python coding out of putting your web application together, and lets you write a Python based web application much more efficiently, much more consistently, and much easier to maintain.
Rails *has* come up before - it's a Ruby based Web development framework, so you could draw a parallel to Django, or PHP perhaps with Cake - but that's another story.
Update, January 2010 - See our new
Ruby on Rails extension to our Ruby Courses.
If you're a new user of Moodle or Drupal, you probably will NOT need to know any PHP - but as you move on to make more sophisticated use of them, you might - and that's where our
PHP Programming course would come in. Django user will almost inevitably need to
learn Python, and we have some django resources available during our public courses so that delegates learning Python for embedding via django can get some practise in the appropriate environment.
(written 2008-08-08, updated 2010-01-31)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
Y306 - Python - The Django web framework [3136] A framework with python - Django - first steps - (2011-01-17)
[3138] Django - adding your own views, and then templating your views. - (2011-01-18)
[3139] Steering our Python courses towards wxPython, SQLite and Django - (2011-01-19)
[3140] Django - separating the HTML from the view / model - (2011-01-20)
[3624] Why do we need a Model, View, Controller architecture? - (2012-02-25)
[3633] Nesting Templates in Django - (2012-03-02)
[3634] Defining database relations in your Django model - (2012-03-02)
[3639] Demonstration of a form using Django - (2012-03-04)
[3640] Sessions (Shopping Carts) in Django - the Python Web Framework - (2012-03-05)
[3698] How to stop forms on other sites submitting to your scripts - (2012-04-15)
[3705] Django Training Courses - UK - (2012-04-23)
[3919] What is a web framework? - (2012-11-10)
[4013] Web Frameworks - nested templates - (2013-02-22)
[4095] Django - first steps - Updated - (2013-05-19)
Y202 - Python on the Web [237] Crossfertilisation, PHP to Python - (2005-03-06)
[426] Robust checking of data entered by users - (2005-08-27)
[433] FTP - how to make the right transfers - (2005-09-01)
[903] Pieces of Python - (2006-10-23)
[2238] Handling nasty characters - Perl, PHP, Python, Tcl, Lua - (2009-06-14)
[2365] Counting Words in Python via the web - (2009-08-18)
[4089] Quick and easy - showing Python data hander output via a browser - (2013-05-15)
[4404] Which (virtual) host was visited? Tuning Apache log files, and Python analysis - (2015-01-23)
[4536] Json load from URL, recursive display, Python 3.4 - (2015-10-14)
R202 - Ruby on Rails [1050] The HTML++ Metalanguage - (2007-01-22)
[1302] Ruby, Ruby, Ruby. Rails, Rails, Rails. - (2007-08-13)
[1375] Python v Ruby - (2007-10-02)
[2605] Ruby on Rails - a sample application to teach you how - (2010-01-30)
[2607] Answers on Ruby on Rails - (2010-01-30)
[2609] Scope of variables - important to Ruby on Rails - (2010-01-31)
[3756] Ruby on Rails - how it flows, and where the files go - (2012-06-08)
[3772] Hello World - Ruby on Rails - a checklist of each step - (2012-06-22)
[3777] Multiple views in a single appication - sharing common parts of the template - Ruby on Rails - (2012-06-23)
[3778] Providing a form to allow the user to add data to the model - Ruby on Rails - (2012-06-23)
[3779] Adding validation to form entries and sticky fields - Ruby on Rails - (2012-06-23)
[3780] Ruby of Rails - cleanly displaying model data in the view - (2012-06-23)
[4010] Really Simple Rails - (2013-02-17)
H201 - PHP and MySQL for Content Management [647] Checking for MySQL errors - (2006-03-15)
[1555] Advanced Python, Perl, PHP and Tcl training courses / classes - (2008-02-25)
[1576] Making PHP and MySQL training relevant to the course delegates - (2008-03-15)
[2071] Setting up a MySQL database from PHP - (2009-03-08)
[3453] Reading and using emails including enclosures on your web server. - (2011-09-23)
Some other Articles
Using server side and client side programming togetherHotel room prices - Melksham, WiltshireWho is watching you?London for the visitor, for freeMoodle, Drupal, Django (and Rails)Lua examples, Lua CoursesFirst class functions in Lua lead to powerful OO facilitiesLua - Table elements v table as a wholeAge ConcernVertical London