Echoes of the Past, Voices of the Future: The Cyclical Amnesia in the Computer and Software Industry
“And some things that should not have been forgotten were lost. History became legend. Legend became myth. And for two and a half thousand years, the ring passed out of all knowledge.” — Galadriel, The Lord of the Rings
This quote from the epic saga, “The Lord of the Rings,” resonates surprisingly well with the evolution of the computer and software industry. Once upon a time, the term “computer” referred to a human occupation, someone meticulously performing calculations. Over time, that concept evolved, as electronic computers replaced human computers, and eventually, we began to refer to these machines simply as “computers.”
Just as the term “computer” transitioned from a human occupation to an electronic entity, we are on the precipice of another linguistic shift. The term “programmer” may soon no longer refer to a human writing code. With the advent of large language models (LLMs) like GPT and machine programming paradigms, we’re seeing the rise of “electronic programmers” — artificial intelligences capable of generating code and solving complex problems.
In a few decades, we might refer to these AI systems simply as “programmers,” forgetting that the term once referred to humans. Imagine, a software development project where the primary coder is an AI. This shift would bring about a whole new era in the industry, an era of electronic programmers.
This shift is not an isolated event but part of an ongoing cycle of rediscovery and forgetting that permeates the industry. There is an apparent “amnesia” where old ideas are frequently repackaged as new, without acknowledgment of their historical origins. As opposed to the idiom of “standing on the shoulders of giants,” it often appears as though we’re stepping on each other’s toes.
Here are some classic examples of this phenomenon:
Functional Programming: From Lisp to Rust and Kotlin
Functional programming is hailed as a modern, efficient approach to software development, particularly for concurrency and systems requiring high reliability. Languages like Haskell, Scala, Rust, and Kotlin are riding this wave. However, the principles of functional programming date back to the Lisp language from the 1950s and 1960s, one of the earliest programming languages.
Virtualization and Cloud Computing: A Legacy of the 60s
The cloud computing environment, a cornerstone of modern IT infrastructure, utilizes virtual machines and containers for seamless, scalable service. Surprisingly, this concept isn’t new. IBM first introduced virtualization in the 1960s, providing simultaneous, interactive access to their mainframe computers.
Artificial Intelligence (AI) and Machine Learning: Old Concepts, New Data
AI and Machine Learning are often seen as the forefront of technology, opening unexplored avenues for innovation. Yet, their roots are not as contemporary as one might think. The concept of AI emerged in the 1950s, while the foundations for neural networks were being developed as early as the 1940s.
Moreover, the concept of embeddings in LLMs, which seems so novel today, also echoes ideas from the past. In AI research, the notion of “knowledge representation” has been a crucial aspect since its inception. This concept involves creating structured information about the world that an AI system can understand and reason with.
Today’s AI models, like GPT, use a form of representation called embeddings, which map words, phrases, or other types of data into numerical vectors. These vectors capture semantic and syntactic properties of the data. For example, in word embeddings, similar words have similar vector representations. This concept might seem revolutionary, but it’s just the latest manifestation of the idea of knowledge representation. Like previous paradigms, it is shaped by the constraints and possibilities of the present context — a testament to the continuity and cycles of innovation in our industry.
Agile Software Development: Iterative Methods Reinvented
Agile methodologies, while seemingly innovative, are built on well-established concepts. Iterative development methods have been around since the 1950s. The true novelty of Agile lies in the formalization and packaging of these ideas into a consistent, applicable methodology.
Microservices: Echoes of Service-Oriented Architecture
Microservices architecture, a recent buzzword in the industry, involves breaking down an application into small, loosely coupled, independently deployable components. This approach mirrors the principles of the Service-Oriented Architecture (SOA) paradigm popular in the early 2000s.
These cycles of rediscovery and forgetting indicate that the computer and software industry’s progress isn’t always linear. An idea might not take root not because it is forgotten, but because the timing isn’t right, or the context isn’t prepared to adopt it. It may take advancements in hardware, shifts in user needs, or simply time for an idea ahead of its time to be embraced.
While we stand on the precipice of this next shift, it is essential to reflect on these historical cycles of change. As we march towards a future where AI plays an increasingly significant role, we should strive to remember the human history that laid the groundwork for these advances. Recognizing the patterns of the past helps us understand the trajectory of our future better, ensuring that we learn from our history, rather than forget it.
Let us strive not to forget our industry’s rich history but rather remember, “we are dwarfs standing on the shoulders of giants.” By acknowledging the past, we can better appreciate the present and shape the future of technology.
This article was co-authored with Fernando Trasviña, who, with a keen understanding and respect for the past, provided invaluable insights on the cyclical nature of the technology industry. His passionate and emotive discussions served as the backbone of this exploration into our industry’s forgotten lore and possible future.
Do you identify as Latinx and are working in artificial intelligence or know someone who is Latinx and is working in artificial intelligence?
- Get listed on our directory and become a member of our member’s forum: https://forum.latinxinai.org/
- Become a writer for the LatinX in AI Publication by emailing us at publication@latinxinai.org
- Learn more on our website: http://www.latinxinai.org/
Don’t forget to hit the 👏 below to help support our community — it means a lot!