The term 'SDN' represents a significant evolution in networking technology and draws attention and support from network operators, vendors, researchers and industry regulators. Contrary to popular belief that SDN is a recent invention, or is related only to IP technologies, the concept of network programmability and control/data plane separation has its roots in the 1960s and 1970s when the telephone network started its transition to digital. Many iterations followed, leading to applications in packet networks and today's Internet. In this article, we review a number of early works on network programmability that illustrate how several features of SDN emerged progressively over several decades. Our review starts from the early concepts of network control in the telephone network and continues to examine a prolific period of research advancements in the 1990s and early 2000s that led to a number of startup companies that followed, IEEE's own efforts in standardizing network programmability, and finally the arrival of the OpenFlow standard. We study the importance of this architectural transformation and its influences on modern cloud computing and next-generation networking.