At the recent ApacheCon North America 2019 in Las Vegas, James Gosling delivered a keynote talk on his personal journey to open-source. Gosling's main takeaways were: open source allows programmers to learn by reading source code, developers must pay attention to intellectual property rights to prevent abuse, and projects can take on a life of their own.
Gosling, the inventor of the Java programming language, recounted a series of events in his career where he dealt with open-source issues before the concept was formalized and the use of open-source licensing became commonplace. His first encounter with software that was clearly open-source was at the University of Calgary in the 1970s. The university had received a magnetic tape from Nicholas Wirth that contained a Pascal compiler's binary and source code. The source was a single file: "It was literally one function," according to Gosling. It was Gosling's first experience with a large program "written by somebody who actually knew what they were doing." Wirth's code was simple, but understandable. Gosling was eventually hired to port Pascal to the Multics operating system, which he described as:
a fabulous operating system destroyed by corporate stupidity...if Multics had been open-source and not handled by clowns, Linux wouldn't have happened and Unix wouldn't have happened.
The next point along Gosling's journey was Simula, the world's first object-oriented programming language. Gosling had a copy of the Simula binary on tape, but the source was printed out on "a stack of paper about 8 inches thick," written in assembler. Using Simula, he "fell in love" with OOP, and reading the source code helped him understand how it worked; for example, what a virtual function table was and how it worked. According to Gosling, these things were poorly documented; the first PhD thesis involving OOP, by Ivan Sutherland, contained one paragraph describing OOP. Gosling's own PhD thesis was "a macro expansion of one half of one paragraph of [Sutherland's] thesis."
Gosling moved on to Carnegie Mellon University (CMU), which he described as "an amazing place." While at CMU, Gosling coded a version of Emacs, because he had become familiar with the editor when working on Multics, and discovered in graduate school that "vi sucks." With the adoption of BSD, Emacs grew in popularity, and Gosling began distributing his software on magnetic tape. Arpanet did exist, but the high-speed "backbone" links were 50kb/s.
If you've got a big piece of source code or a binary...a mag-tape and US Mail [would] beat the network every time.
Gosling didn't mind sharing his work but didn't want the generosity to be abused. He recounted a time when he was contacted by a business that wanted to ship Emacs with their mini-computers. "Their letter was almost literally, 'You'll get famous and we'll get rich.'" Eventually, Gosling decided that he had to find someone else to maintain Emacs so he could graduate. He found two coders to take it over, but they needed income. Gosling agreed that they could charge commercial customers, but universities must have it for free; again, he wanted his code to be shared, but he also wanted to protect maintainers from be abused.
While working on his PhD, Gosling built a spreadsheet calculator called sc as an experiment to understand and improve the evaluation rules of Visicalc. Gosling spent a week on it and "threw it over the wall". The program is still available with Linux; the latest version was released in 2018. Gosling noted that sometimes projects like this disappear, but sometimes they find a life; it all depends on who finds them valuable.
Gosling eventually came to Sun Microsystems. Gosling said, "In many ways, Sun was built on open-source, although getting the corporate lawyers happy with the whole concept was difficult." Sun's Solaris operating system was based on BSD, but at first Sun did not release their own software contributions under similar terms. Gosling described Java as a "rocky road" from the point of view of open-source. Java was released with source code "from day 1," but the license was complex and messy. The license was an attempt to balance platform providers' desire to differentiate themselves (really, Gosling says, to become "sticky"), with developers' desire for their code to run.
Eventually, Java adopted the Gnu Public License (GPL). Gosling says this was "a leap of faith for Sun," but in the end it was a success. Sun learned that the "service and support" revenue model could work, and that the marketing leverage of open-source was more important than licensing revenue. Sun eventually open-sourced everything, except Solaris. Gosling claims that Solaris "couldn't make the leap" due to people problems. It was making progress toward open-source, until the Oracle acquisition. Java, which was open-source, survived the transition; Solaris did not.
Gosling concluded with a list of the things he loves about Apache: the clean license, the strong community, and the Code of Conduct. Gosling especially praised the CoC for protecting the Apache community from abusive behavior.