Enterprise Generation Language
# Enterprise Generation Language

Enterprise Generation Language, oder EGL, ist eine Programmiersprache der 4. Generation, die ursprünglich in den 1980er Jahren entwickelt wurde. IBM schuf EGL, um prozedurale Programmierer zu unterstützen, insbesondere solche mit RPG- und COBOL-Erfahrung, damit diese die Konzepte und Anwendung der objektorientierten Programmierung leichter verstehen.
EGL ist vielleicht am bekanntesten als eine Funktion innerhalb des IBM WebSphere Studio Enterprise Developer, der Großrechner-orientierte Werkzeuge auf Basis der Eclipse-Entwicklungsumgebung bereitstellt.
Viele Unternehmen sehen sich sehr hohen Kosten ausgesetzt, wenn es um die Wartung ihrer Legacy-Systeme (COBOL, RPG, Natural etc.) geht. Auch die Kenntnis über das eigene System, das zum Teil schon über Jahrzehnte gewachsen ist, gerät durch den Verlust der Mitarbeiter (Rente), in Gefahr. Hier ist es möglich, die Legacy-Systeme in eine einfacher zu wartende EGL-basierte Umgebung zu migrieren, aus der dann in eine „moderne“ Sprache transformiert werden kann (Java, C++ etc.). Die Wartung geschieht ausschließlich auf EGL-Ebene, so dass nur ein geringfügiger Aufwand an Schulungsmaßnahmen getätigt werden muss.
Nach Herstellerangaben stehen die Kosten der Migration und der notwendigen Schulungen in sehr geringem Verhältnis zu den Wartungskosten der Systeme.
EGL-Anwendungen und -Dienste werden auf der EGL-Quellcodeebene geschrieben, getestet und von Fehlern bereinigt. Wenn sie dann zufriedenstellend funktional getestet sind, können sie in COBOL, Java oder JavaScript Code kompiliert werden, um den Einsatz von Business-Anwendungen zu unterstützen, die in jeder der folgenden Umgebungen laufen kann:
* Microsoft Windows, Linux, UNIX mit JVM, zum Beispiel im Umfeld eines Java EE Servletcontainers (IBM WebSphere Application Server, Apache Tomcat, GlassFish)
* IBM System z: CICS Transaction Server, IMS, z/OS Batch, UNIX System Services, WebSphere Application Server, z/VSE, Linux
* IBM System i: IBM i5/OS, IBM WebSphere Application Server
* Internet Explorer, Firefox, Safari – Webbrowser für Ajax Rich Web Anwendungen

## EGL

Im Dezember 2008 hat IBM eine neue Technologie mit dem Namen EGL Rich UI eingeführt, um das Erstellen von Rich Internet Anwendungen zu vereinfachen. Diese Technologie vereinfacht das Entwickeln damit, dass die Komplexität von Ajax, JavaScript, Rest und SOAP vor den Entwicklern verborgen bleibt, was ihnen ermöglicht, sich auf die für das Business nötigen Technologien zu konzentrieren und sich nicht von den darunter liegenden ablenken zu lassen. Seit der Einführung von EGL Rich UI wurde JSF als die bislang verwendete Oberflächentechnologie nicht weiter gepflegt und liegt noch immer in der mittlerweile veralteten Version JSF 1.2 vor. Eine weitere Integration von JSF und Facelets in EGL wird laut IBM nicht stattfinden, ebenso wurden alle RFEs (Request for Enhancement) zu diesem Thema zwischenzeitlich abgelehnt.

## Open Source

IBM hat im Juni 2010 bekannt gegeben, dass sie den EGL Code als Open Source freigeben werden. IBM öffnet die EGL Sprache, den Compiler, die Generatoren für Java und JavaScript, und auch die EGL Tools. IBM hofft durch die Öffnung als Open Source die Reichweite der Sprache zu vergrößern. EGL soll als Eclipse Projekt weiter entwickelt werden in Zusammenarbeit mit der Eclipse Foundation. Eclipse wurde als Heimat für das EGL Open Source Projekt ausgewählt, weil die EGL Tools bereits auf Eclipse aufgebaut sind und EGL mit anderen Eclipse Technologien interagiert, nämlich mit solchen wie BIRT (Business Intelligence and Reporting Tools), Web Tools und Data Tools.

## IBM Rational Business Developer

Rational Business Developer (RBD) ist eine integrierte Entwicklungsumgebung und gleichzeitig Referenzimplementierung für die Programmiersprache EGL, die „sich sowohl als Sprache als auch als Entwicklungsumgebung versteht“. Bis zur Version 6 wurde das Eclipse-Plugin als bestimmender Bestandteil der auf der Eclipse-Plattform aufbauenden EGL entwickelt und als Teil der Rational-Developer-Produktreihe von IBM vertrieben, unter anderem mit dem „Rational Application Developer for WebSphere Software“. Ab Version 7 wird das Produkt als eigenständiger „Rational Business Developer“ vermarktet.
Die Entwicklungsumgebung wurde von der IBM-Abteilung Rational Software entwickelt, die Eclipse-basierte Dienstprogramme zur Entwicklung von Cross-Platform-Anwendungen und Diensten, die die Programmiersprache EGL nutzen, zur Verfügung stellt.
Unternehmen nutzen EGL und den Rational Business Developer, um Geschäftsanwendungen von älteren Sprachen wie RPG oder COBOL in EGL-Projekte zu überführen, die anschließend beispielsweise in Java-Anwendungen übersetzt werden können.
Der Rational Business Developer ermöglicht die Entwicklung von browserbasierten Anwendungen, Business Services, Anwendungen mit grafischer Benutzeroberfläche, Batchanwendungen und Reports, die lesend und ändernd auf Daten zugreifen können, die in den verschiedenen relationalen Datenbanken und Dateisystemen abgelegt sind, die auf den unterstützten Zielplattformen zu finden sind.