I'm not sure that anyone is interested in how HyperCard was arranged. But I can not write about it. Something from the series “Do you want to talk about this?”
Continuation, the previous part here, the beginning here.
The conceptual basis of HyperCard is a stack of cards, with graphics and text, with controls and … a connection between worlds, separated by hundreds of light years.
In fact, HyperCard is much more interesting than stars and interstellar spaces. What does Sirius talk with Betelgeuse?
Elements of the “machine” HyperCard
What is the secret of HyperCard's attractive power, after all, many people “fell ill” with it. Something in him was such, psychedelic and transcendental?
Let's try to figure it out. Let's believe algebra harmony, so to speak.
HyperCard is a “constructor for creating applications”. This virtual lego. It consists of a very small set of user items (stacks, backgrounds, cards, fields and buttons) and a small set of tools (some special stacks, the Recent and Message Box screens).
Each replicable item – a rather large set of properties, tuning which it could be turned if not into anything, then close to it. Each type of basic elements played its own, strictly defined role for it – but within its role with it it was possible to create whatever it pleases.
A stack is simultaneously a unit of the file system, a HyperCard document, a file with the type ' STAK 'and the code of the creator' WILD ', and the area of habitation of all other replicable elements. Outside the stack, they did not exist. In HyperCard, the type was, of course, 'APPL', and the code of the creator, which he was, is the same as for the documents he commands, 'WILD'.
The question arises: why not 'HYPE'? What wildness (“wild” in English “wild”)? The answer to this question is at the end of the article.
Stacks were very different in size and utility. All the applications created in HyperCard (stekver) were stacks. Among them – such as Broderbønd Myst, Focal Point and Business Class Danny Goodman, the prototype wiki from Howard Cunningham – by 2004, there were hundreds of thousands of more than decent programs that were just stacks.
HyperCard 2.2 had the opportunity to turn stack into a stand-alone application, which further brought the stacks closer to industrial programming, though, depriving everyone else of the opportunity to disassemble someone else's program and see in detail how it is arranged.
A background is the union of several cards (any number of them) and, in addition, a combination of graphics, fields and buttons that repeat on all the cards entering this background. To edit the background in HyperCard, a special mode was provided, and for clarity, it also stood out with an intermittent frame around the menu bar similar to the edge of the volunteer race in the Russian Imperial Army.
There must have been at least one background in the stack, it could be empty (without graphics and without buttons and fields belonging to it). There could be as many backgrounds as possible.
The card is the last of the replicable elements, consisting of other elements. Something similar in meaning to the screens in mobile operating systems. The card combined the elements of the background to which it belongs, and its own. And, besides, what the HyperCard user saw on the screen of his computer, with a very rare exception (the Recent screen, for example), was one of the cards.
Other elements in the card are fields and buttons.
Field ( field) is the only way the editable text exists in HyperCard. All other texts (graphics) could at best be edited only in the process of their creation. The fields consisted of a theoretically unlimited number of rows. In practice, in the classical Mac system, the standard (and very high-quality) structure for storing and processing text limited its size to 32 kilobytes.
In programs that were supposed to deal with larger texts, this was one of the significant problems, which was successfully solved (but the methods of solving it were kept secret). In HyperCard, before the 32-kilobyte barrier was overcome, it did not happen. It was not necessary.
If the field belonged to the background, the text entered into it was stored in the card's memory.
Button (button) is the interface element of the start of some action. In the original design it was assumed that their only function would be navigation, switching from one card to another, from the stack to the stack – but it quickly became clear that it was much more interesting to make them universal. Buttons, as well as fields, could belong to both the background and the card itself.
The tools could include all the commands offered in the HyperCard application menu, up to Copy / Paste and create / delete / copying cards, but we will not go to extremes. Although, if I were writing a book, I would certainly write about some of them.
One of the most important principles of the miracle application, inspired by the transcendental spirit of the universal mind, was the navigation between the cards. The very links between what at first glance may seem to be unrelated to one another. That I could not resist without hints at a starry night in Los Gatos, a couple of blocks from the same garage of Steve Jobs's parents …
The Recent screen showed thumbnail images of 42 cards on which the user was last. If a card was visited more than once, Recent showed it only once. It was a modal screen – you could only get out of it by selecting one of the cards. In my opinion, this did not change in HyperCard 3.0, forever remaining a public alpha version.
In fact, there was no esotericism in this navigation tool. This is one of Geoff Ruskin's favorite ideas, while Bill Atkinson, while still a student, listened to the course of the graphical user interface with Professor Raskin.
To the special stacks, the classic HyperCard 'study (all the editions of the Gudman's “Complete HyperCard Guide” scattered into meaningless bits numerous Guides of Apple Computer and my own works from the beginning of the 90s of the last century of the last millennium), relates Home and for some reason Help.
The last one was wonderful, I even translated it into Russian, and most of all today I'm glad that he , for apparently not survived. If someone has a Russian translation Help, in a quiet way, send it to me … And ts-s-s! Suddenly it's mine !!!
But Home really played an almost mystical role in HyperCard. It is so important that my first impression of www was overshadowed by the absence on the Web of the main page. Home was the first card opened by HyperCard. It was collected all (according to merchants Apple) important “links” to the most important stacks. Fortunately, this card could be edited, any number of additional pages could be added to its background, bending the volatile world to itself.
It was a navigation center, and it was great.
Message Box is a one-line windoid (window , which is not a window, the Mac's system still has their analogue, “floating windows” floating above the user interface and all other windows … According to the rules of the Human Interface Guide, such windows should not be large and close too much space under them I find out who invented such floating people here windows to display Mac's Help, the size of 3/4 of the screen …, in which you could enter commands in the HyperScript language.
And not only .This was also a calculator .The calculator with access to trigonometric and logarithmic functions. to combat blocking of resources … And a lot for what else.
HyperScript, which is almost not WildScript, I'll describe in a separate article.
HyperCard was object-oriented, without the ability to create new classes.
Classes were officially five:
- background, [19659039The
The objects of these classes exchanged messages, with each other and with the “system”, in its role the object of the hidden, private class was the HyperCard application itself.
objects of these classes had a set of properties, and (with the exception of a button) also content and content. In the stack – one or more backgrounds, in the background – cards, buttons and fields, in the cards – fields and buttons, in the text fields. The buttons had only properties, among them a style that defines how it should look and behave.
In the Mac, the procedures for rendering and managing many elements of the system interface were … replaceable and redefined. The code for standard windows, controls, menus and even menu bars was located in code resources, types WDEF, CDEF, MDEF and the like.
I'm not sure that it started with HyperCard, I just do not remember the earlier examples. The same way went and HyperCard. To expand the standard capabilities of the application in specific stacks, you could add your own (or your own) resources such as XCMD and XFCN to their “resource tap”.
However, first they had to either be found somewhere, or written. In the late 80's, this code was supposed to fit into 32 K, but for machine code it's quite a lot.
The difference between XCMD and XFCN is that the latter is a function that returns a value. Such resources were called “code”. Theoretically, such a resource could be typed in ResEdit, but … on super abilities we'll talk on another resource.
In the beginning of the 90th many applications acquired code resources, it became fashionable, and in the market and in free collections there were sets of such resources for all cases It's simple: Bill Atkinson called the WildCard application he invented, because the idea came to him and unexpectedly, how come the wild beasts – but they do not know what to do with the WildCard vs. Apple HyperCard
. when it was already going to release and for the legalization of the new product, the professionals took the job, it turned out that this brand is already occupied.
It would seem, what trifles – herself Apple uses someone else's trademark (Apple Corps, the Beatles record company, in effect the property of Paul McCartney), and in ours days in the world there are two three-letter systems, called iOS and IOS.
It's not appropriate to explain what iOS is at AppleInsider. IOS (all capital letters) is Cisco's gateway operating system for routers and network switches of this company. To be recognized by lawyers, there are many more far-reaching coincidences.
But, as they say, quod licet iovi … Apple and iOS needed Steve Jobs, and with him few people dared to argue, even in the late 70's. Therefore, the conflicts of trademarks were settled in court, for decent amounts of money and on some terms. And the case of Apple vs Apple several times returned to court – Apple, which used to be Apple Computer, just a recidivist of some kind. It was she who repeatedly violated the agreements reached earlier with Apple Corps, which immediately and with great pleasure filed complaints to the court.
But, as they say, what is allowed to Jupiter … To sue the owners of the WildCard trademark because of the illegitimate (albeit a respected head of the company) program and programmer, albeit very valuable for the company, no one was going to. The Board of Directors would not understand this.