Background history and metaphors
Many development tools only present a programming language along with programming interfaces to system routines. Higher-level tools often present the same things, but structured in such a way that it is possible to come up with real-world metaphors for the different aspects of the tool. LiveCode is very much like that, and its metaphor is a stack of cards. This metaphor originated with Apple Computer's HyperCard authoring tool, which was created by Bill Atkinson in the mid-1980s. The first version of HyperCard was released in August 1987 and it became a huge hit in both education and multimedia sectors. Companies such as The Voyager Company, published its entire product line which was created using HyperCard.
Other companies produced tools that were very much like HyperCard, but they also tried to give the user more features than were in HyperCard. The most prominent of these tools were SuperCard, Plus, and MetaCard. Plus went on to have an interesting life; the product itself became Windows-only (it was cross-platform at first), but later, the same code ended up in the Oracle Media Objects cross-platform tool. All of these tools perpetuated the metaphor of a stack of cards.
MetaCard was most notable for the fact that it was multiplatform and not just cross platform. Stacks is the general term used for documents created by these tools, made with MetaCard that ran on Unix and Linux systems, as well as Mac and Windows. Alas, it was somewhat ugly! The Scottish company RunRev made a product that attempted to present MetaCard in a more appealing way. Eventually, RunRev acquired MetaCard, and since 2003, RunRev has continued to build upon MetaCard using the product name Runtime Revolution, which was later renamed as LiveCode.
Note
In March 2015, RunRev also changed the company name to LiveCode Ltd. This book has many references to http://runrev.com/, and it should still be maintained as such. However, If you have a problem with a URL, substitute it with http://livecode.com/ or do a search on the LiveCode website.
In 2013, RunRev had a successful Kickstarter campaign and raised £494k ($775k) to make LiveCode open source. Version 6.0 of LiveCode was released in April 2013 as the first open source version. This led to an active development cycle with close to 20 stable releases culminating in version 7.0 of LiveCode in October 2014. This edition of this book is based on the version 7.0 of LiveCode.
The highlights of version 7 include Unicode support, display resolution independence, stretchable graphics, hybrid apps using a new browser, Mac Cocoa support, Raspberry Pi support, 64-bit Linux support, and much more. You can read more about version 7 of LiveCode in the October 23, 2014 newsletter issue at http://newsletters.livecode.com/october/issue180/. All LiveCode newsletters are available under the LiveCode Help menu.
In 2014, RunRev had another financing campaign to raise support for HTML5 and raised an additional $395k. This capability and the version 8 of LiveCode with open language support are described further in Appendix, Extending LiveCode.
Under the HyperCard variation of the stack of cards metaphor, documents consist of the cards that hold buttons, fields, and bitmap graphics; backgrounds that hold a set of cards; and stacks that hold a set of backgrounds. LiveCode takes a slightly different approach and rather than having backgrounds that hold cards, it allows you to group any set of interface controls and set those to act as if they are background entities. These end up being more flexible, though slightly alien to people who have used HyperCard a lot.
Both HyperCard and LiveCode provide ways to extend the hierarchy further. You are able to link other stacks. To save time rewriting the same set of functions in every stack, you might choose to have a stack dedicated to these functions and you can add that stack to the stackInUse
property using the following command:
start using stack "utility stack"
Additionally, you can write "externals", which are commands and functions written in the C language, which can extend LiveCode's abilities even further.