Could Ruby and Rails replace Java as a tool for teaching CS in universities?
The other night I popped along to the North West Ruby user group, which with some others we bounded around the idea of teaching Ruby in schools and universities over a few beers. Its an interesting thought worthy of exploration.
I remember learning my first programming language at university, it was Java and took so long to build anything. Hours and hours building applets using odd tools to plot a graph and what have you. It was tough but only through my dogged determination I got through it. If we compare this to Ruby on rails where running “scaffold” you can have a working, albeit, simple website engaging with a database. Such speed and ease into programming could prove to be a decisive revelation to the timid and fickle fresher under pressure to use their student loan on the only subject they can be confident in succeeding in. i perhaps would have spent more time working rather than drinking beers and experimenting in .. errr.. stuff if I was taught Ruby.
Its not just the speed and the confidence that this brings but the syntax of Ruby is more ‘user friendly’ than java. As was noted at the group meeting when chatting about Java and “who remembers what public static void main actually means?”. Keeping the syntax simple could leave lecturers and students to concentrate on more concrete and universal ideas of computer science such as OO design and usability something which we all could benefit from.
As for how rails may fit into this, well, it could be used to demonstrate structured design. Notably the Controller, Model, View structure and how beneficial this is to stability, security, design, extendibility and maintenance of an application. As somebody who has worked on too many PHP projects made by others this idea of separating the functional, database and visual elements of an application needs to be taken up by many more people (yes moodle this means you).
I know some of you might be thinking “What? replacing Java with a scripting language, this is a dumbing down of computer science”. An interesting point but as we all know, languages can be learned very quickly when we know the concepts of programming. My argument is that Ruby is syntactically simpler and quicker which in turn make it more engaging for our student to actively learn as compared with Java whilst still offering the same broad range of conceptual ideas.
Of cause this is all arguable, Ruby is still very new and may, as with java, may fall by the weigh side. But it must be clear the UK needs more people engaging in computer science to sustain our dependence on technology. So its important to make the step from novice html builder to programmer an easy an exciting one, java failed to do that with me, but I feel Ruby can.