Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
HyperCard
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
===Design=== [[File:Apple Macintosh SE-30 computer (1989) clear background.png|thumb|The SE/30 was one of Apple's Macintosh computers that were contemporaneous with the HyperCard application.<ref>{{Citation|title= Apple Macintosh SE/30|url= https://commons.wikimedia.org/wiki/File:Apple_Macintosh_SE-30_(1989).jpg|date= 2011-01-07|access-date= 2015-11-16|first= Jeff Keyzer from Austin, TX|last= USA}}</ref>]] [[File:Hypercard_Date_Book_Stack.png|thumb|right|A screenshot from the Datebook stack, included in the original release of HyperCard]] {{quote box | align=right | width=25% | quote=The beauty of HyperCard is that it lets people program without having to learn how to write code β what I call "programming for the rest of us". HyperCard has made it possible for people to do things they wouldn't have ever thought of doing in the past without a lot of heavy-duty programming. It's let a lot of non-programmers, like me, into that loop. | author=David Lingwood, APDA<ref name="APDA Pinpoints"/>}} Described by creator [[Bill Atkinson]] as a "software [[erector set]]",{{r|flynn19870817}} HyperCard is based on the concept of a "stack" of virtual "cards".<ref name=wired/> Cards hold data, just as they would in a [[Rolodex]] card-filing device. Each card contains a set of interactive objects, including text fields, check boxes, buttons, and similar common [[graphical user interface]] (GUI) elements. Users browse the stack by navigating from card to card, using built-in navigation features, a powerful search mechanism, or through user-created scripts.<ref name= info>{{cite magazine |url=https://books.google.com/books?id=qjAEAAAAMBAJ&pg=PT60 |title=A Hypercard Primer |magazine=[[InfoWorld]] |date=November 6, 1989| page=S3 (sidebar)| volume=11| issue=45}}</ref> Users build or modify stacks by adding new cards. They place GUI objects on the cards using an interactive layout engine based on a simple drag-and-drop interface.<ref name= info/> Also, HyperCard includes prototype or template cards called backgrounds; when new cards are created they can refer to one of these background cards, which causes all of the objects on the background to "show through" behind the new card. This way, a stack of cards with a common layout and functionality can be created. The layout engine is similar in concept to a form as used in most [[rapid application development]] (RAD) environments such as [[Borland]] [[Delphi (software)|Delphi]], and [[Microsoft]] [[Visual Basic]] and [[Visual Studio]]. The database features of the HyperCard system are based on the storage of the state of all of the objects on the cards in the physical file representing the stack. The database does not exist as a separate system within the HyperCard stack; no [[database engine]] or similar construct exists. Instead, the state of any object in the system is considered to be live and editable at any time. From the HyperCard runtime's perspective, there is no difference between moving a text field on the card and typing into it; both operations simply change the state of the target object within the stack. Such changes are immediately saved when complete, so typing into a field causes that text to be stored to the stack's physical file. The system operates in a largely stateless fashion, with no need to save during operation. This is in common with many database-oriented systems, although somewhat different from document-based applications. The final key element in HyperCard is the script, a single code-carrying element of every object within the stack. The script is a text field whose contents are interpreted in the HyperTalk language.<ref name=info/> Like any other property, the script of any object can be edited at any time and changes are saved as soon as they were complete. When the user invokes actions in the GUI, like clicking on a button or typing into a field, these actions are translated into events by the HyperCard runtime. The runtime then examines the script of the object that is the target of the event, like a button, to see if its script object contains the event's code, called a handler. If it does, the HyperTalk engine runs the handler; if it does not, the runtime examines other objects in the visual hierarchy. {{external media| float = right| width = 200px | video1 = [https://archive.org/details/CC501_hypercard "HyperCard Mania!" ''Computer Chronicles'', 1987] archive.org ([[Internet Archive]]) }} These concepts make up the majority of the HyperCard system; stacks, backgrounds and cards provide a form-like GUI system, the stack file provides [[object persistence]] and database-like functionality, and HyperTalk allows handlers to be written for GUI events. Unlike the majority of RAD or database systems of the era, however, HyperCard combines all of these features, both user-facing and developer-facing, in a single application. This allows rapid turnaround and immediate prototyping, possibly without any coding, allowing users to author custom solutions to problems with their own personalized interface. "Empowerment" became a catchword as this possibility was embraced by the Macintosh community, as was the phrase "programming for the rest of us",<ref>{{Citation |first= Terry |last= Winograd |chapter-url= http://hci.stanford.edu/publications/bds/10p-prototype.html |chapter= HyperCard, Director, and Visual Basic |title= Bringing Design to Software |publisher= Addison-Wesley |year= 1996}}</ref><ref name="APDA Pinpoints"/> that is, anyone, not just professional programmers. It is this combination of features that also makes HyperCard a powerful [[hypermedia]] system. Users can build backgrounds to suit the needs of some system, say a [[rolodex]], and use simple HyperTalk commands to provide buttons to move from place to place within the stack, or provide the same navigation system within the data elements of the UI, like text fields. Using these features, it is easy to build linked systems similar to hypertext links on the Web.<ref name=wired/> Unlike the Web, programming, placement, and browsing are all the same tool. Similar systems have been created for HTML, but traditional Web services are considerably more heavyweight.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)