Tracing the Lineage: How Java Owes a Debt to Smalltalk
Michele Rallo
Senior Software Development Engineer @ Expedia Group | Agile Software Development, Cloud DevOps
Introduction
In the vast landscape of programming languages, it is crucial to recognize the historical influences that shape the tools we use today. It is unquestionable that Java, one of the most widely deployed programming language and technology, owes a significant debt to Smalltalk, a pioneering visual environment in the realm of object-oriented programming (OOP). It is surprising how often this connection is overlooked by us, Java developers. My aim is to shed some light on the debt Java owes to Smalltalk, particularly in terms of its terminology and concepts. En passant, I will touch on the fascinating link between Smalltalk's object-oriented concepts and the field of cell biology, as envisioned by its visionary creator, Alan Kay.
Smalltalk: A Revolution in Object-Oriented Programming
In Smalltalk, conceived by Alan Kay and his team at Xerox PARC in the 1970s, the central premise was the concept of objects and message passing as the foundation of computation: everything is an object, and communication between objects occurs through message passing. These ideas were groundbreaking and paved the way for future object-oriented languages, including Java.
Java's Indebtedness to Smalltalk
When Java was developed by James Gosling and his team at Sun Microsystems in the mid-1990s, it drew inspiration from various programming languages, including Smalltalk. Java adopted several key concepts from Smalltalk, subtly but significantly shaping its design and terminology. Some of these aspects are:
领英推荐
The Biological Inspiration
One fascinating aspect of Smalltalk's origins is its connection to the field of cell biology. Alan Kay, a proponent of interdisciplinary thinking, drew inspiration from the biological domain when conceiving Smalltalk's object-oriented concepts: the idea of cells communicating via sending and receiving signals inspired the communication mechanisms in Smalltalk. In my opinion, this is one of the finest examples of nature-inspired computation.
Acknowledging the Debt
It is essential to recognize the debt Java owes to Smalltalk, as it allows us to appreciate the historical context and evolutionary path of programming languages. Java's success can be partially attributed to the solid foundation laid by Smalltalk's innovative ideas. Developers, especially those well-versed in Java, should acknowledge and embrace this historical connection, amplifying the understanding of their tools and encouraging the exploration of alternative paradigms.
Conclusion
It has always been striking to me how Java owes a significant debt to Smalltalk. Examining the historical lineage and exploring the conceptual link between Smalltalk's object-oriented ideas and cell biology, is crucial for understanding the foundations of the programming languages we use today and appreciating the rich history behind their design choices. Let us acknowledge the debt to Smalltalk and embrace the heritage that has shaped our contemporary programming practices.
Bibliographic References
Ingalls, D. (2020). The Evolution of Smalltalk: From Smalltalk-72 through Squeak. Proceedings of the ACM on Programming Languages, 4(HOPL)
Kay, Alan. (1993). The Early History of Smalltalk. ACM SIGPLAN Notices, Volume 28, Issue 3