most read
Software Engineering
Why We Killed Our End-to-End Test Suite Sep 24
Culture & Values
The Spark Of Our Foundation: a letter from our founders Dec 9
Software Engineering
The value of canonicity Oct 30
Careers
We bring together great minds from diverse backgrounds who enable discussion and debate and enhance problem-solving.
Learn more about our careers



Matt Swan (Nubank’s CTO), Stuart Halloway (one of our Datomic Leaders), Lucas Cavalcanti (one of our Principal Engineers), and all the engineers at Nu had the pleasure to talk with James Gosling, who’s considered the father of the Java Programming Language. The interview is part of an internal initiative to bring industry luminaries to chat with our world-class team and leverage knowledge and experiences.
Technology professionals always undergo a lot of challenges in the industry: “we all know how important it is to stand on the shoulders of giants”, says Matt Swann, and Mr. Gosling is, for sure, one of those giants.
Keep reading this article to know more about how Java changed the world and the themes that James Gosling went through in the interview, such as functional programming versus object oriented, artificial intelligence, garbage collection and much more.
Who is James Gosling?
Before becoming “Dr. Java”, the way he’s often referred to, James Gosling was just a kid from West Canada’s rural zone, a place much more known for its tractors than for its computers, as himself has said in the interview一especially when we think about the late 60’s, the specific portrait in time we’re talking about in this paragraph.
After that experience, he started to spend time on the University, specifically on its library, dumpster-diving for student’s account information in order to access the University’s computers. After some years hanging out in Calgary’s Computer Center, he finally decided to get his BS in computer science.
But it was in the United States, while taking his PhD at Carnegie Mellon University, that he developed a variant on the popular display editor Emacs. Some years later, already working on the Sun Java project, Gosling mentioned his early projects as inspiration for the concept of a Java virtual machine.
Check our job opportunities
Long term projects and Java
Gosling said that long-term projects were his path to mental health. Working in a fast-paced environment such as the technology world can be harmful to the mind, because, in his words, “when you’re always putting out fires you don’t have time to rest”.
Gosling mentions that, by the time he was developing Java with Mike Sheridan, Patrick Naughton and the other Sun Java engineers, “the programming world had really gotten stuck with 1.1 programming languages like C and, eventually, C++”.
He also mentions that, sometimes, he gets caught up in the idea of creating another language, but walks away from the possibility, describing it as “grabbing on to an electric fence”. To him, Java’s magic doesn’t rely on the language, what really matters is the virtual machine underneath.
Clojure and the uniqueness of Dr. Java
James Gosling identifies in Clojure something that, in his opinion, was a quality also found on early functional programming: the fact that it avoids mutability.
It’s possible to get many interesting features out of that, like multithreading一the ability of a program or an operating system to enable more than one user at a time without requiring multiple copies of the program running on the computer.
To James Gosling, programming is a self disciplined style. When he’s coding, he tries to write in a very functional way, even though his codes may provoke strangeness in others: “when people look at some of my codes, they go ‘what the hell is happening here?’, because I tend to use recursion when other people will use an array”. A defining quote, said so naturally一something that can only be done by geniuses like James Gosling.
Other programming languages, the future of coding and an important advice for less-experienced engineers
“Java works for me”, that’s the answer Gosling gave when asked if he likes or is using other programming languages. Despite that, he admits that the second language he uses the most is Shell Script. Dr. Java also said that Rust works very well when you’re writing low level device drivers, even though he defines most of the scripting languages as “just really slow”.
After this witty mix of roast and compliment, James Gosling talked about the future of programming. He said that real activity has been happening around tools lately and that there’s a strong trend leading to AI based programming tools in our future. To him, refactoring code, for example, is becoming a lot more powerful with the usage of AI.
To him, the fun was in building programs that work all the time. And that’s what Java is really about: building programs that won’t break.
Null pointer, strictfp and Java now and then
To James Gosling, “every solution to the null problem doesn’t feel like a real solution”. That’s why he prefers annotation systems and the “@NonNull” function, that traces the problem back to its origin. He also commented on the selection of IEE754 as Java’s official arithmetic system and the contradictory “strictfp” engineered for Intel.
After achieving so much as an engineer, what’s next for James Gosling?
“I’ll always be an engineer. When I go to the grave, I’ll still be an engineer”. James Gosling is still working because he still loves it. He defines himself as a “little kid with white hair”, always searching for the new challenge that will bring him what seems to be his uttermost fuel: fun.
Check our job opportunities