# EGL (lenguaje de programación)

EGL (Enterprise Generation Language), desarrollado originalmente por IBM y ahora disponible como EDT (EGL Development Tools). El proyecto abierto bajo la Licencia Pública Eclipse (EPL) es una tecnología de programación diseñada para enfrentar los desafíos del desarrollo de aplicaciones modernas y multiplataforma al proporcionar un lenguaje y un modelo de programación comunes en todos los idiomas, marcos y plataformas de tiempo de ejecución. El lenguaje toma conceptos familiares para cualquiera que use lenguajes de tipo estático como Java, COBOL, C, etc. Sin embargo, toma el concepto de estereotipo de Lenguaje de Modelado Unificado (UML) que no se encuentra normalmente en los lenguajes de programación estáticos.
En pocas palabras, EGL es un lenguaje de desarrollo de aplicaciones universal de nivel superior.
EGL es similar en sintaxis a otros lenguajes comunes, por lo que los desarrolladores de aplicaciones pueden aprenderlo con antecedentes de programación similares. Las abstracciones de desarrollo de aplicaciones de EGL protegen a los programadores de las interfaces técnicas de los sistemas y el middleware, lo que les permite centrarse en desarrollar la funcionalidad empresarial. compilado en código COBOL, Java o Javascript para admitir la implementación de aplicaciones empresariales que pueden ejecutarse en cualquiera de los siguientes entornos:
* Plataformas con una máquina virtual Java, como Microsoft Windows, Linux, y UNIX, por ejemplo, en el contexto de un contenedor de servlets Java EE (IBM WebSphere Servidor de Aplicación, apache Tomcat, GlassFish)
* IBM System z: CICS Transacción Server, IMS, z/OS Batch, UNIX System server, WebSphere Application Server, z/VSE, Linux
* IBM System i: IBM i5/OS, IBM WebSphere Application Server, apache Tomcat,Integrated Web Application Server for i
* Navegador web compatibles con Javascript, como Internet Explorer, Firefox, y Safari, para aplicaciones web ricas en Ajax

## Ejemplos de código
### Programa

Una parte del programa EGL es una parte lógica generable con un punto de entrada. Cada parte del programa contiene una función main, que representa la lógica que se ejecuta en el inicio del programa. Un programa puede incluir otras funciones y puede acceder a funciones que están fuera del programa. La función main puede invocar esas otras funciones. Las funciones del programa están compuestas por un conjunto de sentencias, variables y constantes de EGL.

### Grabar

Una parte de registro EGL define un conjunto de elementos de datos. En este ejemplo, un registro con el nombre CustomerRecord se define con 6 campos.
EGL tiene un tipo de registro especializado llamado SQLRecord que se utiliza para intercambiar datos con una base de datos relacional.
* En este ejemplo, el registro Empleado está vinculado a una tabla (o vista) denominada Empleado.

### Servicio

Una parte del Servicio EGL contiene funciones públicas destinadas a ser accedidas desde otras aplicaciones o sistemas. En este ejemplo, se define un servicio con dos funciones.
* En EGL, el código está organizado en paquetes (como Java (lenguaje de programación))
* La primera función, getEmployees, devuelve una matriz de registros completados a partir de los registros en una base de datos.
* La segunda función, addEmployee agrega un nuevo registro a la base de datos y devuelve un verdadero o falso dependiendo de si el registro se agregó correctamente.

### RUIHandler

El componente principal de una aplicación de IU enriquecida es una parte del controlador de IU enriquecida. Estas partes se generan en JavaScript.

## Web 2.0 con EGL

En diciembre de 2008, IBM introdujo una nueva tecnología, EGL Rich UI, para simplificar la creaciónAplicaciones de Internet Enriquecidas al estilo de la Web 2.0 Esta tecnología simplifica el desarrollo al ocultar al desarrollador las complejidades de Ajax, Javascript, Transferencia de Estado Representacional, y SOAP , lo que les permite centrarse en los requisitos del negocio y no en las tecnologías subdyacentes.

## Productos comerciales

Las herramientas de programación de EGL están disponibles como un producto comercial basado en Eclipse, el Rational Business Developer y también en la edición EGL de Rational Developer for System z.
EGL es un idioma de destino para la modernización de aplicaciones heredadas debido a la afinidad de la semántica del lenguaje con los lenguajes de procedimiento y el Lenguaje de programación de cuarta generación:
* Un conjunto de herramientas de conversión disponibles disponibles dentro del producto de Desarrollador Empresarial Racional proporciona la conversión automatizada de lenguajes de IBM e Informix de Lenguaje de programación de cuarta generación más antiguo y estabilizado.
* un conjunto de ofertas de servicios de IBM y productos complementarios (Rational Migration Extension for Natural, Rational Migration Extension para System i, Rational Migration Extension para CA-products) ofrece la capacidad de convertir de Software AG Natural, IBM RPG, CA Fresco:Gen y CA Ideal/Datacom a EGL
Las herramientas para buscar grandes bases de código EGL, comparar los archivos individuales de EGL para detectar cambios y detectar códigos duplicados están disponibles en Semantic Designs