Latest news about Bitcoin and all cryptocurrencies. Your daily crypto news habit.
Ilya Suzdalnitski recently published, âObject-Oriented ProgrammingâââThe Trillion Dollar Disaster.â This screed goes to great lengths to point out OOPâs shortcomings. While I donât necessarily agree with everything he says, I do agree with one thing:
OOP, as taught and practiced with languages like C++, Java, and C#, has been a disaster.
These languages treat OOP as a way to apply abstract data types, rather than the message-based conception espoused by Alan Kay.
There is another way to look at OOP: from the standpoint of Smalltalk, which was the first language to popularize OOP in the 1980s and 1990s. (Simula was the first language to introduce OOP concepts.)
To understand the essence of Smalltalkâs philosophy, watch this video clip of Alan Kayâs tribute to Ted Nelson (start at 2:17):
Some more insight comes from Alan Kayâs âThe Early History Of Smalltalkâ (©1993 ACM):
Smalltalk is a recursion on the notion of computer itself. Instead of dividing âcomputer stuffâ into things each less strong than the wholeâââlike data structures, procedures, and functions which are the usual paraphernalia of programming languagesâââeach Smalltalk object is a recursion on the entire possibilities of the computer. Thus its semantics are a bit like having thousands and thousands of computers all hooked together by a very fast network.
and
Smalltalkâs contribution is a new design paradigmâââwhich I called object-orientedâââfor attacking large problems of the professional programmer, and making small ones possible for the novice user. Object-oriented design is a successful attempt to qualitatively improve the efficiency of modeling the ever more complex dynamic systems and user relationships made possible by the silicon explosion.
The big takeaway is this: All the complaints youâve heard about object-oriented programming and inheritance and scalability issues have come from using C++, Java, C#, etc. The Abstract Data Type philosophy is detrimental to large-scale software development.
Alan Kay famously said:
Actually, I made up the term âobject-oriented,â and I can tell you I did not have C++ in mind.
(Start at 10:00.)
Said Alan Kay: âThe Internet was done so well that most people think of it as a natural resource like the Pacific Ocean, rather than something that was man-made. When was the last time a technology with a scale like that was so error-free?â
Alan Kay likened his object-oriented philosphy to how the Internet was built, or how biological organisms consisting of billions of cells are built. Smalltalk is fantastic for truly scalable solutions.
As much as Mr. Suzdalnitski admires Erlang, it is not an object-oriented language in the sense that Smalltalk is, in the sense that Alan Kay intended. I would argue that Smalltalk is the only true, pure object-oriented programming language in history. It doesnât even have built-in syntax for conditional and iterative execution, both of which are procedural elements!
The Object-Oriented Schism was originally published in HackerNoon.com on Medium, where people are continuing the conversation by highlighting and responding to this story.
Disclaimer
The views and opinions expressed in this article are solely those of the authors and do not reflect the views of Bitcoin Insider. Every investment and trading move involves risk - this is especially true for cryptocurrencies given their volatility. We strongly advise our readers to conduct their own research when making a decision.