Raspberry Pi – the credit card-sized single-board computer developed by the Raspberry Pi Foundation to promote the teaching of computer science in schools – is one of the most talked-about inventions of the year, but for Jon "maddog" Hall, executive director of Linux International, it is only the beginning.
Speaking to Techworld ahead of Telefonica's Campus Party Europe, Hall said that computer science students coming into universities today actually know less than the students of 20 years ago. This is because they get a system, they put a game on it, they do some HTML coding and they think they can program.
“Twenty years ago, people had to type the programs in from a magazine or a bulletin board. If it didn't work they had to figure out why it didn't work, and they actually got to know a little bit about the computer – what a complier is and how to take something from source code and turn it into binary,” he said.
Hall has been working with educators and students to explain why it is important to know how these machines work. He said that the Raspberry Pi is a good start, allowing them to see the motherboard and understand that it is a piece of electrical circuitry, but claims that this is just the start of a process of lifelong learning, because technology is constantly evolving.
“You can't just go in and say, I went to school for four years and I got my degree and that's the end of it. You have to realise you're going to be learning for the rest of your life, and you have to enjoy learning. That's how you really become the top in the field,” he said.
This also requires a shift in the way that computer science is taught, according to Hall. Rather than telling students how to write software, teachers need to act as guides and encourage the students to learn for themselves.
He said that when he was teaching at Hartford State Technical College, he would often find himself sitting up at night reading the text book a chapter or two ahead of the students, so that he could translate it into something the students could understand.
“I have very little sympathy for teachers who say, I don't have the skills or I don't have the knowledge. There's Google, there's the internet, you can go out and find stuff, you can challenge the students to find things,” he said.
“If you're afraid that your student is going to know something more than you, you better get out of the teaching field.”
Which programming language?
When learning to code, the first question is, what language should I learn? While many people advocate Java or C, Hall believes that students should first learn Shell (the command language built into GNU/Linux operating system), due to its usefulness for systems administration, and its prevalence in open source systems.
While acknowledging that Java and Perl are both good options for a second language, Hall expressed a preference for Python, stating: “It's an interpreter, it's a compiler, it's used a lot in web stuff, it's very powerful. Some people hate it because of a little syntax issue of it using white space, but I can't get excited over that.”
As a third language, Hall recommends learning “an assembly language of some type, and hopefully a simple one,” because assembly languages teach the student that a computer is made up of registers and memory and cache and spinning disks.
“Once you've learnt those three languages you can really go on and learn anything,” he said.
Hall added that different languages have different features built into them that allow them to be better at error checking, but these can slow the program down. It is therefore important to choose the right language for the task, so that there is an appropriate balance of speed and accuracy.
“One of my favourites is the language C, which is actually a high-level assembler, but it doesn’t really do any type checking, and it’s a dangerous language. But on the other hand it’s very efficient, and so you have to make that trade off between danger and efficiency,” he said.
“If my nuclear power plant is melting, I want the fastest language in the world to go in there and lower those rods so it’s protected. You could do all the type checking in the world, but if it’s not fast enough to lower the rods it won’t make any difference.”
Hall is an advocate of free and open source software, and believes that the market for free software is improving. Free software currently runs on 98.6 percent of the 500 fastest computers in the world, he said, and the majority of embedded systems use Linux or Android, (which is based on the Linux kernel).
Open source is also popular on server systems, with around 60 percent running either Linux or BSD (Berkeley Software Distribution). However, uptake on the desktop is still slow with only 7 percent of the new systems being sold running Linux.
The main challenges to free software, according to Hall, are in the political arena. The patent office is running amok, and various entities are also battling for control of the internet, meaning that consumer privacy is under threat.
On the patent issue, Hall differs in opinion from Richard Stallman, president of the Free Software Foundation, who believes that there is no such thing as intellectual property.
Hall believes in copyright – so if a person has a thought, they have the right to say what happens to that thought – but he said that patents eliminate so many opportunities for innovation that they are ultimately counter productive.
“I encourage people to license their ideas freely and allow other people to use them, as they have used other people’s code – because hardly anybody builds something from scratch these days. They use other people’s code to build it, so that’s a trade-off,” he said.
“But if they decide not to do that, if they want to sell those ideas, I’m not going to spit on them.”
When questioned about the PRISM scandal, and the news that the US National Security Agency has been monitoring communications between the US and foreign nationals over the internet for a number of years, Hall said that he is not too worried.
“From what I've seen in the media, the government has been seeing metadata, which is information about who's talking to who. Even though they gather a huge amount of it, (they need to do that for statistical purposes), it's what they operate on afterwards that matters,” he said.
“So Google, for instance, pulls in huge amounts of data, but then they throw away the parts that identify which person did what, and they just work off the metadata. I have no problem with that, we've been doing it for many many years, credit card sales are all registered, people use them for marketing.”
He added: “If the government can use this information to capture a terrorist and save 100 lives, within scope I think that’s OK, I can live with that. But when the government starts using that information to come into my bedroom, that’s when I’m really going to object.”
John Hall is will be giving a keynote speech at Telefonica's Campus Party in London on 2-6 September. For more information go here.