James Gosling, inventor of the Java programming language and the virtual machine, skipped many of his high school math and physics classes. His teachers knew it, but they still gave him A’s. That’s because, said Gosling, they knew why he was missing the classes. He was working for the physics department at the University of Calgary writing software for satellites.
“That attitude was a huge influence on me,” said Gosling. “They understood that learning happens where it happens and that I was getting more out of these out-of-school activities than I would ever get from their formal teaching.”
As a young teen, Gosling caught the computer bug because of all these machines could do. “I loved toys,” he said, especially nine-track tape drives, flatbed plotters, and a paper-tape reader spotted on a tour of the University of Calgary. He was 14 and enthralled by the large computer there with 8k of RAM with all its “whirring and blinking things.”
Soon, Gosling was sneaking into the college’s computer lab and teaching himself to write software. Looking back on his own march into the computer field, he believes today’s students should “do what’s fun,” he said.
He’d definitely like more students to enter the computer software field. “Lots of kids have a fairly negative view of the profession for reasons that don’t make any sense. They saw the dot-com bust and thought everyone got fired. Relatively few did, and those that did lose jobs found other software engineering jobs elsewhere,” Gosling said.
“What happened was not a collapse of the software industry. It was a winnowing-out of some goofy business models. Things that worked survived. There are more people writing computer software now then there were before the bust. The Internet didn’t get turned off. Students are scared of trying the profession because they fear it doesn’t have a future, when in fact it’s a very healthy, enjoyable, and well-paying profession. ”
AN ANSWER TO OTHER PROBLEMS
Gosling created the Java programming language and the first Java Virtual Machine in 1991 and later the first Java compiler and Java class libraries to solve other people’s problems—those who were trying to build a system that was more than just tying various computers together. It was part of the Green project at Sun Microsystems.
The various implications of networking created stumbling blocks. It was “what happens when you have a network of a wide range of cooperating things, a heterogeneous set of operating systems that needed to work together, to share codes, yet they had to be secure and reliable,” explained Gosling.
His part of this networking project was to figure out how such heterogeneous systems could talk to each other. “It was a big stack of problems. Many hadn’t been hugely important in the past,” he said, “but they were aggravated by the presence of the network.”
With the Java programming language, said Gosling, “People could change the scale of applications they were ready to build. It changed the game regarding reliability, security, and developer productivity. It gives developers the ability to build software applications that can run on multiple platforms and across a large number of interconnected systems.” It has been a key ingredient to the success of the Internet.
Gosling actually first released Java, not on Sun.com, but on the Web site of a friend of a friend, wicked.neato.org. It took some convincing of the Sun people and the personal plugging of its value on the technology conference circuit for the world to learn of it. And that they did. It is now on 2 billion mobile phones, 650 million desktops, 2 billion SIM and smart cards, and millions of other locations, according to the Sun Web site.
The challenges facing Gosling and other software engineers today grew out of that ability to change the scale of applications. One of today’s big problems “is dealing with multithreading and multicore machines, dealing with the scale of systems people are building,” he said.
“It is a sad phenomenon,” said Gosling, “that once upon a time, I thought making systems smaller and simpler would make the developer’s job easier. What actually happened is like the Peter Principle. When the systems became simpler, people said, ‘Let’s make the requirements harder because you have more time.’ Now, any gain is eaten up because we can do things that are even harder. We’re not improving the life of developers, but we are increasing the scale of things people can build.”