LiveCode

From HandWiki
LiveCode
Developer(s)LiveCode Ltd.
Initial releaseJuly 11, 2001; 23 years ago (2001-07-11)
Stable release
9.6.4 / August 31, 2021; 2 years ago (2021-08-31)[1]
Preview release
9.6.5RC2 / October 25, 2021; 2 years ago (2021-10-25)[1]
Operating systemmacOS, Windows, Linux, Unix, Android, iOS, HTML5
TypeProgramming
LicenseGPL (until version 9.6.3),[2] Proprietary
Websitelivecode.org {{{1}}}
LiveCode Script
ParadigmObject-oriented
Familyscripting language
DeveloperLiveCode, Ltd
First appeared1993 (1993)
Platformi386, AMD64, ARM
OSWindows, macOS, Linux, Unix, Raspberry Pi
LicenseProprietary, GPL
Website{{{1}}}
Influenced by
HyperTalk

LiveCode (formerly Revolution and MetaCard[3]) is a cross-platform[4] rapid application development runtime system inspired by HyperCard. It features the LiveCode Script (formerly MetaTalk) programming language which belongs to the family of xTalk scripting languages like HyperCard's HyperTalk.[5][6]

The environment was introduced in 2001.[7] The "Revolution" development system was based on the MetaCard engine technology which Runtime Revolution later acquired from MetaCard Corporation in 2003.[8][9] The platform won the Macworld Annual Editor's Choice Award for "Best Development Software" in 2004.[10] "Revolution" was renamed "LiveCode" in the fall of 2010. "LiveCode" is developed and sold by Runtime Revolution Ltd., based in Edinburgh, Scotland. In March 2015, the company was renamed "LiveCode Ltd.", to unify the company name with the product. In April 2013, a free/open source version 'LiveCode Community Edition 6.0' was published after a successful crowdfunding campaign at Kickstarter.[11] The code base was re-licensed and made available as free and open source software with a version in April 2013.

LiveCode runs on iOS, Android, OS X, Windows 95 through Windows 10, Raspberry Pi and several variations of Unix, including Linux, Solaris, and BSD. It can be used for mobile, desktop and server/CGI applications. The iOS (iPhone and iPad) version was released in December 2010.[12][13] The first version to deploy to the Web was released in 2009.[14] It is the most widely used HyperCard/HyperTalk clone,[citation needed] and the only one that runs on all major operating systems.

A developer release of v.8 was announced in New York on March 12, 2015. This major enhancement to the product includes a new, separate development language, known as "LiveCode Builder", which is capable of creating new object classes called "widgets". In earlier versions, the set of object classes was fixed, and could be enhanced only via the use of ordinary procedural languages such as C. The new language, which runs in its own IDE, is a departure from the transitional x-talk paradigm in that it permits typing of variables. But the two environments are fully integrated, and apart from the ability to create new objects, development in LiveCode proceeds in the normal way, within the established IDE.

A second crowdfunding campaign to Bring HTML5 to LiveCode reached funding goals of nearly US$400,000 on July 31, 2014. LiveCode developer release 8.0 DP4 (August 31, 2015) was the first to include a standalone deployment option to HTML5.

On 31 August 2021, starting with version 9.6.4, LiveCode Community edition, licensed under GPL, was discontinued.[2]

Description

The LiveCode software creates applications that run in many supported environments, using a compile-free workflow. The same computer code in LiveCode can play across multiple devices and platforms. LiveCode uses a high level, English-like programming language called Transcript that is dynamically typed. Transcript and compile-free workflow generates code that is self-documenting and easy for casual programmers to comprehend. For example, if the following script was executed when the system clock was at 9:00:00 AM:

repeat ten times
    put "Hello world at" && the long time & return after field 1
    wait 1 second
  end repeat

Ten lines will be loaded into the first text field. (denoted as "field 1"), and seen as:

Hello world at 9:00:00 AM
Hello world at 9:00:01 AM
Hello world at 9:00:02 AM
...

Notes:

  • repeat (and the associated end repeat) is a control structure, illustrated here in just one of its various forms.
  • put is a command
  • "Hello World at" is a literal
  • the long time is a function that calls the system time
  • return is a constant equal to ASCII character 10 (linefeed)
  • after is a keyword that is involved with an extremely powerful and intuitive system known as "chunking", a hallmark of xTalk languages.
  • field 1 is an object reference, here denoted by the layer number of a text field. Almost all standard object classes are supported, and may be referred to in several, highly-intuitive ways.

LiveCode's natural English-like syntax is easy for beginners to learn. Variables are typeless, and are typed at compile time based purely on context. This makes the language simple to read and maintain, with relatively minimal loss of speed. The language contains advanced features including associative arrays,[15] regular expressions, multimedia, support for a variety of SQL databases, and TCP/IP libraries. The LiveCode engine supports several common image formats (including BMP, PNG, GIF, and JPEG,), anti-aliased vector graphics, HTML-style text hyperlinks, chained behaviors and embedded web browsers. Accessing these higher-level functions is designed to be straightforward.

Examples

  • To load the source code of a web page into a variable takes one line of code:
put url "http://www.wikipedia.com" into MyVariable
  • Uploading a file to an FTP server uses similar syntax:
put url "binfile:picture.jpg" into url "ftp://john:passwd@ftp.example.net:2121/picture.jpg"

Depth

LiveCode has around 2,950 built-in language terms and keywords, which may be extended by external libraries written in C and other lower level languages.[16][17]

Outcomes

LiveCode project files are binary-compatible across platforms. They inherit each platform's look-and-feel and behaviors. Buttons, scroll bars, progress bars and menus behave as expected on the target platform without any intervention on the part of the one authoring a LiveCode application.

Compiling a LiveCode "standalone" produces a single, executable file (minimum size ~1.5MB) for each platform targeted. There is no separate runtime necessary.

The Wikipedia article on HyperCard contains a more detailed discussion about the basics of a similar development environment and scripting language. Modern LiveCode is a vast superset of the former HyperCard yet retains its simplicity. LiveCode includes a number of features missing from the original HyperCard program, including multiple platform deployment, communication with external devices and many fundamental language extensions. The LiveCode toolkit, as compared to HyperCard, has the ability to access internet-based text and media resources, which allows the creation of internet-enabled desktop applications.[18]

Compatibility

Version Macintosh Windows Linux
9.x[19] 10.9.x - 10.13.x Intel 7, 2008, Windows 8.x, Windows 10.x (Desktop) 32 or 64 bit, 32-bit ARMv6 (Raspberry Pi) glibc glib gtk/gdk lcms pango/xft gksu esd mplayer
8.x[20] 10.6.x - 10.12.x Intel XP SP2+, 2003, Vista SP1+, 7, 2008, Windows 8.x, Windows 10.x (Desktop) 32 or 64 bit, 32-bit ARMv6 (Raspberry Pi) glibc gtk lcms pango/xft gksu esd mplayer
7.x[21] 10.6.x - 10.9.x Intel XP SP2+, 2003, Vista SP1+, 7, 2008, Windows 8.x, Windows 10.x (Desktop) 32 or 64 bit, 32-bit ARMv6 (Raspberry Pi) glibc gtk lcms pango/xft gksu esd mplayer
6.7.x[22] 10.6.x - 10.9.x Intel XP SP2+, 2003, Vista SP1+, 7, 2008, Windows 8.x, Windows 10.x (Desktop) 2.4.x+ 32 bit X11R5 glibc 2.3.2 gtk lcms pango/xft gksu
6.6.x[23] 10.5.8 - 10.9.x Intel/PPC XP SP2+, 2003, Vista SP1+, 7, 2008, Windows 8.x, Windows 10.x (Desktop) 2.4.x+ 32 bit X11R5 glibc 2.3.2 gtk lcms pango/xft gksu
6.0.x - 6.5.x[24] 10.4.11 - 10.9.x Intel/PPC XP SP2+, 2003, Vista SP1+, 7, 2008, Windows 8.x, Windows 10.x (Desktop) 2.4.x+ 32 bit X11R5 glibc 2.3.2 gtk lcms pango/xft gksu
5.x[25] 10.4.11 - 10.8.x Intel/PPC 2000 SP4, XP SP2+, 2003, Vista SP1+, 7, 2008 2.4.x+ 32 bit X11R5 glibc 2.3.2 gtk lcms
4.6.x[26] 10.4.11 - 10.8.x Intel/PPC 2000 SP4, XP SP2+, 2003, Vista SP1+, 7, 2008 2.4.x+ 32 bit X11R5 glibc 2.3.2 gtk lcms
4.5.x[27] 10.3.9 - 10.8.x Intel/PPC 2000 SP4, XP SP2+, 2003, Vista SP1+, 7, 2008 2.4.x+ 32 bit X11R5 glibc 2.3.2 gtk lcms
4.0.x ? ? ?
3.x ? ? ?
2.6.x[28] 10.2.7 - 10.6.x Intel/PPC, 9.2.2 PPC 98, Me, NT, 2000, XP, Vista 2.4+ 32 bit X11R5 glibc 2.2.4 gtk lcms

iOS and Android targets are available in some versions.

Note: Complete Linux requirements for 4.5.x-6.x are the following:

  • 32-bit installation, or a 64-bit linux distribution that has a 32-bit compatibility layer
  • 2.4.x or later kernel
  • X11R5 capable Xserver running locally on a 24-bit display
  • glibc 2.3.2 or later
  • gtk/gdk/glib (optional – required for native theme support)
  • pango/xft (optional – required for pdf printing, anti-aliased text and unicode font support)
  • lcms (optional – required for color profile support in JPEGs and PNGs)
  • gksu (optional – required for elevate process support)

See also

  • MetaCard, Runtime Revolution acquired the MetaCard technology, on which its development system is based, in 2003.
  • HyperCard, Progenitor of all xTalk languages.

References

  1. 1.0 1.1 "All LiveCode Downloads". LiveCode Ltd. https://downloads.livecode.com/livecode/. Retrieved 31 August 2021. 
  2. 2.0 2.1 "LiveCode | The home of LiveCode open source". https://livecode.org/. "We have therefore taken the decision at this time to discontinue support for the open source editions of LiveCode. You can of course continue to use existing open source editions, and the code remains visible on github for viewing. The project will no longer accept contributions and we will not be maintaining it or offering open source downloads on our site." 
  3. MacNN: RunRev replaces Revolution with "LiveCode"
  4. PCWorld: Development Tool for Mac OS X and Vista
  5. Shafer, Dan (2004). "Review: Runtime Revolution, Programming for Mere Mortals". MacTech 20 (5). http://www.mactech.com/articles/mactech/Vol.20/20.05/RuntimeRevolution/index.html. "Revolution ... grows out of HyperCard, a much-beloved and widely used Apple Computer product that the company abandoned a few years ago....". 
  6. Manchester, Phil (27 December 2007). "HyperCard on steroids: One code to bind them all". The Register. https://www.theregister.co.uk/2007/02/27/revolution_runtime/. 
  7. Macworld: Runtime releases Revolution 1.1 for OS X
  8. Macworld: Runtime Revolution acquires MetaCard technology
  9. "Runtime Revolution Acquires MetaCard Technology". July 8, 2003. Archived from the original on 2004-02-03. https://web.archive.org/web/20040203175628/http://www.runrev.com/metacardpr.html. 
  10. "The 19th Annual Editor's Choice Awards". Macworld. 2004. http://www.macworld.com/article/29040/2004/02/editorschoiceawards2004.html. "HyperCard, with its stacks metaphor, has a new heir in Runtime Revolution's Revolution Studio 2.1". 
  11. "Next Generation LiveCode (Open Source)". https://www.kickstarter.com/projects/1755283828/open-source-edition-of-livecode. 
  12. Software Development Times: Runtime Revolution Releases iOS Deployment Pack
  13. Ranscombe, Peter (7 December 2010). "RunRev sets sights on £1m sales boost with release of LiveCode". The Scotsman. http://business.scotsman.com/business/RunRev-sets-sights-on-1m.6651846.jp. 
  14. Miller, Kevin (22 April 2009). "Will an easy to use language attract content experts?". WWW2009 Conference Paper. http://www2009.eprints.org/218/. 
  15. Tutorial: Using Arrays in LiveCode
  16. Monroe, Tim (2003). "Children of the Revolution: Editing QuickTime Movies in Revolution". MacTech 19 (10). http://www.mactech.com/articles/mactech/Vol.19/19.10/ChildrenoftheRevolution/index.html. "Happily, Runtime Revolution provides a software development kit (SDK) for writing Revolution plug-ins, and this makes writing our plug-in a snap.". 
  17. Waddingham, Mark (October 4, 2007). "Writing Externals for Linux with 2.9". Runtime Revolution Newsletter. Runtime Revolution, Ltd. http://runrev.com/newsletter/october/issue34/newsletter1.php. 
  18. Gaskin, Richard (Sep 20, 2001). "Beyond the Browser, Rediscovering the Role of the Desktop in a Net-centric World". Fourth World Embassy Articles. http://www.fourthworld.com/embassy/articles/netapps.html.  See Section 5. Tools for Creating Net Apps.
  19. https://livecodestatic.com/downloads/livecode/9_5_0/LiveCodeNotes-9_5_0.pdf[bare URL PDF]
  20. "Archived copy". http://downloads.livecode.com/livecode/8_0_0/LiveCodeNotes-8_0_0_dp_4.pdf. 
  21. http://downloads.livecode.com/livecode/7_0_0/LiveCodeNotes-7_0_0.pdf[bare URL PDF]
  22. http://downloads.livecode.com/livecode/6_7_0/LiveCodeNotes-6_7_0.pdf[bare URL PDF]
  23. http://downloads.livecode.com/livecode/6_6_5/LiveCodeNotes-6_6_5.pdf[bare URL PDF]
  24. http://downloads.livecode.com/livecode/6_5_2/LiveCodeNotes-6_5_2.pdf[bare URL PDF]
  25. http://www.runrev.com/downloads/livecode/5_5_0/LiveCodeNotes-5_5_0.pdf[bare URL PDF]
  26. http://www.runrev.com/downloads/livecode/4_6_0/LiveCodeNotes-4_6_0.pdf[bare URL PDF]
  27. http://www.runrev.com/downloads/livecode/4_5_0/LiveCodeNotes-4_5_0.pdf[bare URL PDF]
  28. "Livecode User Guide". Archived from the original on 2012-12-21. https://web.archive.org/web/20121221102400/http://downloads.runrev.com/userguide/userguide.pdf. Retrieved 2013-05-01. 

Bibliography

External links