It became almost 25 years after the birth of the HyperCard and its HyperTalk language. Although it may be seen as hobbyists dev. environment, it suggested very interesting ideas like :
- RAD (Rapid Application Development) tool
- Hyper Links
However, probably due to J. Sculley’s speaking of overlooking of HyperCard as a missing of a chance to be a king of HTML era due to its hyper links, people seem to remember its Hyper Text/Links as a kind of the most important characteristics.
However, to me it was the future of OOP or the core of the OOP language.
If you know why OOP languages were born, and the concept of components are strongly tied with OOP, it could see its distinctive feature among OOP languages. That is, each object like window, buttons and etc contains its own code in itself. If you double-click a button in editing mode, it opens an editor window on which you write button handler code. Visually it looked like that those buttons and other objects contain code.
So, those buttons, windows etc can be thought as self-contained objects. If you copy those, the code inside was also copied.
This is very unique interpretation of OOP and it actually serves the original goal of OOP more well than other approaches.
If you are a long time Simula/C++ S/W engineer, you would have heard that C++ didn’t do something meaningful in S/W development in terms of modularized “production” of S/W product just like H/W components like transistors, registers, memory chips etc did. You can say C++ did a lot. I know. It did a lot, but you don’t see the point why people have said that way.
The “encapsulation” in C++ and MVC pattern, which is widely used in Objective-C/Cocoa are taking different approach than that of HyperTalk.
They, i.e. C++/Objective-C are more focused on how to allow modification of code more independently by not interfering with other components you already wrote.
Well, one drawback of HyperTalk is that it is not easy to print out the whole source code, because you had to open each buttons, windows etc to see their code and print it.
So, wouldn’t it be interesting to provide a new model for the IB module of the Xcode in that Xcode creates source files for “control” code for objects where we are supposed to write “notification handlers”, some protocols like “will…”, “did…”, etc and any additional messages, and visually make it look like that the code is inside of such objects?
So, you can have the best of the both world : easier to get the whole source files to print and check, and visual “OOP”ness.
BTW, after the booming of iOS programming, in Apple’s tech document, I see more “methods” rather than “message”. Although most newcomers will say that there is no difference between those and between saying “call a method” and “send a message”, but there are huge difference. Calling them messages and “send a message” somehow makes our brain to think things more OOP way. When I studied Obj-C at first, I was surprised that I thought more OOP way than I did before. ( I was already very OOP-savvy because they way I think and due to the Korean language. When my colleague student had difficult time in understanding OOP languages, OOP in C++ was a kind of very natural to me. Oh.. they were also Koreans, but somehow they were so glued to procedural language, although I wrote procedural language longer time than them. So, you can’t say that I didn’t think OOP way in C++.