CINXE.COM
Lively Kernel - Wikipedia
<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-sticky-header-enabled vector-toc-available" lang="en" dir="ltr"> <head> <meta charset="UTF-8"> <title>Lively Kernel - Wikipedia</title> <script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-sticky-header-enabled vector-toc-available";var cookie=document.cookie.match(/(?:^|; )enwikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy", "wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"aff09c22-b536-4393-b2d4-13ce2b5fcce1","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Lively_Kernel","wgTitle":"Lively Kernel","wgCurRevisionId":1228983741,"wgRevisionId":1228983741,"wgArticleId":27079882,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Articles with short description","Short description matches Wikidata","JavaScript","JavaScript libraries","Rich web application frameworks","Software using the MIT license","Web frameworks","Ajax (programming)"],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName":"Lively_Kernel","wgRelevantArticleId":27079882,"wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[], "wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive":false,"wgFlaggedRevsParams":{"tags":{"status":{"levels":1}}},"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"en","pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":false,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":10000,"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q6658174","wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true,"wgGETopicsMatchModeEnabled":false,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false,"wgGELevelingUpEnabledForUser":false};RLSTATE={ "ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.cite.styles":"ready","ext.pygments":"ready","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready","jquery.makeCollapsible.styles":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.interlanguage":"ready","wikibase.client.init":"ready","ext.wikimediaBadges":"ready"};RLPAGEMODULES=["ext.cite.ux-enhancements","ext.pygments.view","site","mediawiki.page.ready","jquery.makeCollapsible","mediawiki.toc","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.ReferenceTooltips","ext.gadget.switcher","ext.urlShortener.toolbar","ext.centralauth.centralautologin","mmv.bootstrap","ext.popups","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth", "ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.interface","ext.cx.eventlogging.campaigns","ext.cx.uls.quick.actions","wikibase.client.vector-2022","ext.checkUser.clientHints","ext.growthExperiments.SuggestedEditSession"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=en&modules=ext.cite.styles%7Cext.pygments%2CwikimediaBadges%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediamessages.styles%7Cjquery.makeCollapsible.styles%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles%7Cwikibase.client.init&only=styles&skin=vector-2022"> <script async="" src="/w/load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=en&modules=site.styles&only=styles&skin=vector-2022"> <meta name="generator" content="MediaWiki 1.44.0-wmf.17"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/5/5e/Chromium5.0.375.99_showing_lively_kernel_using_gtk%2B_theme.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="816"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/thumb/5/5e/Chromium5.0.375.99_showing_lively_kernel_using_gtk%2B_theme.png/800px-Chromium5.0.375.99_showing_lively_kernel_using_gtk%2B_theme.png"> <meta property="og:image:width" content="800"> <meta property="og:image:height" content="544"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/thumb/5/5e/Chromium5.0.375.99_showing_lively_kernel_using_gtk%2B_theme.png/640px-Chromium5.0.375.99_showing_lively_kernel_using_gtk%2B_theme.png"> <meta property="og:image:width" content="640"> <meta property="og:image:height" content="435"> <meta name="viewport" content="width=1120"> <meta property="og:title" content="Lively Kernel - Wikipedia"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//en.m.wikipedia.org/wiki/Lively_Kernel"> <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/w/index.php?title=Lively_Kernel&action=edit"> <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="icon" href="/static/favicon/wikipedia.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Wikipedia (en)"> <link rel="EditURI" type="application/rsd+xml" href="//en.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://en.wikipedia.org/wiki/Lively_Kernel"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en"> <link rel="alternate" type="application/atom+xml" title="Wikipedia Atom feed" href="/w/index.php?title=Special:RecentChanges&feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="login.wikimedia.org"> </head> <body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject mw-editable page-Lively_Kernel rootpage-Lively_Kernel skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">Jump to content</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" title="Main menu" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Main menu" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">Main menu</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">Main menu</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">hide</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> Navigation </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/Main_Page" title="Visit the main page [z]" accesskey="z"><span>Main page</span></a></li><li id="n-contents" class="mw-list-item"><a href="/wiki/Wikipedia:Contents" title="Guides to browsing Wikipedia"><span>Contents</span></a></li><li id="n-currentevents" class="mw-list-item"><a href="/wiki/Portal:Current_events" title="Articles related to current events"><span>Current events</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Special:Random" title="Visit a randomly selected article [x]" accesskey="x"><span>Random article</span></a></li><li id="n-aboutsite" class="mw-list-item"><a href="/wiki/Wikipedia:About" title="Learn about Wikipedia and how it works"><span>About Wikipedia</span></a></li><li id="n-contactpage" class="mw-list-item"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us" title="How to contact Wikipedia"><span>Contact us</span></a></li> </ul> </div> </div> <div id="p-interaction" class="vector-menu mw-portlet mw-portlet-interaction" > <div class="vector-menu-heading"> Contribute </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-help" class="mw-list-item"><a href="/wiki/Help:Contents" title="Guidance on how to use and edit Wikipedia"><span>Help</span></a></li><li id="n-introduction" class="mw-list-item"><a href="/wiki/Help:Introduction" title="Learn how to edit Wikipedia"><span>Learn to edit</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/Wikipedia:Community_portal" title="The hub for editors"><span>Community portal</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Special:RecentChanges" title="A list of recent changes to Wikipedia [r]" accesskey="r"><span>Recent changes</span></a></li><li id="n-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_upload_wizard" title="Add images or other media for use on Wikipedia"><span>Upload file</span></a></li><li id="n-specialpages" class="mw-list-item"><a href="/wiki/Special:SpecialPages"><span>Special pages</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/Main_Page" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/wikipedia.png" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="Wikipedia" src="/static/images/mobile/copyright/wikipedia-wordmark-en.svg" style="width: 7.5em; height: 1.125em;"> <img class="mw-logo-tagline" alt="The Free Encyclopedia" src="/static/images/mobile/copyright/wikipedia-tagline-en.svg" width="117" height="13" style="width: 7.3125em; height: 0.8125em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/Special:Search" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Search Wikipedia [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Search</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Search Wikipedia" aria-label="Search Wikipedia" autocapitalize="sentences" title="Search Wikipedia [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:Search"> </div> <button class="cdx-button cdx-search-input__end-button">Search</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Personal tools"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="Change the appearance of the page's font size, width, and color" > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="Appearance" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">Appearance</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="https://donate.wikimedia.org/?wmf_source=donate&wmf_medium=sidebar&wmf_campaign=en.wikipedia.org&uselang=en" class=""><span>Donate</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:CreateAccount&returnto=Lively+Kernel" title="You are encouraged to create an account and log in; however, it is not mandatory" class=""><span>Create account</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:UserLogin&returnto=Lively+Kernel" title="You're encouraged to log in; however, it's not mandatory. [o]" accesskey="o" class=""><span>Log in</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="Log in and more options" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Personal tools" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">Personal tools</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="User menu" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="https://donate.wikimedia.org/?wmf_source=donate&wmf_medium=sidebar&wmf_campaign=en.wikipedia.org&uselang=en"><span>Donate</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:CreateAccount&returnto=Lively+Kernel" title="You are encouraged to create an account and log in; however, it is not mandatory"><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>Create account</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:UserLogin&returnto=Lively+Kernel" title="You're encouraged to log in; however, it's not mandatory. [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Log in</span></a></li> </ul> </div> </div> <div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" > <div class="vector-menu-heading"> Pages for logged out editors <a href="/wiki/Help:Introduction" aria-label="Learn more about editing"><span>learn more</span></a> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Special:MyContributions" title="A list of edits made from this IP address [y]" accesskey="y"><span>Contributions</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Special:MyTalk" title="Discussion about edits from this IP address [n]" accesskey="n"><span>Talk</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><!-- CentralNotice --></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> <div class="vector-sticky-pinned-container"> <nav id="mw-panel-toc" aria-label="Contents" data-event-name="ui.sidebar-toc" class="mw-table-of-contents-container vector-toc-landmark"> <div id="vector-toc-pinned-container" class="vector-pinned-container"> <div id="vector-toc" class="vector-toc vector-pinnable-element"> <div class="vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned" data-feature-name="toc-pinned" data-pinnable-element-id="vector-toc" > <h2 class="vector-pinnable-header-label">Contents</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">hide</button> </div> <ul class="vector-toc-contents" id="mw-panel-toc-list"> <li id="toc-mw-content-text" class="vector-toc-list-item vector-toc-level-1"> <a href="#" class="vector-toc-link"> <div class="vector-toc-text">(Top)</div> </a> </li> <li id="toc-Overview" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Overview"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>Overview</span> </div> </a> <ul id="toc-Overview-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Shapes,_widgets,_windows,_IDE_all_on_a_Web_page" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Shapes,_widgets,_windows,_IDE_all_on_a_Web_page"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>Shapes, widgets, windows, IDE all on a Web page</span> </div> </a> <ul id="toc-Shapes,_widgets,_windows,_IDE_all_on_a_Web_page-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Text_and_transformations" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Text_and_transformations"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>Text and transformations</span> </div> </a> <ul id="toc-Text_and_transformations-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Cross-browser_compatibility" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Cross-browser_compatibility"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span> <span>Cross-browser compatibility</span> </div> </a> <ul id="toc-Cross-browser_compatibility-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Integrated_development_environment" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Integrated_development_environment"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span> <span>Integrated development environment</span> </div> </a> <ul id="toc-Integrated_development_environment-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Lively_Wiki" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Lively_Wiki"> <div class="vector-toc-text"> <span class="vector-toc-numb">6</span> <span>Lively Wiki</span> </div> </a> <ul id="toc-Lively_Wiki-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Lively_for_Qt" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Lively_for_Qt"> <div class="vector-toc-text"> <span class="vector-toc-numb">7</span> <span>Lively for Qt</span> </div> </a> <ul id="toc-Lively_for_Qt-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Example_code" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Example_code"> <div class="vector-toc-text"> <span class="vector-toc-numb">8</span> <span>Example code</span> </div> </a> <ul id="toc-Example_code-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-References" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#References"> <div class="vector-toc-text"> <span class="vector-toc-numb">9</span> <span>References</span> </div> </a> <ul id="toc-References-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-External_links" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#External_links"> <div class="vector-toc-text"> <span class="vector-toc-numb">10</span> <span>External links</span> </div> </a> <ul id="toc-External_links-sublist" class="vector-toc-list"> </ul> </li> </ul> </div> </div> </nav> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <nav aria-label="Contents" class="vector-toc-landmark"> <div id="vector-page-titlebar-toc" class="vector-dropdown vector-page-titlebar-toc vector-button-flush-left" title="Table of Contents" > <input type="checkbox" id="vector-page-titlebar-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-titlebar-toc" class="vector-dropdown-checkbox " aria-label="Toggle the table of contents" > <label id="vector-page-titlebar-toc-label" for="vector-page-titlebar-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Toggle the table of contents</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-titlebar-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Lively Kernel</span></h1> <div id="p-lang-btn" class="vector-dropdown mw-portlet mw-portlet-lang" > <input type="checkbox" id="p-lang-btn-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-lang-btn" class="vector-dropdown-checkbox mw-interlanguage-selector" aria-label="This article exist only in this language. Add the article for other languages" > <label id="p-lang-btn-label" for="p-lang-btn-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive mw-portlet-lang-heading-0" aria-hidden="true" ><span class="vector-icon mw-ui-icon-language-progressive mw-ui-icon-wikimedia-language-progressive"></span> <span class="vector-dropdown-label-text">Add languages</span> </label> <div class="vector-dropdown-content"> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> <div class="after-portlet after-portlet-lang"><span class="uls-after-portlet-link"></span><span class="wb-langlinks-add wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q6658174#sitelinks-wikipedia" title="Add interlanguage links" class="wbc-editpage">Add links</a></span></div> </div> </div> </div> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="Namespaces"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-main" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Lively_Kernel" title="View the content page [c]" accesskey="c"><span>Article</span></a></li><li id="ca-talk" class="vector-tab-noicon mw-list-item"><a href="/wiki/Talk:Lively_Kernel" rel="discussion" title="Discuss improvements to the content page [t]" accesskey="t"><span>Talk</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="Change language variant" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">English</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="Views"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Lively_Kernel"><span>Read</span></a></li><li id="ca-edit" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Lively_Kernel&action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Lively_Kernel&action=history" title="Past revisions of this page [h]" accesskey="h"><span>View history</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="Tools" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Tools</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">Tools</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">hide</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="More options" > <div class="vector-menu-heading"> Actions </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="selected vector-more-collapsible-item mw-list-item"><a href="/wiki/Lively_Kernel"><span>Read</span></a></li><li id="ca-more-edit" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Lively_Kernel&action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Lively_Kernel&action=history"><span>View history</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> General </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Special:WhatLinksHere/Lively_Kernel" title="List of all English Wikipedia pages containing links to this page [j]" accesskey="j"><span>What links here</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Special:RecentChangesLinked/Lively_Kernel" rel="nofollow" title="Recent changes in pages linked from this page [k]" accesskey="k"><span>Related changes</span></a></li><li id="t-upload" class="mw-list-item"><a href="//en.wikipedia.org/wiki/Wikipedia:File_Upload_Wizard" title="Upload files [u]" accesskey="u"><span>Upload file</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=Lively_Kernel&oldid=1228983741" title="Permanent link to this revision of this page"><span>Permanent link</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=Lively_Kernel&action=info" title="More information about this page"><span>Page information</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=Special:CiteThisPage&page=Lively_Kernel&id=1228983741&wpFormIdentifier=titleform" title="Information on how to cite this page"><span>Cite this page</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Special:UrlShortener&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FLively_Kernel"><span>Get shortened URL</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Special:QrCode&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FLively_Kernel"><span>Download QR code</span></a></li> </ul> </div> </div> <div id="p-coll-print_export" class="vector-menu mw-portlet mw-portlet-coll-print_export" > <div class="vector-menu-heading"> Print/export </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="coll-download-as-rl" class="mw-list-item"><a href="/w/index.php?title=Special:DownloadAsPdf&page=Lively_Kernel&action=show-download-screen" title="Download this page as a PDF file"><span>Download as PDF</span></a></li><li id="t-print" class="mw-list-item"><a href="/w/index.php?title=Lively_Kernel&printable=yes" title="Printable version of this page [p]" accesskey="p"><span>Printable version</span></a></li> </ul> </div> </div> <div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects" > <div class="vector-menu-heading"> In other projects </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q6658174" title="Structured data on this page hosted by Wikidata [g]" accesskey="g"><span>Wikidata item</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">Appearance</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">hide</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div class="mw-indicators"> </div> <div id="siteSub" class="noprint">From Wikipedia, the free encyclopedia</div> </div> <div id="contentSub"><div id="mw-content-subtitle"></div></div> <div id="mw-content-text" class="mw-body-content"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><div class="shortdescription nomobile noexcerpt noprint searchaux" style="display:none">Open-source web programming environment</div> <style data-mw-deduplicate="TemplateStyles:r1257001546">.mw-parser-output .infobox-subbox{padding:0;border:none;margin:-3px;width:auto;min-width:100%;font-size:100%;clear:none;float:none;background-color:transparent}.mw-parser-output .infobox-3cols-child{margin:auto}.mw-parser-output .infobox .navbar{font-size:100%}@media screen{html.skin-theme-clientpref-night .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .infobox-full-data:not(.notheme) div:not(.notheme){background:#1f1f23!important;color:#f8f9fa}}@media(min-width:640px){body.skin--responsive .mw-parser-output .infobox-table{display:table!important}body.skin--responsive .mw-parser-output .infobox-table>caption{display:table-caption!important}body.skin--responsive .mw-parser-output .infobox-table>tbody{display:table-row-group}body.skin--responsive .mw-parser-output .infobox-table tr{display:table-row!important}body.skin--responsive .mw-parser-output .infobox-table th,body.skin--responsive .mw-parser-output .infobox-table td{padding-left:inherit;padding-right:inherit}}</style><table class="infobox vevent"><caption class="infobox-title summary">Lively Kernel</caption><tbody><tr><td colspan="2" class="infobox-image logo"><figure class="mw-halign-center" typeof="mw:File"><a href="/wiki/File:Chromium5.0.375.99_showing_lively_kernel_using_gtk%2B_theme.png" class="mw-file-description" title="Lively demo"><img alt="Lively demo" src="//upload.wikimedia.org/wikipedia/commons/thumb/5/5e/Chromium5.0.375.99_showing_lively_kernel_using_gtk%2B_theme.png/230px-Chromium5.0.375.99_showing_lively_kernel_using_gtk%2B_theme.png" decoding="async" width="230" height="156" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/5/5e/Chromium5.0.375.99_showing_lively_kernel_using_gtk%2B_theme.png/345px-Chromium5.0.375.99_showing_lively_kernel_using_gtk%2B_theme.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/5/5e/Chromium5.0.375.99_showing_lively_kernel_using_gtk%2B_theme.png/460px-Chromium5.0.375.99_showing_lively_kernel_using_gtk%2B_theme.png 2x" data-file-width="1078" data-file-height="733" /></a><figcaption>Lively demo</figcaption></figure><div class="infobox-caption">Lively Kernel 0.9 example running in <a href="/wiki/Chromium_(web_browser)" title="Chromium (web browser)">Chromium</a> 5</div></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="/wiki/Programmer" title="Programmer">Developer(s)</a></th><td class="infobox-data"><a href="/wiki/Sun_Microsystems_Laboratories" class="mw-redirect" title="Sun Microsystems Laboratories">Sun Microsystems Laboratories</a>, <a href="/wiki/Hasso_Plattner_Institute" title="Hasso Plattner Institute">Hasso Plattner Institute</a></td></tr><tr style="display: none;"><td colspan="2" class="infobox-full-data"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1257001546"></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="/wiki/Software_release_life_cycle" title="Software release life cycle">Stable release</a></th><td class="infobox-data"><div style="margin:0px;">2.1.3 / April 7, 2012<span class="noprint">; 12 years ago</span><span style="display:none"> (<span class="bday dtstart published updated">2012-04-07</span>)</span></div></td></tr><tr style="display:none"><td colspan="2"> </td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="/wiki/Repository_(version_control)" title="Repository (version control)">Repository</a></th><td class="infobox-data"><style data-mw-deduplicate="TemplateStyles:r1126788409">.mw-parser-output .plainlist ol,.mw-parser-output .plainlist ul{line-height:inherit;list-style:none;margin:0;padding:0}.mw-parser-output .plainlist ol li,.mw-parser-output .plainlist ul li{margin-bottom:0}</style><div class="plainlist"><ul><li><span class="url"><a rel="nofollow" class="external text" href="https://github.com/LivelyKernel/LivelyKernel">github<wbr />.com<wbr />/LivelyKernel<wbr />/LivelyKernel</a></span> <span class="mw-valign-text-top noprint" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q6658174#P1324" title="Edit this at Wikidata"><img alt="Edit this at Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span></li></ul> </div></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;">Written in</th><td class="infobox-data"><a href="/wiki/JavaScript" title="JavaScript">JavaScript</a>, Qt variant adds <a href="/wiki/C%2B%2B" title="C++">C++</a></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="/wiki/Operating_system" title="Operating system">Operating system</a></th><td class="infobox-data"><a href="/wiki/Cross-platform" class="mw-redirect" title="Cross-platform">Cross-platform</a></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="/wiki/Computing_platform" title="Computing platform">Platform</a></th><td class="infobox-data">Apple <a href="/wiki/Safari_(web_browser)" title="Safari (web browser)">Safari</a>, Mozilla <a href="/wiki/Firefox" title="Firefox">Firefox</a>, <a href="/wiki/Google_Chrome" title="Google Chrome">Google Chrome</a>, <a href="/wiki/Opera_(web_browser)" title="Opera (web browser)">Opera</a>, <a href="/wiki/IPhone" title="IPhone">iPhone</a>/<a href="/wiki/IPad" title="IPad">iPad</a>, <a href="/wiki/Microsoft_Internet_Explorer" class="mw-redirect" title="Microsoft Internet Explorer">Microsoft Internet Explorer</a> pre-version 9 only with extensions, but an experimental port, needing an added web browser plug-in, is available</td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;">Available in</th><td class="infobox-data">English</td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="/wiki/Software_categories#Categorization_approaches" title="Software categories">Type</a></th><td class="infobox-data"><a href="/wiki/Web_development" title="Web development">Web development</a></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="/wiki/Software_license" title="Software license">License</a></th><td class="infobox-data"><a href="/wiki/MIT_License" title="MIT License">MIT</a></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;">Website</th><td class="infobox-data"><span class="url"><a rel="nofollow" class="external text" href="http://lively-kernel.org">lively-kernel<wbr />.org</a></span></td></tr></tbody></table> <p>The <b>Lively Kernel</b> is an <a href="/wiki/Open-source_software" title="Open-source software">open-source</a> web programming environment, developed by <a href="/wiki/Dan_Ingalls" title="Dan Ingalls">Dan Ingalls</a> when he was at SAP Research. It supports desktop-style applications with rich graphics and direct manipulation abilities, but without the installation or upgrade troubles of conventional desktop applications.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> Development began at <a href="/wiki/Sun_Microsystems" title="Sun Microsystems">Sun Microsystems</a> Laboratories in <a href="/wiki/Menlo_Park,_California" title="Menlo Park, California">Menlo Park, California</a>, and later moved to the <a href="/wiki/Hasso_Plattner_Institute" title="Hasso Plattner Institute">Hasso Plattner Institute</a> in <a href="/wiki/Potsdam-Babelsberg" class="mw-redirect" title="Potsdam-Babelsberg">Potsdam-Babelsberg</a> near Berlin. </p> <meta property="mw:PageProp/toc" /> <div class="mw-heading mw-heading2"><h2 id="Overview">Overview</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Lively_Kernel&action=edit&section=1" title="Edit section: Overview"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The Lively Kernel is a graphical composition and integrated programming environment written fully in the <a href="/wiki/Programming_language" title="Programming language">programming language</a> <a href="/wiki/JavaScript" title="JavaScript">JavaScript</a> using standard browser graphics (W3C Canvas or SVG). It is thus accessible to any browser as a web page, and it begins operating as soon as the web page is loaded. It is able to edit its own code and graphics, and through its built-in WebDAV support, it can save its results or even clone itself onto new web pages. Along with its application development abilities, it can also function as its own integrated development environment (IDE), making the whole system self-sufficient with no tools except a browser. </p> <div class="mw-heading mw-heading2"><h2 id="Shapes,_widgets,_windows,_IDE_all_on_a_Web_page"><span id="Shapes.2C_widgets.2C_windows.2C_IDE_all_on_a_Web_page"></span>Shapes, widgets, windows, IDE all on a Web page</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Lively_Kernel&action=edit&section=2" title="Edit section: Shapes, widgets, windows, IDE all on a Web page"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The Lively Kernel uses a <a href="/wiki/Morphic_(software)" title="Morphic (software)">Morphic</a> graphics model to add behavior to a <a href="/wiki/Scene_graph" title="Scene graph">scene graph</a> built from browser graphics. Simple graphics are thus assembled into such standard <a href="/wiki/Graphical_widget" title="Graphical widget">widgets</a> as <a href="/wiki/Slider_(computing)" title="Slider (computing)">sliders</a>, <a href="/wiki/Scrollbar" title="Scrollbar">scroll bars</a>, text views, lists and <a href="/wiki/Clipping_(computer_graphics)" title="Clipping (computer graphics)">clipping</a> frames. A simple <a href="/wiki/Windowing_system" title="Windowing system">window system</a> built from these widgets offers object inspectors, <a href="/wiki/File_manager" title="File manager">file browsers</a> and <a href="/wiki/Code_browser" title="Code browser">code browsers</a>. Even the rudimentary demo pages thus have the ability to edit and test new code in a simple code browser while the system is running. </p><p>Lively has been used to build simple web sites, including its own tutorial, and also a client-side Wiki system that stores its pages in a versioned repository. Content can vary from relatively static pages of text to fully dynamic models that look and behave like <a href="/wiki/Adobe_Flash" title="Adobe Flash">Adobe Flash</a> simulations. The Lively Kernel achieves complex dynamic behavior without any specific animation support (it does not use the animation features of SVG), but by simple scheduling of multiple <a href="/wiki/Green_thread" title="Green thread">green-thread</a> <a href="/wiki/Process_(computing)" title="Process (computing)">processes</a> in JavaScript. </p> <div class="mw-heading mw-heading2"><h2 id="Text_and_transformations">Text and transformations</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Lively_Kernel&action=edit&section=3" title="Edit section: Text and transformations"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The Lively Kernel includes its own multifont text editor written in JavaScript. It includes support for centering, justification and similar rudimentary text composition abilities. Working in Lively thus has much the same feel as working in a web page design program, except that the on-the-fly text layout is not being done in an offline composition program, but it is the built-in dynamic behavior of text in the Lively Kernel. </p><p>The liveliness of Lively graphics becomes even more apparent when manipulating the scale and rotation handles for objects and text. The whole code browser can be used when tilted 20 degrees on its side. Because the text editor is made up entirely of lively graphics, it works perfectly well when rotated or scaled, just as do the scroll bars, clipping frames, and the rest of the entire user interface. </p> <div class="mw-heading mw-heading2"><h2 id="Cross-browser_compatibility">Cross-browser compatibility</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Lively_Kernel&action=edit&section=4" title="Edit section: Cross-browser compatibility"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The Lively Kernel depends on browser support for JavaScript and SVG or Canvas graphics, all now part of the W3C standards. As of 2009, this means that it runs in Safari, Firefox, Chrome and Opera browsers. </p><p>While this requirement might seem less compatible than HTML, Lively is actually more compatible across the browsers on which it runs than is HTML. This is because there is more uniformity among JavaScript, SVG and Canvas implementations than there is from one HTML implementation to another. Except for one small initial file, the Lively Kernel code base is entirely free of tests for which client browser is being used. </p><p>As of 2011, Lively Kernel runs best in <a href="/wiki/WebKit" title="WebKit">WebKit</a>-based browsers such as <a href="/wiki/Safari_(web_browser)" title="Safari (web browser)">Safari</a> for Macintosh, or <a href="/wiki/Chromium_(web_browser)" title="Chromium (web browser)">Chromium</a> or <a href="/wiki/Google_Chrome" title="Google Chrome">Google Chrome</a> for Windows. Running in Internet Explorer (Windows) requires <a href="/wiki/Google_Chrome_Frame" title="Google Chrome Frame">Google Chrome Frame</a>. Testing in all popular browsers is planned for the next release. </p> <div class="mw-heading mw-heading2"><h2 id="Integrated_development_environment">Integrated development environment</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Lively_Kernel&action=edit&section=5" title="Edit section: Integrated development environment"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Lively includes an integrated development environment of considerable power, designed to work via <a href="/wiki/WebDAV" title="WebDAV">WebDAV</a> with a local set of a dozen or so source JavaScript files synchronizable with a versioned repository. If the user opens a SystemBrowser, all the JavaScript source files are listed in the file pane of the browser. If the user clicks on one of these files, it will be read, parsed (by an OMeta JavaScript parser) and displayed similar to a <a href="/wiki/Smalltalk" title="Smalltalk">Smalltalk</a> browser with functions or class definitions listed and, for each class, all the method names are shown. The user can click on a method name, edit its code in the bottom pane, and then save the new definition. The new definition will be checked for syntax and, if correct, it will be stored back in the .JS file. Moreover, if in "eval mode" (the usual case), the method will be redefined in the system that is running. This allows non-critical changes to be made without any need to restart Lively or any of the applications being developed. When all the source files are loaded, a rapid scan will find every reference to a selected text, and present all the code bodies that match in a separate sub-browser. </p><p>The Lively IDE includes object inspectors and morph style panels for controlling fills, borders, and text styles. There are also facilities for debugging at error points and profiling for performance tuning, but these have not been pushed, owing to the improving quality of such run-time support in all the major browsers. </p> <div class="mw-heading mw-heading2"><h2 id="Lively_Wiki">Lively Wiki</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Lively_Kernel&action=edit&section=6" title="Edit section: Lively Wiki"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The IDE operates on its source code files in a versioned repository to manage evolution of the Lively code base. The same approach has been used to empower users with control over active web content in the form of a client-side Wiki. Because Lively includes facilities to edit the content in its worlds (scene graphs and other content), and to store that content as web pages, a WebDAV connection allows Lively to store new versions of its page content while it is being incrementally developed. As each new version is saved, it is viewable from the rest of the Internet and prior versions can be retrieved in cases of error or change of mind. It is notable that this Wiki style of evolving web content extends to all the textual, graphical, and scripting content in Lively, as well as to any new forms that may be defined, yet without any need for a Wiki server of any kind.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> All that is required is a server providing a HTTP WebDAV interface. Increasing amounts of the Lively Project content is now maintained in this manner. </p> <div class="mw-heading mw-heading2"><h2 id="Lively_for_Qt">Lively for Qt</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Lively_Kernel&action=edit&section=7" title="Edit section: Lively for Qt"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Lively for Qt is a new implementation of the Lively Kernel in which the "kernel" parts are replaced by functionality offered by the <a href="/wiki/Qt_(framework)" class="mw-redirect" title="Qt (framework)">Qt framework</a>.<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> Lively for Qt inherits most of the basic functionality (such as the implementation of widgets, layout management, core event handling and core JavaScript support) from Qt. Lively for Qt retains the exceptionally interactive nature (the "liveliness") of the Lively Kernel, e.g., by allowing the user interface and application source code to be edited on the fly. However, in Lively for Qt the development work is performed using the familiar, well-documented APIs of the Qt platform. </p> <div class="mw-heading mw-heading2"><h2 id="Example_code">Example code</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Lively_Kernel&action=edit&section=8" title="Edit section: Example code"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="c1">// ClockMorph: A simple analog clock</span> <span class="nx">Morph</span><span class="p">.</span><span class="nx">subclass</span><span class="p">(</span><span class="err">“</span><span class="nx">ClockMorph</span><span class="err">”</span><span class="p">,</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nx">defaultBorderWidth</span><span class="o">:</span><span class="w"> </span><span class="mf">2</span><span class="p">,</span><span class="w"> </span> <span class="w"> </span><span class="nx">type</span><span class="o">:</span><span class="w"> </span><span class="s2">"ClockMorph"</span><span class="p">,</span> <span class="w"> </span><span class="c1">// Constructor </span> <span class="w"> </span><span class="nx">initialize</span><span class="o">:</span><span class="w"> </span><span class="kd">function</span><span class="p">(</span><span class="nx">$super</span><span class="p">,</span><span class="w"> </span><span class="nx">position</span><span class="p">,</span><span class="w"> </span><span class="nx">radius</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nx">$super</span><span class="p">(</span><span class="nx">position</span><span class="p">.</span><span class="nx">asRectangle</span><span class="p">().</span><span class="nx">expandBy</span><span class="p">(</span><span class="nx">radius</span><span class="p">),</span><span class="w"> </span><span class="s2">"ellipse"</span><span class="p">);</span><span class="w"> </span> <span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="nx">openForDragAndDrop</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">false</span><span class="p">;</span><span class="w"> </span><span class="c1">// Do not handle drag-and-drop requests </span> <span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="nx">makeNewFace</span><span class="p">();</span><span class="w"> </span><span class="c1">// Construct the clock face </span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="k">this</span><span class="p">;</span><span class="w"> </span> <span class="w"> </span><span class="p">},</span> <span class="w"> </span><span class="c1">// Construct a new clock face </span> <span class="w"> </span><span class="nx">makeNewFace</span><span class="o">:</span><span class="w"> </span><span class="kd">function</span><span class="p">()</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nx">bnds</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="nx">shape</span><span class="p">.</span><span class="nx">bounds</span><span class="p">();</span><span class="w"> </span> <span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nx">radius</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">bnds</span><span class="p">.</span><span class="nx">width</span><span class="o">/</span><span class="mf">3</span><span class="p">;</span><span class="w"> </span> <span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nx">labels</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[];</span><span class="w"> </span> <span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nx">fontSize</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">Math</span><span class="p">.</span><span class="nx">max</span><span class="p">(</span><span class="nb">Math</span><span class="p">.</span><span class="nx">floor</span><span class="p">(</span><span class="mf">0.04</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="p">(</span><span class="nx">bnds</span><span class="p">.</span><span class="nx">width</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">bnds</span><span class="p">.</span><span class="nx">height</span><span class="p">)),</span><span class="mf">4</span><span class="p">);</span><span class="w"> </span> <span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nx">labelSize</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">fontSize</span><span class="p">;</span><span class="w"> </span><span class="c1">// room to center with default inset</span> <span class="w"> </span><span class="c1">// Add Roman numerals to the clock </span> <span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">var</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mf">12</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span> <span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nx">labelPosition</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">bnds</span><span class="p">.</span><span class="nx">center</span><span class="p">().</span><span class="nx">addPt</span><span class="p">(</span><span class="nx">Point</span><span class="p">.</span><span class="nx">polar</span><span class="p">(</span><span class="nx">radius</span><span class="o">*</span><span class="mf">0.85</span><span class="p">,</span><span class="w"> </span> <span class="w"> </span><span class="p">((</span><span class="nx">i</span><span class="o">-</span><span class="mf">3</span><span class="p">)</span><span class="o">/</span><span class="mf">12</span><span class="p">)</span><span class="o">*</span><span class="nb">Math</span><span class="p">.</span><span class="nx">PI</span><span class="o">*</span><span class="mf">2</span><span class="p">)).</span><span class="nx">addXY</span><span class="p">(</span><span class="nx">labelSize</span><span class="p">,</span><span class="w"> </span><span class="mf">0</span><span class="p">);</span><span class="w"> </span> <span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nx">label</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="ow">new</span><span class="w"> </span><span class="nx">TextMorph</span><span class="p">(</span><span class="nx">pt</span><span class="p">(</span><span class="mf">0</span><span class="p">,</span><span class="mf">0</span><span class="p">).</span><span class="nx">extent</span><span class="p">(</span><span class="nx">pt</span><span class="p">(</span><span class="nx">labelSize</span><span class="o">*</span><span class="mf">3</span><span class="p">,</span><span class="nx">labelSize</span><span class="p">)),</span><span class="w"> </span> <span class="w"> </span><span class="p">[</span><span class="s1">'XII'</span><span class="p">,</span><span class="s1">'I'</span><span class="p">,</span><span class="s1">'II'</span><span class="p">,</span><span class="s1">'III'</span><span class="p">,</span><span class="s1">'IV'</span><span class="p">,</span><span class="s1">'V'</span><span class="p">,</span><span class="s1">'VI'</span><span class="p">,</span><span class="s1">'VII'</span><span class="p">,</span><span class="s1">'VIII'</span><span class="p">,</span><span class="s1">'IX'</span><span class="p">,</span><span class="s1">'X'</span><span class="p">,</span><span class="s1">'XI'</span><span class="p">][</span><span class="nx">i</span><span class="p">]);</span><span class="w"> </span> <span class="w"> </span><span class="nx">label</span><span class="p">.</span><span class="nx">setWrapStyle</span><span class="p">(</span><span class="nx">WrapStyle</span><span class="p">.</span><span class="nx">SHRINK</span><span class="p">);</span><span class="w"> </span> <span class="w"> </span><span class="nx">label</span><span class="p">.</span><span class="nx">setFontSize</span><span class="p">(</span><span class="nx">fontSize</span><span class="p">);</span> <span class="w"> </span><span class="nx">label</span><span class="p">.</span><span class="nx">setInset</span><span class="p">(</span><span class="nx">pt</span><span class="p">(</span><span class="mf">0</span><span class="p">,</span><span class="mf">0</span><span class="p">));</span><span class="w"> </span> <span class="w"> </span><span class="nx">label</span><span class="p">.</span><span class="nx">setBorderWidth</span><span class="p">(</span><span class="mf">0</span><span class="p">);</span> <span class="w"> </span><span class="nx">label</span><span class="p">.</span><span class="nx">setFill</span><span class="p">(</span><span class="kc">null</span><span class="p">);</span> <span class="w"> </span><span class="nx">label</span><span class="p">.</span><span class="nx">align</span><span class="p">(</span><span class="nx">label</span><span class="p">.</span><span class="nx">bounds</span><span class="p">().</span><span class="nx">center</span><span class="p">(),</span><span class="nx">labelPosition</span><span class="p">.</span><span class="nx">addXY</span><span class="p">(</span><span class="o">-</span><span class="mf">2</span><span class="p">,</span><span class="mf">1</span><span class="p">));</span><span class="w"> </span> <span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="nx">addMorph</span><span class="p">(</span><span class="nx">label</span><span class="p">);</span><span class="w"> </span> <span class="w"> </span><span class="p">}</span><span class="w"> </span> <span class="w"> </span> <span class="w"> </span><span class="c1">// Add clock hands </span> <span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="nx">addMorph</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">hourHand</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">Morph</span><span class="p">.</span><span class="nx">makeLine</span><span class="p">([</span><span class="nx">pt</span><span class="p">(</span><span class="mf">0</span><span class="p">,</span><span class="mf">0</span><span class="p">),</span><span class="nx">pt</span><span class="p">(</span><span class="mf">0</span><span class="p">,</span><span class="o">-</span><span class="nx">radius</span><span class="o">*</span><span class="mf">0.5</span><span class="p">)],</span><span class="mf">4</span><span class="p">,</span><span class="nx">Color</span><span class="p">.</span><span class="nx">blue</span><span class="p">));</span><span class="w"> </span> <span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="nx">addMorph</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">minuteHand</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">Morph</span><span class="p">.</span><span class="nx">makeLine</span><span class="p">([</span><span class="nx">pt</span><span class="p">(</span><span class="mf">0</span><span class="p">,</span><span class="mf">0</span><span class="p">),</span><span class="nx">pt</span><span class="p">(</span><span class="mf">0</span><span class="p">,</span><span class="o">-</span><span class="nx">radius</span><span class="o">*</span><span class="mf">0.7</span><span class="p">)],</span><span class="mf">3</span><span class="p">,</span><span class="nx">Color</span><span class="p">.</span><span class="nx">blue</span><span class="p">));</span><span class="w"> </span> <span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="nx">addMorph</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">secondHand</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">Morph</span><span class="p">.</span><span class="nx">makeLine</span><span class="p">([</span><span class="nx">pt</span><span class="p">(</span><span class="mf">0</span><span class="p">,</span><span class="mf">0</span><span class="p">),</span><span class="nx">pt</span><span class="p">(</span><span class="mf">0</span><span class="p">,</span><span class="o">-</span><span class="nx">radius</span><span class="o">*</span><span class="mf">0.75</span><span class="p">)],</span><span class="mf">2</span><span class="p">,</span><span class="nx">Color</span><span class="p">.</span><span class="nx">red</span><span class="p">));</span><span class="w"> </span> <span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="nx">setHands</span><span class="p">();</span><span class="w"> </span> <span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="nx">changed</span><span class="p">();</span><span class="w"> </span> <span class="w"> </span><span class="p">},</span><span class="w"> </span> <span class="w"> </span> <span class="w"> </span><span class="c1">// Set clock hand angles based on current time </span> <span class="w"> </span><span class="nx">setHands</span><span class="o">:</span><span class="w"> </span><span class="kd">function</span><span class="p">()</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nx">now</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="ow">new</span><span class="w"> </span><span class="nb">Date</span><span class="p">();</span><span class="w"> </span> <span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nx">second</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">now</span><span class="p">.</span><span class="nx">getSeconds</span><span class="p">();</span><span class="w"> </span> <span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nx">minute</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">now</span><span class="p">.</span><span class="nx">getMinutes</span><span class="p">()</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">second</span><span class="o">/</span><span class="mf">60</span><span class="p">;</span><span class="w"> </span> <span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nx">hour</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">now</span><span class="p">.</span><span class="nx">getHours</span><span class="p">()</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">minute</span><span class="o">/</span><span class="mf">60</span><span class="p">;</span><span class="w"> </span> <span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="nx">hourHand</span><span class="p">.</span><span class="nx">setRotation</span><span class="p">(</span><span class="nx">hour</span><span class="o">/</span><span class="mf">12</span><span class="o">*</span><span class="mf">2</span><span class="o">*</span><span class="nb">Math</span><span class="p">.</span><span class="nx">PI</span><span class="p">);</span><span class="w"> </span> <span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="nx">minuteHand</span><span class="p">.</span><span class="nx">setRotation</span><span class="p">(</span><span class="nx">minute</span><span class="o">/</span><span class="mf">60</span><span class="o">*</span><span class="mf">2</span><span class="o">*</span><span class="nb">Math</span><span class="p">.</span><span class="nx">PI</span><span class="p">);</span><span class="w"> </span> <span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="nx">secondHand</span><span class="p">.</span><span class="nx">setRotation</span><span class="p">(</span><span class="nx">second</span><span class="o">/</span><span class="mf">60</span><span class="o">*</span><span class="mf">2</span><span class="o">*</span><span class="nb">Math</span><span class="p">.</span><span class="nx">PI</span><span class="p">);</span><span class="w"> </span> <span class="w"> </span><span class="p">},</span> <span class="w"> </span><span class="c1">// Will be called when the ClockMorph is placed in a world </span> <span class="w"> </span><span class="nx">startSteppingScripts</span><span class="o">:</span><span class="w"> </span><span class="kd">function</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"> </span> <span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="nx">startStepping</span><span class="p">(</span><span class="mf">1000</span><span class="p">,</span><span class="w"> </span><span class="s2">"setHands"</span><span class="p">);</span><span class="w"> </span><span class="c1">// once per second </span> <span class="w"> </span><span class="p">}</span><span class="w"> </span> <span class="p">});</span> </pre></div> <div class="mw-heading mw-heading2"><h2 id="References">References</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Lively_Kernel&action=edit&section=9" title="Edit section: References"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1239543626">.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}</style><div class="reflist reflist-columns references-column-width reflist-columns-2"> <ol class="references"> <li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}</style><cite id="CITEREFIngallsPalaczUhlerTaivalsaari2008" class="citation book cs1">Ingalls, Daniel; Palacz, Krzysztof; Uhler, Stephen; Taivalsaari, Antero; Mikkonen, Tommi (2008). <a rel="nofollow" class="external text" href="https://doi.org/10.1007%2F978-3-540-89275-5_2">"The Lively Kernel a Self-supporting System on a Web Page"</a>. <i>Self-Sustaining Systems</i>. Lecture Notes in Computer Science. Vol. 5146. pp. <span class="nowrap">31–</span>50. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1007%2F978-3-540-89275-5_2">10.1007/978-3-540-89275-5_2</a>. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/978-3-540-89274-8" title="Special:BookSources/978-3-540-89274-8"><bdi>978-3-540-89274-8</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=bookitem&rft.atitle=The+Lively+Kernel+a+Self-supporting+System+on+a+Web+Page&rft.btitle=Self-Sustaining+Systems&rft.series=Lecture+Notes+in+Computer+Science&rft.pages=%3Cspan+class%3D%22nowrap%22%3E31-%3C%2Fspan%3E50&rft.date=2008&rft_id=info%3Adoi%2F10.1007%2F978-3-540-89275-5_2&rft.isbn=978-3-540-89274-8&rft.aulast=Ingalls&rft.aufirst=Daniel&rft.au=Palacz%2C+Krzysztof&rft.au=Uhler%2C+Stephen&rft.au=Taivalsaari%2C+Antero&rft.au=Mikkonen%2C+Tommi&rft_id=https%3A%2F%2Fdoi.org%2F10.1007%252F978-3-540-89275-5_2&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALively+Kernel" class="Z3988"></span></span> </li> <li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.svgopen.org/2008/papers/93-The_Lively_Kernel_Web_Application_Framework/">The Lively Kernel Application Framework</a></span> </li> <li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.hpi.uni-potsdam.de/hirschfeld/publications/media/KrahnIngallsHirschfeldLinckePalacz_2009_LivelyWikiADevelopmentEnvironmentForCreatingAndSharingActiveWebContent_AcmDL.pdf">Lively Wiki A Development Environment for Creating and Sharing Active Web Content</a>, Krahn Ingalls Hirschfeld Lincke Palacz, WikiSym ’09, October 25–27, 2009</span> </li> <li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://lively.cs.tut.fi/qt/documents/LivelyForQt-Mobility2009.pdf">Lively for Qt: A Platform for Mobile Web Applications</a>, Mikkonen Taivalsaari Terho, Mobility 2009, Sep 2-4</span> </li> </ol></div> <div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Lively_Kernel&action=edit&section=10" title="Edit section: External links"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><span class="official-website"><span class="url"><a rel="nofollow" class="external text" href="https://lively-kernel.org/">Official website</a></span></span> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q6658174#P856" title="Edit this at Wikidata"><img alt="Edit this at Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span></li></ul> <div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}</style><style data-mw-deduplicate="TemplateStyles:r1236075235">.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}</style></div><div role="navigation" class="navbox" aria-labelledby="List_of_widget_toolkits573" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><style data-mw-deduplicate="TemplateStyles:r1239400231">.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}</style><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:Widget_toolkits" title="Template:Widget toolkits"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:Widget_toolkits" title="Template talk:Widget toolkits"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:Widget_toolkits" title="Special:EditPage/Template:Widget toolkits"><abbr title="Edit this template">e</abbr></a></li></ul></div><div id="List_of_widget_toolkits573" style="font-size:114%;margin:0 4em"><a href="/wiki/List_of_widget_toolkits" title="List of widget toolkits">List</a> of <a href="/wiki/Widget_toolkit" title="Widget toolkit">widget toolkits</a></div></th></tr><tr><td colspan="2" class="navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"><b>Low-level platform-specific</b></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">On <a href="/wiki/AmigaOS" title="AmigaOS">AmigaOS</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Intuition_(Amiga)" title="Intuition (Amiga)">Intuition</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">On <a href="/wiki/Classic_Mac_OS" title="Classic Mac OS">Classic Mac OS</a>, <a href="/wiki/MacOS" title="MacOS">macOS</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Macintosh_Toolbox" title="Macintosh Toolbox">Macintosh Toolbox</a></li> <li><a href="/wiki/Carbon_(API)" title="Carbon (API)">Carbon</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">On <a href="/wiki/Microsoft_Windows" title="Microsoft Windows">Windows</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Windows_API" title="Windows API">Windows API</a></li> <li><a href="/wiki/Universal_Windows_Platform" title="Universal Windows Platform">UWP</a> <ul><li><a href="/wiki/Windows_Runtime" title="Windows Runtime">WinRT</a></li></ul></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">On <a href="/wiki/Unix" title="Unix">Unix</a>,<br />under <a href="/wiki/X_Window_System" title="X Window System">X11</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Xlib" title="Xlib">Xlib</a></li> <li><a href="/wiki/XCB" title="XCB">XCB</a></li> <li><a href="/wiki/X_Toolkit_Intrinsics" title="X Toolkit Intrinsics">X Toolkit Intrinsics</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">On <a href="/wiki/BeOS" title="BeOS">BeOS</a>, <a href="/wiki/Haiku_(operating_system)" title="Haiku (operating system)">Haiku</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/BeOS_API" class="mw-redirect" title="BeOS API">BeOS API</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">On <a href="/wiki/Android_(operating_system)" title="Android (operating system)">Android</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th id="CLI38" scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Common_Language_Infrastructure" title="Common Language Infrastructure">CLI</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Mono_(software)#Xamarin.Android" title="Mono (software)">Xamarin.Android</a></li></ul> </div></td></tr></tbody></table><div></div></td></tr><tr><td colspan="2" class="navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"><b>Low Level Cross-platform</b></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Common_Language_Infrastructure" title="Common Language Infrastructure">CLI</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/OpenTK" title="OpenTK">OpenTK</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/C_(programming_language)" title="C (programming language)">C</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/GDK" title="GDK">GDK</a></li> <li><a href="/wiki/Simple_DirectMedia_Layer" title="Simple DirectMedia Layer">Simple DirectMedia Layer</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Java_(programming_language)" title="Java (programming language)">Java</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Java_OpenGL" title="Java OpenGL">JOGL</a></li> <li><a href="/wiki/Lightweight_Java_Game_Library" class="mw-redirect" title="Lightweight Java Game Library">LWJGL</a></li></ul> </div></td></tr><tr><td colspan="2" class="navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"><b>High-level, platform-specific</b></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">On <a href="/wiki/AmigaOS" title="AmigaOS">AmigaOS</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/BOOPSI" title="BOOPSI">BOOPSI</a></li> <li><a href="/wiki/Magic_User_Interface" title="Magic User Interface">MUI</a></li> <li><a href="/wiki/ReAction_GUI" title="ReAction GUI">ReAction GUI</a></li> <li><a href="/wiki/Zune_(widget_toolkit)" title="Zune (widget toolkit)">Zune</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">On <a href="/wiki/Classic_Mac_OS" title="Classic Mac OS">Classic Mac OS</a>, <a href="/wiki/MacOS" title="MacOS">macOS</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Object_Pascal" title="Object Pascal">Object Pascal</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/MacApp" title="MacApp">MacApp</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Objective-C" title="Objective-C">Objective-C</a>, <a href="/wiki/Swift_(programming_language)" title="Swift (programming language)">Swift</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Cocoa_(API)" title="Cocoa (API)">Cocoa</a></li> <li><a href="/wiki/Cocoa_Touch" class="mw-redirect" title="Cocoa Touch">Cocoa Touch</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/C%2B%2B" title="C++">C++</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/MacApp" title="MacApp">MacApp</a></li> <li><a href="/wiki/PowerPlant" title="PowerPlant">PowerPlant</a></li> <li><a href="/wiki/THINK_C" title="THINK C">THINK C</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Common_Language_Infrastructure" title="Common Language Infrastructure">CLI</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Xamarin#Xamarin.Mac" title="Xamarin">Xamarin.Mac</a></li> <li><a href="/wiki/Mono_(software)#Xamarin.iOS" title="Mono (software)">Xamarin.iOS</a></li></ul> </div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">On <a href="/wiki/Microsoft_Windows" title="Microsoft Windows">Windows</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Common_Language_Infrastructure" title="Common Language Infrastructure">CLI</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Windows_Forms" title="Windows Forms">Windows Forms</a></li> <li><a href="/wiki/Extensible_Application_Markup_Language" title="Extensible Application Markup Language">XAML</a> <ul><li><a href="/wiki/Windows_Presentation_Foundation" title="Windows Presentation Foundation">Windows Presentation Foundation</a></li> <li><a href="/wiki/Windows_UI_Library" title="Windows UI Library">Windows UI Library</a></li> <li><a href="/wiki/Microsoft_Silverlight" title="Microsoft Silverlight">Silverlight</a></li></ul></li> <li><a href="/wiki/Microsoft_XNA" title="Microsoft XNA">Microsoft XNA</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/C%2B%2B" title="C++">C++</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Microsoft_Foundation_Class_Library" title="Microsoft Foundation Class Library">MFC</a></li> <li><a href="/wiki/Active_Template_Library" title="Active Template Library">Active Template Library</a></li> <li><a href="/wiki/Windows_Template_Library" title="Windows Template Library">Windows Template Library</a></li> <li><a href="/wiki/Object_Windows_Library" title="Object Windows Library">Object Windows Library</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Object_Pascal" title="Object Pascal">Object Pascal</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Visual_Component_Library" title="Visual Component Library">Visual Component Library</a></li></ul> </div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">On <a href="/wiki/Unix" title="Unix">Unix</a>,<br />under <a href="/wiki/X_Window_System" title="X Window System">X11</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/X_Athena_Widgets" title="X Athena Widgets">Athena (Xaw)</a></li> <li><a href="/wiki/LessTif" title="LessTif">LessTif</a></li> <li><a href="/wiki/Motif_(software)" title="Motif (software)">Motif</a></li> <li><a href="/wiki/OLIT" title="OLIT">OLIT</a></li> <li><a href="/wiki/XForms_(toolkit)" title="XForms (toolkit)">XForms</a></li> <li><a href="/wiki/XView" title="XView">XView</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">On <a href="/wiki/Android_(operating_system)" title="Android (operating system)">Android</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Android_software_development#Qt_for_Android" title="Android software development">Qt for Android</a></li></ul> </div></td></tr><tr><td colspan="2" class="navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"><b>High-level, cross-platform</b></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/C_(programming_language)" title="C (programming language)">C</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Enlightenment_Foundation_Libraries" title="Enlightenment Foundation Libraries">Enlightenment Foundation Libraries</a></li> <li><a href="/wiki/GTK" title="GTK">GTK</a></li> <li><a href="/wiki/IUP_(software)" title="IUP (software)">IUP</a></li> <li><a href="/wiki/XForms_(toolkit)" title="XForms (toolkit)">XForms</a></li> <li><a href="/wiki/XVT" title="XVT">XVT</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/C%2B%2B" title="C++">C++</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Bedrock_(framework)" title="Bedrock (framework)">Bedrock</a></li> <li><a href="/wiki/CEGUI" title="CEGUI">CEGUI</a></li> <li><a href="/wiki/Component_Library_for_Cross_Platform" title="Component Library for Cross Platform">Component Library for Cross Platform</a></li> <li><a href="/wiki/FLTK" title="FLTK">FLTK</a></li> <li><a href="/wiki/Fox_toolkit" title="Fox toolkit">FOX toolkit</a></li> <li><a href="/wiki/OpenGL_User_Interface_Library" class="mw-redirect" title="OpenGL User Interface Library">OpenGL User Interface Library</a></li> <li><a href="/wiki/Gtkmm" title="Gtkmm">gtkmm</a></li> <li><a href="/wiki/JUCE" title="JUCE">JUCE</a></li> <li><a href="/wiki/Qt_(software)" title="Qt (software)">Qt</a></li> <li><a href="/wiki/Rogue_Wave_Software" title="Rogue Wave Software">Rogue Wave Views</a></li> <li><a href="/wiki/TnFOX" class="mw-redirect" title="TnFOX">TnFOX</a></li> <li><a href="/wiki/Ultimate%2B%2B" title="Ultimate++">U++</a></li> <li><a href="/wiki/Wt_(web_toolkit)" title="Wt (web toolkit)">Wt</a></li> <li><a href="/wiki/WxWidgets" title="WxWidgets">wxWidgets</a></li> <li><a href="/wiki/Simple_and_Fast_Multimedia_Library" title="Simple and Fast Multimedia Library">Simple and Fast Multimedia Library</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Objective-C" title="Objective-C">Objective-C</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/GNUstep" title="GNUstep">GNUstep</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Common_Language_Infrastructure" title="Common Language Infrastructure">CLI</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Gtk_Sharp" class="mw-redirect" title="Gtk Sharp">Gtk#</a></li> <li><a href="/wiki/Tao_Framework" title="Tao Framework">Tao Framework</a> <ul><li><a href="/wiki/OpenTK" title="OpenTK">OpenTK</a></li></ul></li> <li><a href="/wiki/UIML" title="UIML">UIML</a></li> <li><a href="/wiki/MonoGame" title="MonoGame">MonoGame</a></li> <li><a href="/wiki/Moonlight_(runtime)" title="Moonlight (runtime)">Moonlight</a></li> <li><a href="/wiki/Xamarin#Xamarin.Forms" title="Xamarin">Xamarin.Forms</a></li> <li><a href="/w/index.php?title=XWT_(Mono)&action=edit&redlink=1" class="new" title="XWT (Mono) (page does not exist)">XWT</a><a rel="nofollow" class="external autonumber" href="https://www.mono-project.com/docs/gui/#xwt">[1]</a><a rel="nofollow" class="external autonumber" href="https://github.com/mono/xwt">[2]</a></li> <li><a href="/wiki/.NET#.NET_MAUI" title=".NET">.NET MAUI</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Adobe_Flash" title="Adobe Flash">Adobe Flash</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Apache_Flex" title="Apache Flex">Apache Flex</a> <ul><li><a href="/wiki/MXML" title="MXML">MXML</a></li></ul></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Go_(programming_language)" title="Go (programming language)">Go</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Fyne_(software)" title="Fyne (software)">Fyne</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Haskell" title="Haskell">Haskell</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/WxHaskell" title="WxHaskell">wxHaskell</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Java_(programming_language)" title="Java (programming language)">Java</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Abstract_Window_Toolkit" title="Abstract Window Toolkit">Abstract Window Toolkit</a></li> <li><a href="/wiki/FXML" title="FXML">FXML</a></li> <li><a href="/wiki/JavaFX" title="JavaFX">JavaFX</a></li> <li><a href="/wiki/Qt_Jambi" class="mw-redirect" title="Qt Jambi">Qt Jambi</a></li> <li><a href="/wiki/Swing_(Java)" title="Swing (Java)">Swing</a></li> <li><a href="/wiki/Standard_Widget_Toolkit" title="Standard Widget Toolkit">Standard Widget Toolkit</a></li> <li><a href="/wiki/Google_Web_Toolkit" title="Google Web Toolkit">Google Web Toolkit</a></li> <li><a href="/wiki/Lightweight_User_Interface_Toolkit" title="Lightweight User Interface Toolkit">Lightweight User Interface Toolkit</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/JavaScript" title="JavaScript">JavaScript</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Dojo_Toolkit" title="Dojo Toolkit">Dojo Toolkit</a></li> <li><a href="/wiki/Echo_(framework)" title="Echo (framework)">Echo</a></li> <li><a href="/wiki/Ext_JS" title="Ext JS">Ext JS</a></li> <li><a href="/wiki/Google_Closure_Tools" title="Google Closure Tools">Google Closure Tools</a></li> <li><a href="/wiki/JQuery_UI" title="JQuery UI">jQuery UI</a></li> <li><a href="/wiki/OpenUI5" title="OpenUI5">OpenUI5</a></li> <li><a href="/wiki/Qooxdoo" title="Qooxdoo">Qooxdoo</a></li> <li><a href="/wiki/YUI_Library" title="YUI Library">YUI</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Common_Lisp" title="Common Lisp">Common Lisp</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/LispWorks" title="LispWorks">CAPI</a></li> <li><a href="/wiki/Common_Lisp_Interface_Manager" title="Common Lisp Interface Manager">CLIM</a></li> <li><a href="/wiki/Allegro_Common_Lisp" title="Allegro Common Lisp">Common Graphics</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Lua_(programming_language)" title="Lua (programming language)">Lua</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/IUP_(software)" title="IUP (software)">IUP</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Pascal_(programming_language)" title="Pascal (programming language)">Pascal</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Lazarus_Component_Library" title="Lazarus Component Library">Lazarus Component Library</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Object_Pascal" title="Object Pascal">Object Pascal</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Component_Library_for_Cross_Platform" title="Component Library for Cross Platform">Component Library for Cross Platform</a></li> <li><a href="/wiki/FpGUI" title="FpGUI">fpGUI</a></li> <li><a href="/wiki/IP_Pascal" title="IP Pascal">IP Pascal</a></li> <li><a href="/wiki/FireMonkey" title="FireMonkey">FireMonkey</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Perl" title="Perl">Perl</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li>Perl/<a href="/wiki/Tk_(software)" title="Tk (software)">Tk</a></li> <li><a href="/wiki/WxPerl" class="mw-redirect" title="WxPerl">wxPerl</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/PHP" title="PHP">PHP</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/PHP-GTK" title="PHP-GTK">PHP-GTK</a></li> <li><a href="/wiki/WxPHP" title="WxPHP">wxPHP</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Python_(programming_language)" title="Python (programming language)">Python</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Tkinter" title="Tkinter">Tkinter</a></li> <li><a href="/wiki/Kivy_(framework)" title="Kivy (framework)">Kivy</a></li> <li><a href="/wiki/PySide" title="PySide">PySide</a></li> <li><a href="/wiki/PyQt" title="PyQt">PyQt</a></li> <li><a href="/wiki/PyGTK" title="PyGTK">PyGTK</a></li> <li><a href="/wiki/WxPython" title="WxPython">wxPython</a></li> <li><a href="/wiki/Pyjs" title="Pyjs">Pyjs</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Ruby_(programming_language)" title="Ruby (programming language)">Ruby</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Shoes_(GUI_toolkit)" class="mw-redirect" title="Shoes (GUI toolkit)">Shoes</a></li> <li><a href="/wiki/QtRuby" class="mw-redirect" title="QtRuby">QtRuby</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Tcl" title="Tcl">Tcl</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Tk_(software)" title="Tk (software)">Tcl/Tk</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/XML" title="XML">XML</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Glade_Interface_Designer" title="Glade Interface Designer">GladeXML</a></li> <li><a class="mw-selflink selflink">Lively Kernel</a></li> <li><a href="/wiki/Extensible_Application_Markup_Language" title="Extensible Application Markup Language">Extensible Application Markup Language</a></li> <li><a href="/wiki/XUL" title="XUL">XUL</a></li> <li><a href="/wiki/Wt_(web_toolkit)" title="Wt (web toolkit)">Wt</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Unix_shell" title="Unix shell">shell</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Newt_(programming_library)" title="Newt (programming library)">Newt</a></li> <li><a href="/wiki/CDK_(programming_library)" title="CDK (programming library)">CDK</a></li> <li><a href="/wiki/Dialog_(software)" title="Dialog (software)">Dialog</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Dart_(programming_language)" title="Dart (programming language)">Dart</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Flutter_(software)" title="Flutter (software)">Flutter</a></li></ul> </div></td></tr></tbody></table></div> <div class="navbox-styles"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236075235"></div><div role="navigation" class="navbox" aria-labelledby="Rich_Internet_Applications360" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1239400231"><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:Rich_Internet_Applications" title="Template:Rich Internet Applications"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:Rich_Internet_Applications" title="Template talk:Rich Internet Applications"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:Rich_Internet_Applications" title="Special:EditPage/Template:Rich Internet Applications"><abbr title="Edit this template">e</abbr></a></li></ul></div><div id="Rich_Internet_Applications360" style="font-size:114%;margin:0 4em"><a href="/wiki/Rich_Internet_Application" title="Rich Internet Application">Rich Internet Applications</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Basic frameworks</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Adobe_Flash" title="Adobe Flash">Adobe Flash</a></li> <li><a href="/wiki/Apache_Flex" title="Apache Flex">Apache Flex</a></li> <li><a href="/wiki/Apache_Pivot" title="Apache Pivot">Apache Pivot</a></li> <li>Cappuccino</li> <li><a href="/wiki/Curl_(programming_language)" title="Curl (programming language)">Curl</a></li> <li><a href="/wiki/Google_Web_Toolkit" title="Google Web Toolkit">Google Web Toolkit</a></li> <li><a href="/wiki/JavaFX" title="JavaFX">JavaFX</a></li> <li><a class="mw-selflink selflink">Lively Kernel</a></li> <li><a href="/wiki/Moonlight_(runtime)" title="Moonlight (runtime)">Moonlight</a></li> <li><a href="/wiki/Microsoft_Silverlight" title="Microsoft Silverlight">Silverlight</a></li> <li><a href="/wiki/OpenLaszlo" title="OpenLaszlo">OpenLaszlo</a></li> <li><a href="/wiki/Qt_Quick" title="Qt Quick">Qt Quick</a></li> <li><a href="/wiki/SproutCore" title="SproutCore">SproutCore</a></li> <li><a href="/wiki/XULRunner" title="XULRunner">XULRunner</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Site-specific_browser" title="Site-specific browser">Site-specific browsers</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Adobe_AIR" title="Adobe AIR">AIR</a></li> <li><a href="/wiki/Curl_(programming_language)" title="Curl (programming language)">Curl</a></li> <li><a href="/wiki/Fluid_(web_browser)" title="Fluid (web browser)">Fluid</a></li> <li><a href="/wiki/Gollum_browser" title="Gollum browser">Gollum</a></li> <li><a href="/wiki/Google_Chrome" title="Google Chrome">Google Chrome</a> <ul><li><a href="/wiki/Gears_(software)" title="Gears (software)">Gears</a></li></ul></li> <li><a href="/wiki/Mozilla_Prism" title="Mozilla Prism">Mozilla Prism</a></li> <li><a href="/w/index.php?title=WebCatalog&action=edit&redlink=1" class="new" title="WebCatalog (page does not exist)">WebCatalog</a></li></ul> </div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div> <ul><li><b><span class="noviewer" typeof="mw:File"><span title="Category"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/16px-Symbol_category_class.svg.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/23px-Symbol_category_class.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/31px-Symbol_category_class.svg.png 2x" data-file-width="180" data-file-height="185" /></span></span> <a href="/wiki/Category:Rich_Internet_Applications" title="Category:Rich Internet Applications">Category</a></b></li> <li><b><span class="noviewer" typeof="mw:File"><span title="List-Class article"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/d/db/Symbol_list_class.svg/16px-Symbol_list_class.svg.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/d/db/Symbol_list_class.svg/23px-Symbol_list_class.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/d/db/Symbol_list_class.svg/31px-Symbol_list_class.svg.png 2x" data-file-width="180" data-file-height="185" /></span></span> <a href="/wiki/List_of_rich_web_application_frameworks" title="List of rich web application frameworks">List of frameworks</a></b></li></ul> </div></td></tr></tbody></table></div> <!-- NewPP limit report Parsed by mw‐api‐int.codfw.main‐d476997df‐8pkdn Cached time: 20250224220823 Cache expiry: 2592000 Reduced expiry: false Complications: [vary‐revision‐sha1, show‐toc] CPU time usage: 0.464 seconds Real time usage: 0.543 seconds Preprocessor visited node count: 1708/1000000 Post‐expand include size: 79093/2097152 bytes Template argument size: 3512/2097152 bytes Highest expansion depth: 27/100 Expensive parser function count: 4/500 Unstrip recursion depth: 1/20 Unstrip post‐expand size: 44326/5000000 bytes Lua time usage: 0.248/10.000 seconds Lua memory usage: 5395118/52428800 bytes Number of Wikibase entities loaded: 1/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 423.758 1 -total 40.94% 173.490 2 Template:Infobox 29.68% 125.768 1 Template:Infobox_software 25.63% 108.617 5 Template:Navbox 22.98% 97.382 1 Template:Reflist 21.74% 92.107 1 Template:Widget_toolkits 19.79% 83.871 1 Template:Cite_book 18.57% 78.713 1 Template:Short_description 13.26% 56.176 1 Template:Infobox_software/simple 11.12% 47.128 2 Template:Pagetype --> <!-- Saved in parser cache with key enwiki:pcache:27079882:|#|:idhash:canonical and timestamp 20250224220823 and revision id 1228983741. Rendering was triggered because: api-parse --> </div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?useformat=desktop&type=1x1&usesul3=0" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">Retrieved from "<a dir="ltr" href="https://en.wikipedia.org/w/index.php?title=Lively_Kernel&oldid=1228983741">https://en.wikipedia.org/w/index.php?title=Lively_Kernel&oldid=1228983741</a>"</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Help:Category" title="Help:Category">Categories</a>: <ul><li><a href="/wiki/Category:JavaScript" title="Category:JavaScript">JavaScript</a></li><li><a href="/wiki/Category:JavaScript_libraries" title="Category:JavaScript libraries">JavaScript libraries</a></li><li><a href="/wiki/Category:Rich_web_application_frameworks" title="Category:Rich web application frameworks">Rich web application frameworks</a></li><li><a href="/wiki/Category:Software_using_the_MIT_license" title="Category:Software using the MIT license">Software using the MIT license</a></li><li><a href="/wiki/Category:Web_frameworks" title="Category:Web frameworks">Web frameworks</a></li><li><a href="/wiki/Category:Ajax_(programming)" title="Category:Ajax (programming)">Ajax (programming)</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">Hidden categories: <ul><li><a href="/wiki/Category:Articles_with_short_description" title="Category:Articles with short description">Articles with short description</a></li><li><a href="/wiki/Category:Short_description_matches_Wikidata" title="Category:Short description matches Wikidata">Short description matches Wikidata</a></li></ul></div></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> This page was last edited on 14 June 2024, at 06:25<span class="anonymous-show"> (UTC)</span>.</li> <li id="footer-info-copyright">Text is available under the <a href="/wiki/Wikipedia:Text_of_the_Creative_Commons_Attribution-ShareAlike_4.0_International_License" title="Wikipedia:Text of the Creative Commons Attribution-ShareAlike 4.0 International License">Creative Commons Attribution-ShareAlike 4.0 License</a>; additional terms may apply. By using this site, you agree to the <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use" class="extiw" title="foundation:Special:MyLanguage/Policy:Terms of Use">Terms of Use</a> and <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy" class="extiw" title="foundation:Special:MyLanguage/Policy:Privacy policy">Privacy Policy</a>. Wikipedia® is a registered trademark of the <a rel="nofollow" class="external text" href="https://wikimediafoundation.org/">Wikimedia Foundation, Inc.</a>, a non-profit organization.</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">Privacy policy</a></li> <li id="footer-places-about"><a href="/wiki/Wikipedia:About">About Wikipedia</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wikipedia:General_disclaimer">Disclaimers</a></li> <li id="footer-places-contact"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us">Contact Wikipedia</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Code of Conduct</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Developers</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/en.wikipedia.org">Statistics</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Cookie statement</a></li> <li id="footer-places-mobileview"><a href="//en.m.wikipedia.org/w/index.php?title=Lively_Kernel&mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobile view</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><picture><source media="(min-width: 500px)" srcset="/static/images/footer/wikimedia-button.svg" width="84" height="29"><img src="/static/images/footer/wikimedia.svg" width="25" height="25" alt="Wikimedia Foundation" lang="en" loading="lazy"></picture></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><picture><source media="(min-width: 500px)" srcset="/w/resources/assets/poweredby_mediawiki.svg" width="88" height="31"><img src="/w/resources/assets/mediawiki_compact.svg" alt="Powered by MediaWiki" width="25" height="25" loading="lazy"></picture></a></li> </ul> </footer> </div> </div> </div> <div class="vector-header-container vector-sticky-header-container"> <div id="vector-sticky-header" class="vector-sticky-header"> <div class="vector-sticky-header-start"> <div class="vector-sticky-header-icon-start vector-button-flush-left vector-button-flush-right" aria-hidden="true"> <button class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-sticky-header-search-toggle" tabindex="-1" data-event-name="ui.vector-sticky-search-form.icon"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Search</span> </button> </div> <div role="search" class="vector-search-box-vue vector-search-box-show-thumbnail vector-search-box"> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail"> <form action="/w/index.php" id="vector-sticky-search-form" class="cdx-search-input cdx-search-input--has-end-button"> <div class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Search Wikipedia"> <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:Search"> </div> <button class="cdx-button cdx-search-input__end-button">Search</button> </form> </div> </div> </div> <div class="vector-sticky-header-context-bar"> <nav aria-label="Contents" class="vector-toc-landmark"> <div id="vector-sticky-header-toc" class="vector-dropdown mw-portlet mw-portlet-sticky-header-toc vector-sticky-header-toc vector-button-flush-left" > <input type="checkbox" id="vector-sticky-header-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-sticky-header-toc" class="vector-dropdown-checkbox " aria-label="Toggle the table of contents" > <label id="vector-sticky-header-toc-label" for="vector-sticky-header-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Toggle the table of contents</span> </label> <div class="vector-dropdown-content"> <div id="vector-sticky-header-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div class="vector-sticky-header-context-bar-primary" aria-hidden="true" ><span class="mw-page-title-main">Lively Kernel</span></div> </div> </div> <div class="vector-sticky-header-end" aria-hidden="true"> <div class="vector-sticky-header-icons"> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-talk-sticky-header" tabindex="-1" data-event-name="talk-sticky-header"><span class="vector-icon mw-ui-icon-speechBubbles mw-ui-icon-wikimedia-speechBubbles"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-subject-sticky-header" tabindex="-1" data-event-name="subject-sticky-header"><span class="vector-icon mw-ui-icon-article mw-ui-icon-wikimedia-article"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-history-sticky-header" tabindex="-1" data-event-name="history-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-history mw-ui-icon-wikimedia-wikimedia-history"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only mw-watchlink" id="ca-watchstar-sticky-header" tabindex="-1" data-event-name="watch-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-star mw-ui-icon-wikimedia-wikimedia-star"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-edit-sticky-header" tabindex="-1" data-event-name="wikitext-edit-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-wikiText mw-ui-icon-wikimedia-wikimedia-wikiText"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-ve-edit-sticky-header" tabindex="-1" data-event-name="ve-edit-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-edit mw-ui-icon-wikimedia-wikimedia-edit"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-viewsource-sticky-header" tabindex="-1" data-event-name="ve-edit-protected-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-editLock mw-ui-icon-wikimedia-wikimedia-editLock"></span> <span></span> </a> </div> <div class="vector-sticky-header-buttons"> <button class="cdx-button cdx-button--weight-quiet mw-interlanguage-selector" id="p-lang-btn-sticky-header" tabindex="-1" data-event-name="ui.dropdown-p-lang-btn-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-language mw-ui-icon-wikimedia-wikimedia-language"></span> <span>Add languages</span> </button> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive" id="ca-addsection-sticky-header" tabindex="-1" data-event-name="addsection-sticky-header"><span class="vector-icon mw-ui-icon-speechBubbleAdd-progressive mw-ui-icon-wikimedia-speechBubbleAdd-progressive"></span> <span>Add topic</span> </a> </div> <div class="vector-sticky-header-icon-end"> <div class="vector-user-links"> </div> </div> </div> </div> </div> <div class="vector-settings" id="p-dock-bottom"> <ul></ul> </div><script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.main-55f85cbc4-nm9cs","wgBackendResponseTime":142,"wgPageParseReport":{"limitreport":{"cputime":"0.464","walltime":"0.543","ppvisitednodes":{"value":1708,"limit":1000000},"postexpandincludesize":{"value":79093,"limit":2097152},"templateargumentsize":{"value":3512,"limit":2097152},"expansiondepth":{"value":27,"limit":100},"expensivefunctioncount":{"value":4,"limit":500},"unstrip-depth":{"value":1,"limit":20},"unstrip-size":{"value":44326,"limit":5000000},"entityaccesscount":{"value":1,"limit":400},"timingprofile":["100.00% 423.758 1 -total"," 40.94% 173.490 2 Template:Infobox"," 29.68% 125.768 1 Template:Infobox_software"," 25.63% 108.617 5 Template:Navbox"," 22.98% 97.382 1 Template:Reflist"," 21.74% 92.107 1 Template:Widget_toolkits"," 19.79% 83.871 1 Template:Cite_book"," 18.57% 78.713 1 Template:Short_description"," 13.26% 56.176 1 Template:Infobox_software/simple"," 11.12% 47.128 2 Template:Pagetype"]},"scribunto":{"limitreport-timeusage":{"value":"0.248","limit":"10.000"},"limitreport-memusage":{"value":5395118,"limit":52428800}},"cachereport":{"origin":"mw-api-int.codfw.main-d476997df-8pkdn","timestamp":"20250224220823","ttl":2592000,"transientcontent":false}}});});</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"Lively Kernel","url":"https:\/\/en.wikipedia.org\/wiki\/Lively_Kernel","sameAs":"http:\/\/www.wikidata.org\/entity\/Q6658174","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q6658174","author":{"@type":"Organization","name":"Contributors to Wikimedia projects"},"publisher":{"@type":"Organization","name":"Wikimedia Foundation, Inc.","logo":{"@type":"ImageObject","url":"https:\/\/www.wikimedia.org\/static\/images\/wmf-hor-googpub.png"}},"datePublished":"2010-04-23T18:32:03Z","dateModified":"2024-06-14T06:25:56Z","image":"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/5\/5e\/Chromium5.0.375.99_showing_lively_kernel_using_gtk%2B_theme.png","headline":"open-source web programming environment"}</script> </body> </html>