Federal Source Code Study Logo

Federal Source Code Study Series Part 2: The History of Open Source Software

Code.gov
CodeDotGov
Published in
3 min readJun 5, 2020

--

By Joseph Castle, PhD, and the Code.gov Team

We’re back again with another installment of our Federal Source Code Study Series. Like Marty McFly we’re taking you back in time for a deep dive into the history of open source software (OSS) and a look at our patron saint of code Grace Hopper. So jump in our DeLorean and ride with us through the history of code. #CodeOn

Grace Hopper sits with fellow members of the team developing on the UNIVAC I, a team Hopper joined after completing her work on the Mark I. Photo Credit: Obama White House Archives

Research on OSS

The history of OSS is intertwined with the broader history of hardware (HW) and software development (SW).

  • 1940s & 1950s — The modern computing era of the 1940s and 1950s consisted of large computational machines, funded by the U.S. government and hosted at academic institutions. Computers at this time were used to calculate artillery trajectory tables in support of World War II. Computer programming consisted of flipping switches to change electrical signals or using paper punch cards for creating and executing lengthier calculations. Some of the earliest elements of OSS, community and code sharing, can be traced to Grace Hopper’s work at the Harvard Computational Laboratory with her efforts in building a compiler for the Common Business Oriented Language (COBOL).
  • 1960s & 1970s — The mainframe and the microcomputer era of the 1960s and 1970s began with most hardware and software bundled to support mainframes. Two important events during this time led to OSS emerging as a distinct phenomenon. First, in academic institutions user’s work literally was left in the open, on the computer, resulting in the sharing of programming innovations freely for others to benefit from, build upon, and share again. Second was the development of the personal computer (PC) and allowing computers to move from back-room data centers to office workers and hobbyists.
  • 1980s — The 1980s, also known as the PC era, continued with the growth of personal computer construction and software development moving from operating systems to applications for personal and office productivity. The free sharing of software ended when companies began selling microcomputers with software already installed, with its source code not available to the user. For newly formed computer companies, competition to innovate software generated an increased need for software copyrights, licenses, and limited sharing.
  • 1990s & beyond — The Internet era of the 1990s consisted of three main approaches to software development: 1) software and hardware as tightly bundled; 2) software including the operating system as unbundled; and 3) free and open source software, allowing for software to be modified by any user. The resurgence of OSS occurred because of the Internet’s communication capabilities and the development of web technologies. Developers could now share software through email or by posting on a website. A new norm in computing evolved: organizations regularly used the Internet, web, and open source models for corporate operations.

OSS as a Movement

An OSS movement began as corporations pursued a profit motive by increasingly selling restricted software. Non-profit organizations sprung-up with beliefs that software should be created, shared, and improved upon communally in the public domain. These new organizations criticized the traditional method of software development (e.g., formal, closed source) and touted the open source method of software development (e.g., informal, communal), which offered more opportunities for collaboration and arguably consisted of higher quality and usability.

OSS as a Process

Open source computing entails a process of creating and sharing software. This process includes freely distributing source code for others to fix, improve, and customize through a community of people, who are geographically dispersed. The process, made possible by online coding platforms where individuals post their code base, allowed for code to be licensed and documented for use. Applications could now be supported with DevOps approaches and tools (e.g., CI/CD, automated testing).

Coming Up

The next part of this series continues with describing the federal government’s intersection with OSS.

--

--