Lebhafter Kernel
![]() Lebhafter Kernel 0.9 Beispiel läuft in Chrom 5 | |
Entwickler (en) | Sun Microsystems Laboratorien, Hasso Plattner Institute |
---|---|
Stabile Version | 2.1.3 / 7. April 2012 |
Geschrieben in | JavaScript, QT -Variante fügt hinzu C ++ |
Betriebssystem | Plattformübergreifend |
Plattform | Apfel Safari, Mozilla Feuerfuchs, Google Chrome, Oper, iPhone/iPad, Microsoft Internet Explorer Nur vor der Version 9 mit Erweiterungen, aber ein experimenteller Anschluss, der ein zusätzliches Webbrowser-Plug-In benötigt, ist verfügbar, ist verfügbar |
Verfügbar in | Englisch |
Typ | Web Entwicklung |
Lizenz | MIT |
Webseite | lebhafter Kernel |
Das Lebhafter Kernel ist ein Open Source Web -Programmierumgebung. Es unterstützt Anwendungen im Desktop-Stil mit reichhaltigen Grafiken und direkten Manipulationsfähigkeiten.[1][2] Die Entwicklung begann bei Sun Microsystems Labors in Menlo Park, Kalifornienund später zur Hasso Plattner Institute in Potsdam-Babelsberg in der Nähe von Berlin.
Überblick
Der lebhafte Kernel ist eine grafische Komposition und eine integrierte Programmierumgebung, die vollständig in dem geschrieben wurde Programmiersprache JavaScript Verwenden von Standard -Browser -Grafiken (W3C -Leinwand oder SVG). Es ist somit als Webseite für jeden Browser zugegriffen und beginnt mit dem Betrieb, sobald die Webseite geladen ist. Es ist in der Lage, seinen eigenen Code und seine Grafik zu bearbeiten, und kann durch die integrierte WebDAV-Unterstützung seine Ergebnisse speichern oder sich sogar auf neue Webseiten klonen. Zusammen mit seinen Fähigkeiten zur Anwendungsentwicklung kann es auch als eigene integrierte Entwicklungsumgebung (ID) fungieren, wodurch das gesamte System ohne Tools außer einem Browser autark wird.
Formen, Widgets, Windows, IDE alle auf einer Webseite
Der lebhafte Kernel verwendet a Morphisch Grafikmodell zum Hinzufügen von Verhalten zu einem Szenengraf, das aus Browsergrafiken erstellt wurde. Einfache Grafiken werden somit in Standard -Widgets wie Slider, Scroll -Balken, Textansichten, Listen und Clipping -Frames zusammengesetzt. Ein einfaches Fenstersystem, das aus diesen Widgets erstellt wurde, bietet Objektinspektoren, Dateibrowser und Codebrowser. Sogar die rudimentären Demo -Seiten können also neuen Code in einem einfachen Codebrowser bearbeiten und testen, während das System ausgeführt wird.
Lively wurde verwendet, um einfache Websites zu erstellen, einschließlich eines eigenen Tutorials, und auch ein clientseitiges Wiki-System, das seine Seiten in einem versionierten Repository speichert. Der Inhalt kann von relativ statischen Textseiten bis hin zu voll dynamischen Modellen variieren, die sich verhalten und sich verhalten Adobe Flash Simulationen. Der lebhafte Kernel erreicht ein komplexes dynamisches Verhalten ohne spezifische Animationsunterstützung (es wird nicht die Animationsfunktionen von SVG verwendet), sondern durch einfache Planung mehrerer Green-Thread-Prozesse in JavaScript.
Text und Transformationen
Der lebhafte Kernel enthält einen eigenen Multifont -Texteditor, der in JavaScript geschrieben wurde. Es beinhaltet die Unterstützung für Zentrierung, Rechtfertigung und ähnliche rudimentäre Textkompositionsfähigkeiten. Das Arbeiten in lebhaft der lebhafte Kernel.
Die Lebendigkeit lebhafter Grafiken wird bei der Manipulation der Skala- und Rotationsgriffe für Objekte und Text noch deutlicher. Der gesamte Code -Browser kann verwendet werden, wenn er 20 Grad auf der Seite geneigt ist. Da der Texteditor ausschließlich aus lebhaften Grafiken besteht, funktioniert er bei Drehen oder Skalierung perfekt, ebenso wie die Scroll -Balken, die Schnittrahmen und der Rest der gesamten Benutzeroberfläche.
Cross-Browser-Kompatibilität
Der lebhafte Kernel hängt von der Browser -Unterstützung für JavaScript und SVG oder Canvas -Grafiken ab, die jetzt Teil der W3C -Standards sind. Ab 2009 bedeutet dies, dass es in Safari-, Firefox-, Chrome- und Opernbrowsern betrieben wird.
Während diese Anforderung weniger kompatibel erscheint als HTML, ist lebhafter tatsächlich kompatibel über die Browser, auf denen sie ausgeführt wird, als HTML. Dies liegt daran, dass die Implementierungen von JavaScript, SVG und Canvas mehr Einheitlichkeit haben als von einer HTML -Implementierung zu einer anderen. Mit Ausnahme einer kleinen Anfangsdatei ist die lebhafte Kernel -Codebasis völlig frei von Tests, für die der Clientbrowser verwendet wird.
Ab 2011 läuft Lively Kernel am besten in Webkit-basierten Browser wie z. Safari für Macintosh, oder Chrom oder Google Chrome für Windows. Das Ausführen im Internet Explorer (Windows) erfordert Google Chrome Frame. Für die nächste Veröffentlichung ist das Testen in allen beliebten Browsern geplant.
Integrierte Entwicklungsumgebung
Lively beinhaltet eine integrierte Entwicklungsumgebung mit beträchtlicher Leistung, die für die Arbeit über die Arbeit entwickelt wurde Webdav Mit einem lokalen Satz von etwa einem Dutzend Quellen -JavaScript -Dateien synchronisierbar mit einem versionierten Repository. Wenn der Benutzer einen Systembrowser öffnet, sind alle JavaScript -Quelldateien im Dateibereich des Browsers aufgeführt. Wenn der Benutzer auf eine dieser Dateien klickt, wird er gelesen, analysiert (von einem Ometa JavaScript -Parser) und ähnlich wie a angezeigt. Smalltalk Browser mit Funktionen oder Klassendefinitionen aufgeführt und für jede Klasse werden alle Methodamen angezeigt. Der Benutzer kann auf einen Methodennamen klicken, seinen Code im unteren Bereich bearbeiten und dann die neue Definition speichern. Die neue Definition wird auf Syntax überprüft und, wenn sie korrekt ist, in der .js -Datei wieder gespeichert werden. Wenn im "Eval -Modus" (der übliche Fall), wird die Methode in dem ausgeführten System neu definiert. Dies ermöglicht es, nicht kritische Änderungen vorzunehmen, ohne dass lebhafte oder entwickelte Anwendungen neu gestartet werden müssen. Wenn alle Quelldateien geladen werden, findet ein schneller Scan jede Referenz zu einem ausgewählten Text und präsentiert alle Codekörper, die in einem separaten Unterbrowser übereinstimmen.
Die lebhafte IDE enthält Objektinspektoren und Morph -Panels zum Steuerungsfüllungen, Rändern und Textstilen. Es gibt auch Einrichtungen zum Debuggen an Fehlerpunkten und Profilerstellung für die Leistungsstimmung, diese wurden jedoch aufgrund der Verbesserung der Qualität solcher Laufzeitunterstützung in allen wichtigen Browsern nicht vorangetrieben.
Lebhafter Wiki
Die IDE arbeitet in ihren Quellcode -Dateien in einem Versions -Repository, um die Evolution der lebhaften Codebasis zu verwalten. Der gleiche Ansatz wurde verwendet, um den Benutzern die Kontrolle über aktive Webinhalte in Form eines clientseitigen Wiki zu befähigen. Da Lively Möglichkeiten enthält, die Inhalte in seinen Welten (Szenengrafiken und andere Inhalte) zu bearbeiten und diese Inhalte als Webseiten zu speichern, ermöglicht eine WebDAV -Verbindung Lively, neue Versionen seiner Seiteninhalte zu speichern, während sie schrittweise entwickelt wird. Während jede neue Version gespeichert ist, ist sie vom Rest des Internets aus angezeigt, und frühere Versionen können in Fällen von Fehler oder Änderungsänderungen abgerufen werden. Es ist bemerkenswert, dass sich dieser Wiki -Stil der sich entwickelnden Webinhalte auf alle Text-, Grafik- und Skriptinhalte in lebhafter sowie auf neue Formulare erstreckt, die möglicherweise definiert werden, doch ohne einen Wiki -Server aller Art benötigt.[3] Alles, was erforderlich ist, ist ein Server, der eine HTTP -WebDAV -Schnittstelle bereitstellt. Zunehmende Mengen des lebhaften Projektinhalts werden nun auf diese Weise aufrechterhalten.
Lebhaft für qt
Lebtig für QT ist eine neue Implementierung des lebhaften Kernels, in dem die "Kernel" -Teile durch die von der angebotenen Funktionalität ersetzt werden QT -Framework.[4] Lively für QT erbt den größten Teil der grundlegenden Funktionalität (z. Lively für QT behält die außergewöhnlich interaktive Natur (die "Lebendigkeit") des lebhaften Kernels, z. B. durch die Bearbeitung der Benutzeroberfläche und des Anwendungsquellencodes im laufenden Fliegen. In Lively für QT wird die Entwicklungsarbeiten jedoch unter Verwendung der vertrauten, gut dokumentierten APIs der QT-Plattform durchgeführt.
Beispielcode
// clockmorph: eine einfache analoge Uhr Morph.Unterklasse(“Clockmorph”, { StandardBorderwidth: 2, Typ: "Clockmorph", // Konstrukteur initialisieren: Funktion($ super, Position, Radius) { $ super(Position.AsRectangle().erweitern(Radius), "Ellipse"); Dies.OpenfordRaganddrop = FALSCH; // Bearbeiten Sie keine Drag-and-Drop-Anfragen Dies.Makenewface(); // die Uhr Gesicht konstruieren Rückkehr Dies; }, // Konstruieren Sie ein neues Uhrengesicht Makenewface: Funktion() { var Bnds = Dies.Form.Grenzen(); var Radius = Bnds.Breite/3; var Etiketten = []; var Schriftgröße = Mathematik.Max(Mathematik.Boden(0,04 * (Bnds.Breite + Bnds.Höhe)),4); var Etikettengröße = Schriftgröße; // Raum zur Mitte mit Standardeinschub // römische Ziffern zur Uhr hinzufügen zum (var i = 0; i < 12; i++) { var Labelposition = Bnds.Center().Addpt(Punkt.Polar-(Radius*0,85, ((i-3)/12)*Mathematik.PI*2)).addxy(Etikettengröße, 0); var Etikett = Neu Textmorph(pt(0,0).Ausmaß(pt(Etikettengröße*3,Etikettengröße)), ['Xii','ICH',"II","Iii","IV",'V','Vi','Vii' ',"Viii",'Ix','X',"Xi"][i]); Etikett.setwrapStyle(Wrapstyle.SCHRUMPFEN); Etikett.setfontsize(Schriftgröße); Etikett.setInset(pt(0,0)); Etikett.SetBorderwidth(0); Etikett.SetFill(Null); Etikett.ausrichten(Etikett.Grenzen().Center(),,Labelposition.addxy(-2,1)); Dies.Addmorph(Etikett); } // Uhr Hände hinzufügen Dies.Addmorph(Dies.Stunden Zeiger = Morph.Makeline[pt(0,0),pt(0,-Radius*0,5)],4,Farbe.blau)); Dies.Addmorph(Dies.Minutehand = Morph.Makeline[pt(0,0),pt(0,-Radius*0,7)],3,Farbe.blau)); Dies.Addmorph(Dies.gebraucht = Morph.Makeline[pt(0,0),pt(0,-Radius*0,75)],2,Farbe.rot)); Dies.SetHands(); Dies.geändert(); }, // Takthandwinkel basierend auf der aktuellen Zeit einstellen SetHands: Funktion() { var jetzt = Neu Datum(); var zweite = jetzt.Getseconds(); var Minute = jetzt.Getminutes() + zweite/60; var Stunde = jetzt.Gethours() + Minute/60; Dies.Stunden Zeiger.setRotation(Stunde/12*2*Mathematik.PI); Dies.Minutehand.setRotation(Minute/60*2*Mathematik.PI); Dies.gebraucht.setRotation(zweite/60*2*Mathematik.PI); }, // wird aufgerufen, wenn das Clockmorph in einer Welt platziert wird StartSeppingscripts: Funktion() { Dies.Startstepping(1000, "SetHands"); // einmal pro Sekunde } });
Verweise
- ^ Der lebhafte Kernel ist ein selbsttragendes System auf einer Webseite
- ^ Das lebhafte Kernel -Anwendungsrahmen
- ^ Lebhafte Wiki Eine Entwicklungsumgebung zum Erstellen und Teilen von aktiven Webinhalten, Krahn Ingalls Hirschfeld Lincke Palacz, Wikisym ’09, 25. bis 27. Oktober 2009
- ^ Lively für QT: Eine Plattform für mobile Webanwendungen, Mikkonen Taivalsaari Terho, Mobilität 2009, 2. bis 4. September