Phoenix Object Basic
Phoenix Object Basic (ehemals Envelop) ist eine integrierte Entwicklungsumgebung, die im Jahr 1995 vom US-amerikanischen Unternehmen Cimlinc entwickelt wurde.[2][3] Nach dem Ende der Entwicklung durch Cimlinc wurde das Projekt vom niederländischen Unternehmen Janus Software übernommen und in Phoenix Object Basic umbenannt. Dort wurde die Entwicklungsumgebung für das Betriebssystem Linux portiert. Die Entwicklungsumgebung ermöglicht Rapid Application Development (RAD) in einer eigenen objektorientierten Programmiersprache, die sich sehr stark an Visual Basic 3 orientiert. Die Gestaltung der grafischen Benutzeroberfläche von Envelop sowie die dort bereitgestellten Werkzeuge sind ebenfalls an Visual Basic angelehnt. Die letzte Version (1.4) für Windows erschien im Jahr 1996.[2] Die letzte Version (1.5 beta 6) für Linux erschien im Jahr 2004. Die Website von Envelop existiert nicht mehr und die Software wird nicht mehr angeboten. Eigenschaften der ProgrammiersprachePhoenix Object Basic ist eine imperative, objektorientierte Programmiersprache.[4][5] Klassen und ObjektePhoenix Object Basic ist eine objektorientierte Programmiersprache. Im Gegensatz zu den meisten objektorientierten Programmiersprachen, findet allerdings keine explizite Aufteilung in Klassen und Objekte statt. Allgemein stellen Objekte eine Instanz einer Klasse dar. Eine Klasse ist eine Menge aller Objekte mit gleichen Attributen und Operationen.[6] In Phoenix Object Basic können bestehende Objekte kopiert und abstrahiert werden. Die Abstraktion eines Objekts bildet das Prinzip der Vererbung nach. Mehrfachvererbung ist mit Envelop nicht möglich. Zudem existieren in Envelop auch keine Sichtbarkeiten für Attribute und Methoden. Objekte können entweder zur Entwurfszeit über die Entwicklungsumgebung abstrahiert werden[7][8] oder dynamisch während der Laufzeit. Das globale Objekt Über das globale Objekt Datentypen und VariablenPhoenix Object Basic stellt folgende Datentypen bereit:
Einschränkungen der Datentypen:
Subroutinen und FunktionenIn Phoenix Object Basic wird (wie in den meisten Dialekten der Programmiersprache BASIC) zwischen Funktionen (Function) und Subroutinen (Sub) unterschieden. Funktionen sind Methoden, welche einen Wert zurückgeben, während Subroutinen keinen Wert zurückgeben können. Parameter können als Wert oder als Referenz übergeben werden. Soll ein Parameter als Wert übergeben werden, muss das Schlüsselwort In Phoenix Object Basic können auch Methoden aus externen Dynamic Link Libraries (DLL) aufgerufen werden.[5][19] Die Syntax zur Deklaration externer Methoden ist dabei ähnlich zu der von Visual Basic.[20] Obwohl die Entwicklung von Envelop 1996 (also zu Zeiten von Windows 95) eingestellt wurde, können auf diese Art und Weise auch Funktionen aus neueren Windows-Versionen verwendet werden. Da Envelop nur 32 Bit Anwendungen erzeugen kann,[21] können jedoch nur externe Funktionen aus 32 Bit DLLs genutzt werden.[22] Plattformabhängige Funktionen können allerdings nicht aus anderen Betriebssystemen heraus aufgerufen werden. Declare Function FileEncryptionStatus Lib "Advapi32" Alias "FileEncryptionStatusA" (ByVal lpFileName As String, lpStatus As Long) As Integer
Das Beispiel zeigt die Deklaration der externen Funktion FehlerbehandlungIm Gegensatz zu den meisten BASIC Programmiersprachen der damaligen Zeit, werden in Envelop keine numerischen Fehlercodes und Sprunganweisungen (Goto) zur Verarbeitung von Fehlern verwendet, sondern das Prinzip der strukturierten Ausnahmebehandlung (Try-Catch-Prinzip).[24] Sub btnDiv_Click()
Dim m as New MessageBox
m.SetIconStop
Try
txtResult.Text = txtNum1.Text / txtNum2.Text
Catch ConvertFailed
m.Message("Fehler", "Bitte geben Sie zwei Zahlen ein!")
Catch FPException
m.Message("Fehler", "Division durch 0 ist nicht erlaubt!")
Catch
m.Message("Fehler", "Es ist ein unbekannter Fehler aufgetreten!")
End Try
End Sub
Das Beispiel zeigt einen Ausschnitt aus einem simplen Taschenrechner. Wenn der Benutzer die Schaltfläche „Dividieren“ ( FormularentwurfPhoenix Object Basic stellt einen grafischen Editor zur Erstellung von grafischen Benutzeroberflächen bereit.[4][21] Dieser ist nahezu identisch zum Formulareditor von Visual Basic. Diese Formularentwürfe werden in einer Objekt-Datei (*.ebo) gespeichert. Für alle Elemente zur Gestaltung von grafischen Benutzeroberflächen, die über ein sogenanntes Handle verfügen, existiert das Basisobjekt BasissteuerelementeDie nachfolgenden Steuerelemente existieren sowohl für die Zielplattform Windows, als auch für Derivate des Betriebssystems Linux.
Darüber hinaus kann für jedes Formular eine Menüleiste mit Hilfe eines visuellen Editors angelegt und bearbeitet werden. Erweiterte SteuerelementeNeben den plattformunabhängigen Standardelementen, stehen unter Microsoft Windows noch einige zusätzliche Komponenten bereit:
Darüber hinaus können unter Microsoft Windows auch noch 32 Bit ActiveX-Komponenten von Microsoft oder Drittanbietern eingebunden werden.[43] Ebenso besteht dort die Möglichkeit, OLE-Objekte einzubinden.[44] Dabei handelt es sich beispielsweise um Verbunddokumente aus der Microsoft-Office-Familie (Word-Dokumente, PowerPoint-Folien, Excel-Tabellen und -Diagramme), digitale Medien, CAD-Zeichnungen oder beliebige andere Dateien. Unter Linux wird dieses Konzept nicht unterstützt. Benutzerdefinierte SteuerelementeIm Gegensatz zu Visual Basic gab es in der finalen Version von Envelop bereits im Jahr 1996 die Möglichkeit, benutzerdefinierte Steuerelemente zu erstellen. Diese werden in Envelop als Hyper-Control bezeichnet.[45] Ein benutzerdefiniertes Steuerelement ist eine Gruppierung mehrerer (primitiver) Steuerelemente zu einem neuen komplexen Steuerelement.[21] Diese kann man innerhalb eines Projekts oder auch in mehreren Projekten an mehreren Stellen wiederverwenden. Derartige Steuerelemente können auch eigene Eigenschaften, Methoden (z. B. Konsistenzprüfungen) und Ereignisse besitzen und an Datenquellen gebunden werden. Beispiele dafür sind unter anderem Eingabemasken für Postadressen, Produktdaten oder Daten in digitalen Patientenakten. Dieses Konzept hat sich in vielen Programmiersprachen durchgesetzt und findet auch heute noch Verwendung. Zur damaligen Zeit war die Bereitstellung derartiger Möglichkeiten zumindest für BASIC-Programmiersprachen nicht selbstverständlich und daher ein deutlicher Mehrwert dieser Programmiersprache. DatenbindungÄhnlich wie in Visual Basic und den meisten modernen RAD-Entwicklungsumgebungen können Steuerelemente an eine Datenquelle gebunden werden.[4][5] Dadurch können klassische formularbasierte Anwendungen zur Datenerfassung und -verarbeitung einfach und schnell entwickelt werden. Komplexe Eingabemasken können mit sogenannten Hyper Controls realisiert werden. BibliothekenFormularentwürfe, Steuerelemente und Code-Dateien werden in Objektdateien (*.ebo) gespeichert. Diese sind intern nach dem Compound File Binary Format (CFBF) aufgebaut und können in beliebig vielen Projekten wiederverwendet werden. Allerdings lassen sich daraus keine DLL oder OCX Dateien generieren. Modifikation der EntwicklungsumgebungEine Besonderheit von Envelop ist die Tatsache, dass die Entwicklungsumgebung teilweise selbst in Envelop-Basic programmiert ist und durch Entwickler angepasst und erweitert werden kann.[5] Auf diese Art und Weise kann man beispielsweise die Benutzeroberfläche in eine andere Sprache übersetzen, Makros entwickeln (Automatisierung) oder eigene Assistenten programmieren. Die Weiterentwicklung der Programmiersprache selbst bzw. des Compilers (Bootstrapping) ist allerdings nicht möglich. Der Quellcode für die zentralen Elemente der Sprachverarbeitung ist nicht öffentlich verfügbar, da hier urheberrechtlich geschützte Elemente eingesetzt werden. Distribution von Envelop ProgrammenEnvelop generiert ausschließlich 32 Bit Anwendungen für Windows. Bei den kompilierten Apps handelt es sich jedoch nicht um Stand-Alone-Anwendungen. Bei der Verteilung der Apps müssen einige Laufzeitkomponenten mit ausgeliefert werden. Um dies zu erleichtern, wird neben der IDE auch ein rudimentäres Programm zur Erstellung von Installationsprogrammen für Envelop Anwendungen mitgeliefert. Envelop und die damit erstellten Programme sind grundsätzlich auch noch unter der 32-Bit-Version von Windows 10 lauffähig, wenn NTVDM installiert wurde. Unter der 64-Bit-Version von Windows steht dieser Dienst nicht bereit, weshalb Envelop Programme dort generell nicht ausgeführt werden können. Die Entwicklungsumgebung und die damit erstellten Programme dürfen allerdings keine visuellen Stile nutzen, da sie sonst nicht lauffähig sind und abstürzen. Visuelle Stile werden entweder über eine Manifest-Datei oder eine Manifest-Ressource aktiviert. Andere Funktionen, die durch Manifest-Dateien aktiviert werden können, werden durchaus unterstützt. Dazu zählen unter anderem:[46]
Bei Linux Betriebssystemen müssen einige alte Pakete installiert werden, um Envelop und die damit erstellten Programme lauffähig zu machen. VerbreitungSeit die Entwicklung im Jahr 2004 eingestellt wurde, hat die Entwicklungsumgebung bzw. Programmiersprache keine nennenswerte Verbreitung gefunden. AlternativenDie Entwicklung von Envelop für Windows wurde bereits 1996 eingestellt. Die letzte Version für Linux erschien im Oktober 2004. Seitdem haben sich einige BASIC-Entwicklungsumgebungen und -Frameworks entwickelt, die den Anforderungen von modernen Endgeräten und Betriebssystemen, besser gerecht werden. Als Envelop auf den Markt kam, gab es nur wenige BASIC-Entwicklungsumgebungen mit einem komfortablen WYSIWYG-Editor für die Gestaltung grafischer Benutzeroberflächen. Microsoft Visual Basic war damals der bekannteste Vertreter dieser Gruppe. Im Gegensatz zu den anderen BASIC-Entwicklungsumgebungen war Envelop stets kostenlos. Alternativen für ältere BetriebssystemeMicrosoft Visual BasicPhoenix Object Basic bildet die Entwicklungsumgebung Visual Basic 3 und 4 nahezu vollständig nach. Allerdings ist Visual Basic nicht für unter Linux nutzbar. Diese Lücke wird durch das Linux-Pendant Phoenix Object Basic abgedeckt. GambasSeit 1999 existiert mit der Entwicklungsumgebung Gambas eine exklusive Alternative für Varianten des Betriebssystems Linux. Über das Windows-Subsystem für Linux ist es allerdings auch möglich, Gambas unter dem Betriebssystem Windows auszuführen. Diese Programmiersprache wird immer noch gepflegt und aktiv weiterentwickelt. Die aktuelle Version 3.16.3 erschien am 15. September 2021.[47] REALbasicEine weitere kostenpflichtige Entwicklungsumgebung aus der damaligen Zeit stellt REALbasic dar. Diese Software wird bis heute unter dem Namen XOJO gepflegt und weiterentwickelt. Alternativen für moderne BetriebssystemeFür sehr alte Betriebssysteme (z. B. Windows 95) kommen die nachfolgenden Alternativen nicht in Frage, da diese nur unter relativ modernen Betriebssystemen lauffähig sind. Folgende Entwicklungsumgebungen erlauben die Entwicklung von plattformübergreifenden Apps für Windows, Linux und macOS, wobei die ersten beiden auch noch die mobilen Plattformen Android und iOS abdecken. Weblinks
Einzelnachweise
|
Portal di Ensiklopedia Dunia