Samstag, 24. Juni 2017

yabDevelopment Studio



 
Ich möchte hier mein neuestes Projekt vorstellen, eine neue IDE für die yab Script Sprache.
Das Ziel bei diesem Projekt ist eine Entwicklungsumgebung zu schaffen, die es Neueinsteigern ebenso wie erfahrenen Entwicklern  ermöglicht schnell und effektiv in yab zu arbeiten. Neben den gewohnten Funktionsumfang der gängigen IDEs sind schon  viele Verbesserungen und Neuerungen eingeflossen.

Jede yab Datei besteht im Wesentlichen aus vier Bereichen. Dem Programmstart, eine Schleife (Loop), die Bedienungsübergabe (Cases) und den Auslagerungsbereichen (Subroutinen). Auf Grund dieser Tatsache habe ich mich immer gefragt wieso man das nutzen von Bibliotheken so unnötig schwer gemacht hat und wieso sich diese Funktion auf die Subroutinen beschränkt.

Diese IDE besteht aus vier Editoren, jeweils einen Editor für jeden Programmbereich. Einen für den  Main-Bereich (Programmstart, Programmfenster, erste Abfragen), einen für den Loop-Bereich (Laufende Schleife um das Programm solange geöffnet zu lassen, bis der Netzer dieses beendet), einen für den Case-Bereich (Verarbeitung der Bedienung durch den Nutzer) und einen für die Subroutinen (Auslagerungsbereich für einen permanenten  zugriff im Programm). 

Dies ermöglicht eine größere Übersicht, einen schnelleres finden des zu bearbeitenden Bereiches und das Vergleichen und Übertragen von benötigten Informationen und Abfragen.

Neue Projekte zu erstellen wird erleichtert durch den Zugriff auf Templates, Examples und vorhanden Projektdateien. Die verschiedenen yab Komponenten (Widgets) können über mehrere Wege in den Editor übertragen werden. Die yab Commands sind über eine Auflistung einsehbar (Beschreibung) und über einen Doppelklick in den Editor übertragbar. Außerdem können die Widgets auch über das Programmmenü ausgewählt und damit in den Editor übertragen werden. Um von vorne herein mehr Angaben für die Widgets  vor zu nehmen, können diese über eine Menü-Leiste in einen extra Fenster geöffnet werden um dort gleich alle nötigen Angaben vor zu nehmen (Beispiel Window Open: Größe, Rahmen, Funktionalität).  Die enthaltene Farbauswahl ist mit diversen Farben ausgestattet (auch nach Namen). Bestimmte Zeichen können in yab nicht einfach so angezeigt werden und müssen in einen Hex-Kode angegeben werden. Für diese gibt es eine Auflistung in der du diese mit einem Doppelklick in den Editor übertragen kannst. Anders als in den gängigen IDEs kann man in yabDS keine Einzeldateien mehr öffnen, alles ist als ein Projekt anzulegen.

Ein Echtzeit GUI-Builder ist ebenfalls in Arbeit, aber noch in den Kinderschuhen.

Funktionsbeschreibung

-          yabDS öffnen
-          Neues Projekt anlegen im Menü unter Projekte (Projects)
-          Neue Main-Datei anlegen oder importieren
-          Neue Loop-Datei anlegen oder importieren
-          Die Main-Datei bearbeiten und die Loop anpassen
-          Benötigte Dateien anlegen, also Cases und Subroutinen erstellen oder importieren und editieren
-          Projekt testen (Main Menu Test) oder an yab Binden (Main Menu Build)
-          Um Loops, Cases und Subroutinen nutzen zu können, müssen diese über das Menü gerufen werden (Calling Loop here…, Calling Case here…, Calling Souroutine here…).

Ich habe eine HPKG erstellt mit dem derzeitigen Stand der Arbeiten. Die bei der Funktionsbeschreibung angegeben Arbeiten können bereits durchgeführt werden. Auch die yab Commands können wie zuvor beschrieben genutzt werden. Importieren von Example und Projekt Dateien sowie das hinzufügen von Templates ist möglich. Die Fehlerausgabe und das Springen in die jeweilige Datei und Zeile habe ich eingebaut aber bisher nur in den Examples getestet.
Ihr könnt die HPKG von unseren Repository Server beziehen: http://software.besly.de

Wer Interesse hat mich bei meinem Projekt zu unterstützen, kann sich gerne melden. Ich würde mich dabei vor allen darüber freuen, Infos über die Funktionalität zu erhalten. Auch Ideen sind willkommen. 
Außerdem würde ich mich über weitere Examples und Templates freuen. Ich möchte aber darum beten, dabei keine Bibliotheken zu verwenden, diese können zwar auch weiterhin im Editor verwendet werden (Main Bereich), aber diese sind eigentlich  in dieser IDE unnötig.

Ich hoffe die Idee und bisherige Umsetzung trifft auf Sympathie.