James Gosling is one of the best computer engineers on the planet, a famous developer, and a world-class innovator. He is the Father of Java. He spent many years as a CTO, VP & Fellow at Sun Microsystems. He has built satellite data acquisition systems, a multiprocessor version of Unix, several compilers, mail systems and window managers. He developed the text editor Emacs for Unix. He did the original design of the Java programming language and implemented its original compiler and virtual machine. He briefly worked for Oracle after the acquisition of Sun. After a year off, he spent some time at Google. He then spent over 5 years hacking the control software of autonomous ocean-going robots at Liquid Robotics. Currently, he is working at Amazon Web Service.
Hello everyone, I am host Pramod and it’s time for another episode of mapping the journey. I have a very special guest today. He’s one of the best computer
engineers on the planet and a world-class innovator. He’s the father of Java, James Gosling. I’m thrilled, excited and very honored to speak with you. Welcome to the show Mr. Gosling.
James: Oh, thank you! I’m happy to be here.
Pramod: Before we speak about Java, we want to know about your early days, tell me about your life before tech.
James: Before tech! God, it hardly feels like there was a life before tech.
Pramod: Yeah, It was a very long ago I think.
James: Yeah, I mean I’m Canadian, grew up in Calgary Alberta Canada. my dad’s side of the family were all farmers. My mom’s side of the family, they were all involved in sort of the tourism industry and all over the place. So, and I was always playing with stuff when I was a kid, do whether it was uncle Milford/ grandfather’s farm playing with crazy old farm equipment, to when I was like 10-11 , my dad would find relay racks from telephone switching centres and that had been trot tossed in the trash and I would fool around with them and I pretty much taught myself electronics by dumpster diving.
Pramod: Ok, it’s awesome. So, when and how did your computer’s journey started?
James: I discovered computers when I was I think 13, and a friend of my dads took the two of us on a tour of the computer department at the University of Calgary, and it was pretty much love at first sight, and I discovered that I was able to sort of go over there on my own coz my parents’ house was only a couple of miles away from the University, which was easy to get to on an on a bicycle and being kind of a large guy, I looked a lot like a university student or at least I could sort of muddled my way through. So, I just started hanging out there when I was in junior high and in high school.
Pramod: Ok ok…That’s nice. So, was it something like an inspiration for pursuing computers as your career? Did you see someone or something that inspired you to start computers?
James: It was just toys. I liked to play with them and I had this very strange thing happened to me that, when I was 14, I and-and sort of had been breaking into the University of Calgary somewhat illegally, and I taught myself how to program on various things and some folks there sort of got to know me and then I was offered a job in the physics department at the University, at the University of Calgary. So, I was basically employed by the UFC as a software engineer all through high school. (Awesome) and so I got to play with really wonderful toys, it was a great time.
Pramod: When kids were playing with cars, you were playing with computers at that age.
James: Yes, yes, I was. And I had an office in the physics department that I shared with some grad students. And it was pretty nice.
Pramod: Okay. Okay, let’s move on to your Ph.D., when you did your grads, when you were a grad student at Carnegie Mellon University, you did a lot of fantastic work. One thing which interested, you put it BSD UNIX to multiprocessor version of UNIX. What was that?
James: Yeah, So the CS department had built these rather strange multiprocessors by taking PDP-11 40s and making crazy crossbar switches for them. And these were built in the mid-to-late 1970s which is like a long time ago. These were some of the earliest multiprocessors and they were doing a specialized operating system for them. But one of my thesis advisors hired me for a summer to see if I could get BSD UNIX to run on one of them, and that was quite entertaining. Because what people had mostly done to do multiprocessors at that time was what was called an asymmetric multiprocessor namely one where the OS ran on one CPU and the other CPUs only ran application code. So, whenever you made a system call, you had to go into the, you had to switch processors and that was often kind of expensive and given the architecture of these particular machines, different devices were attached to different physical processors, even though the RAM was all woven together through this crazy crossbar switch. So, I had to build this symmetric multiprocessor architecture that let me associate, like a set of processors with a device right so every device was accessible by different processors. I had to do fine-grained locks inside the kernel rather than the sort of one big lock that tended to be a common way to do multiprocessors. And it worked pretty nicely. It was kind of a bizarre project in the end because at about the time I was feeling like, it was working really well, they decided to decommission the machines.
Pramod: Ok. Yeah, that’s fantastic. Multiprocessor, we can’t even imagine the nineteen seventies having one device have used one processor. That’s very cool. You had uhh… and next at the same time you also developed UNIX Emacs, the original UNIX Emacs in C.
James: Yep, I did that. So, there was an early text editor called Emacs that was written in macros for another text editor called Tico, the text editor and corrector. And so, Emacs was this sort of collection of macros, “Emacs” that was done at MIT. And then several other people who wanted to have Emacs in other places had done editors that they called Emacs, but they were it wasn’t like ports of the original code it was something that was sort of culturally compatible with. And I first encountered Emacs on Multics where I used an Emacs that was written by a guy named Bernie Greenberg and he wrote it in I think maclisp. And I was doing the Pascal compiler for Multics and I just fell in love with Emacs just as a way to do editing. And I was doing the Pascal compiler as sort of a summer project and then, between my first and second years of grad school and so I came back to grad school, desperate to keep editing in Emacs, and there wasn’t one so I needed to write one. So, in the fall of 78, wrote the first C version of Emacs.
Pramod: Yeah. Glad that you wanted one. And we are still using their UNIX Emacs in our…
James: Well it’s changed a lot over the years and has had kind of a stormy history, but yeah it was fun.
Pramod: Yeah, so in your early days, you as you said you developed Pascal compiler and also, I heard that you, read that you had a compiler for a language called mumble. Were you always interested in developing compilers and compilers?
James: Yeah, I’ve always loved doing compilers. Although I have to say I’m not so much like a programming language guy as I am, languages are often the right solution to a problem kind of person. And so, mumble was an acronym it sounded it stood for the most unlikely micro-assembler. And it was a somewhat strange vaguely Pascal-like language for this bizarre horizontally coated microcontroller. it was a, it was a, what was called a VLIW machine, very long instruction word, and really gnarly microcode and people were programming it by deciding what should be in the bit fields of every part of this very long instruction word and it was like almost impossible for actual humans to program it. It was really hard, yeah, and so, I built this compiler for it and we did some projects with it and it worked out pretty well.
Pramod: And as you see you are specialized in graphics. You build Andrew windows system, build user interfaces. It was very early days for user interfaces. How were you getting ideas for building the systems like Windows-based systems?
James: Well, for one thing, I just always like to be doing graphics I mean I was, doing graphics, algorithms when the only way to do graphics output was printing text, online printers, and teletypes, which I still find kind of bizarre. And then when display started become common, I just loved drawing pictures.
Pramod: Okay. So, then you graduated and the next big thing you really worked on was network extensible windows systems at Sun Microsystems. (Yup) How was the experience there?
James: As a technology thing it was a lot of fun. It worked really well as a sort of lessen industrial politics; it was pretty powerful because it was sort of a funny time because Sun had been really successful with this thing that’s now called NFS, the network file system. And NFS is still widely used on like Linux machines all over the place and a whole bunch of Sun’s competitors like Digital Equipment Corporation. They were essentially forced to adopt it by their customers because it had become so popular with their customers. But then when news came around, there was this whole pile of companies and DEC was of the leading company. That all said well, we’re not gonna get in a NFSed again and just turned into a food fight and it was just, it just really annoying to watch it play out.
Pramod: Okay, okay. Then it’s so yeah, it played its role in the time. I was reading about its wiki page and all that. Next, you implemented a compiler for a safe multi-threaded distributed object-oriented programming language named OAK. Why did you develop this language? There was already C++, like…
James: Well, so, there was a group of us at Sun, who were sort of concerned that there were things going on in the technology world, that were outside of what lots of folks at Sun were paying attention to, most computer companies, they worried mostly about the computer industry and we were sort of noticing that there were lots of other things using the same technologies right. It was the people doing like early cell phones and elevators and diesel locomotives and lighting switches and the whole universe that is now called the IOT. And we started the bigger bunch of engineers, in order to understand the IOT world, we did a certain amount of studying but then we just started building prototypes and then talking through the prototypes with some of the companies that we knew well.
And we were writing stuff in C, C and C++ but problems kept popping up that as we sort of analyzed the root of the problems were, were really in the programming methodology. So for example, one of the things was that in the consumer electronics world, people were absolutely dedicated to making sure that their products were safe. it’s like requirement zero on every one of these products was you must not kill the customer, and that showed up in a whole lot of places.
And there are a bunch of places in C, where it’s really easy to make errors that can cause your system to fall over and just do bad things. Most of them have to do with the memory model. The two big ones we have, three big ones I guess were the unchecked array bounds, the weird and wonderful world of pointers and then the fact that you can cast anything to anything and they’re always completely unchecked.
And when these consumer electronics companies, to look through the things that caused them reliability issues; those were like nearly at the top. And so, it’s like well okay, so, I was the person in the project who was tasked with, well go off and try to figure out how to fix these problems. And I did and it started out as just take C++ and try to fix it, but then it got like further and further out of control as other issues popped in.
So, like one of the interesting issues for a lot of these companies was that they really hated the way that they got tied to particular processor architectures. that once you made a decision to go with like an Intel Architecture machine or any other particular architecture, then you were just because of the toolchain you were tied with that architecture for life. And so, you couldn’t for whatever business reasons would crop up, you couldn’t change your mind. And that they found deeply disturbing. So, the oak really started from IOT, or at least what was now called IOT.
Pramod: Yeah, it’s unbelievable now even at 2017, people yeah, IOT is a big thing. Is it back in, what is it 1990s?
James: Yeah, the very early 1990s. The project actually started in 1990.
Pramod: Okay, that’s fantastic. Is OAK also had the analogy of Virtual Machine, JVM?
James: YYeah, that idea came in on day zero.
Pramod: Okay. Next, I think how did this OAK transition to a JAVA? I thought that OAK was also Sun Microsystems set of box projects.
James: We did all these prototypes and then they worked really well and so we decided to see if there was some way that we could commercialize it somehow. And at, and then Time Warner came up with this sort of request for proposals for what they called their full services network, which sounded a lot like the Internet of today. the distributed network of services that, customers connect to, and the other two and so we thought, well so we could do exactly that. That would be an interesting contract to bid on.
So, we bid on that and then for some reason rather, it became really stylish for every cable company and phone company on the planet, to try to do exactly the same thing, they all read the hype around the Time Warner proposal, and they said well, we got to do that too. So, we ended up in this frenzy of, sort of building stuff for all of these companies and that was a deeply crazy time for all these companies. They had all kinds of internal conflicts of interest that took us a long time to come to terms with, and it was also at about the time that the internet was really growing up.
So, we want one of the things that was interesting about SUN is that from the day it was founded in 1982, every machine had a network connection. They all had Ethernet connections and we were one of the earliest companies to be a part of the whole internet universe and we were doing that all through the 80s and all of us believed in all of the internet technologies, and when but during all of those years that the internet was mostly a thing that was only used like in universities and companies, and there were a lot of, a lot of companies that deeply hated the Internet right, and that was companies like IBM and digital equipment and Xerox. They all had competing technologies and so they worked really hard to make the internet go away. And fortunately they all failed and the internet sort of won the day.
And the project with oak was in some, a part of that was trying to get the phone companies and the cable companies, to get interested in internet technologies because they were all using various sorts of technology to do networking that we’re really not very sophisticated and we’re going to fail. so an awful lot of those days was education. And eventually, we just gave up trying to teach them and just said well we’re just gonna ignore the phone companies and the cable companies and we’re just going to do stuff on the internet. Because the internet works and eventually the thing of things would sort out which they did.
Pramod: Yeah, that was my next question. When Java meets web, you lead the engineering team that launched the hot Java browser running small applications called applets. I think this was announced in Sun World Conference. Yeah, and I think this was very important for the initial success of Java, right?
James: Yeah, now we showed people that things like web browsers could be more than just static pages, which back in 1995 was an unbelievably huge deal. And so, it was quite a revolutionary thing and, I was involved in quite a few demos to people that really got people to think about things differently. And it all worked, all worked pretty well.
Pramod: Awesome, and I think Netscape Navigator also incorporated Java and I think that’s another factor I would say.
James: Yes, so Netscape incorporated it and we were trying to, we took this there’s this strategy of trying to work with other manufacturers like Microsoft and Apple and IBM. To get them to integrate Java so that the platform was interoperable so the developers could write programs and not worry about which browser was showing up on.
Pramod: I think they featured right ones run everywhere. I think that was most important to have a language with that feature that C++ did not have.
James: Yeah, and it worked really well. And there are various ways to rephrase that, so like at some places they call it, “Debug once fix everywhere” or when you’re listening to engineering managers talking about hiring teams, it’s sort of “Learned once work anywhere”. because you can get a team that knows Java and since Java can do a lot of different things with Java you don’t have to have, engineers that are specialized in this technology and then engineers that are specialized in that technology and engineers that are specialized in other technologies. And they can’t talk to each other the engineers can actually talk to each other is a big deal.
Pramod: Ok. I think when you develop Java; did you ever think it will be running on like three billion devices today?
James: No, no.
Pramod: Okay, when we installed Java we get three billion devices and that feels so awesome too.
James: Yeah and it’s like well, okay but did you count the smart cards?
Pramod: I know. I think they are running on smart cards too now. Yes, I think they haven’t counted that.
James: Yeah. Well, and the smart card stuff has been going for like 20 years now.
Pramod: Ok, and, just a quick thing. Your journey developing and architecting Java at Sun Microsystems for next 20 years and you also call it the wonderful year at Sun and, how was the experience? I think after the Java was stabilized and you went on for next 20 years architecting.
James: just sort of watching it all happen and in the very early days, I did a hundred percent of the work. I did the original compiler and the original VM and that was rewarding in one way and then as things took off and they and it became a large engineering team with an amazing crew of people, I haven’t had much to do with the engineering of Java for a fair number of years now and other than pivoting with various folks , it’s become this labour of love for so many people and I just get such a kick out of seeing what people are doing with it into it. And it’s a very strange experience.
Pramod: It’s an amazing language. I started developing programming through Java and yeah, I have been doing the same from last five to six years and, then you left SUN for some reason, then you joined liquid robotics.
James: So, SUN was or was acquired by Oracle which was, I had the issues with and then I left Oracle, I took a year off. I went, actually went to work for Google. I was there for a short amount of time and then a friend of mine introduced me to this, this company liquid robotics that was doing robots in the ocean. And I went, “Robots in the ocean” yeah, it’s like the coolest thing ever. So, I went and joined them.
Pramod: Yeah. That must be quite an experience. You spent around five years, right?
James: Yeah, yeah about five and a half years there.
Pramod: Okay. Today what brought you to Amazon? We would love to know, hear more about your experience today at working at the Amazon Web Services.
James: Well, Amazon’s become a really big influence in the computing landscape. They’ve got an amazing engineering team and an amazing engineering culture. And, I interviewed at the whole pile of places and I’ve been at little start-ups and I’ve been at big companies and the whole startup thing can be because it’s always, day by day, survival thing and then, big companies have their own issues. But yeah, Amazon is very intellectually rigorous, doing really hard problems and with really creative solutions and great people. So, I’ve only been here a month so it’s really hard to say anything other than that. But, so far so good.
Pramod: it’s nice. Okay, last question. You’ve seen it all in last 30 years of your computer journey as an innovator. Where do you want to see IT industry in the next 10 years?
James: Oh Lord! There isn’t actually any place in particular that I want to see it be. if I had to the number one thing for me these days has been to make sure that it’s a safe place for people, which means everything from all kinds of security issues too, how do you how do you handle privacy.
Companies like Google and Amazon, invest hugely in both of those and have a pretty good track record. And, but a lot of companies don’t use them as well as they could. And the way that the IOT world has been taking its first sort of mass market steps, people have done a lot of shortcuts. And how can you build like good IOT systems , without making security shortcuts.
I mean there’s this craziness of so many devices having like wired in root passwords. It’s like why? [Yes] this is just it’s not merely wrong it’s like actively stupid. and so these companies get hacked and customers get damaged and it’s all because of sloppy engineering. [Exactly] and all these big ransomware viruses’, things like the current wanna cry and wanna cry copycats that are going on. it’s all IT managers that are just being sloppy. You have to do upgrades and just be professional.
Pramod: Exactly. I think the biggest problem we are all finding is security breaches, privacy problem.
James: Yeah and most of these security breaches are not, didn’t involve people who are like really sharp. , that maybe some of the breach technology involved people who were really sharp. But then they, but then it gets stolen or sold to people who were somewhat amoral and often the defenses against it are really simple, like the upgrade to the latest version and people who are not keeping their systems up-to-date and not installing all the latest patches are just irresponsible.
Pramod: Exactly. Okay. James Gosling, thank you for all your contributions and giving us this great programming language. Like me, there are millions of other developers who absolutely love it.
James: Well thank you it’s been a nice conversation.
Pramod: It was wonderful talking to you. You have a great day, Sir.
James: Okay, you too. Bye
Pramod: Thank you, Buh-bye. Well, that was just unbelievable speaking to Mr. James Gosling. some very interesting stories from him. Most of it known, but I’m very grateful to map his journey on my show. Next week we’ll be following the journey of George Neville-Neil famously known as GNN, champion of FreeBSD operating system. He’s done some very interesting work throughout his career. If you like this show, please subscribe. If you don’t like it, please give me the suggestion by writing a review. This is all just my effort. If you want to be a part of this podcast, co-hosting or helping me out, visit my website www.mappingthejourney.com. Thanks for listening and see you all next week. Have a good long weekend people. Bye
January 18, 2018
December 1, 2017
November 9, 2017
October 26, 2017
October 12, 2017