Progress ABL es un lenguaje de programación vinculado al entorno
Progress OpenEdge, su base de datos y las utilidades que lo rodean.
Es similar al inglés fuertemente tipado, enlazado en tiempo de ejecución.
Aunque inicialmente se diseñó como un lenguaje procedimental, a partir de la versión 10.1 se mejoró con elementos de gramática orientada a objetos, que se pueden mezclar con el estilo procedimental original.
A diferencia de otros lenguajes, Advanced Business Language (ABL) permite a los desarrolladores administrar datos relacionales de la manera que mejor se adapte a sus necesidades comerciales, lo que aumenta significativamente la productividad.
Un desarrollador de OpenEdge puede crear API para .NET, JavaScript, clientes Java, mensajería Java e incluso asignar esquemas de bases de datos a formatos XML, al mismo tiempo que aprovecha la eficiencia de ABL.
ABL también ofrece herramientas esenciales para el desarrollo de aplicaciones, lo que le permite tener fácil acceso a todos los recursos de su aplicación.
¿Por qué %$@# debería importarme este lenguaje?
Porque en el mundo de la informática siempre hay que saber un poco de todo. Un día eres programador Java, mañana tendrás que usar PHP, C, etc. Pasar del Backend al Frontend y hasta a BD. Siempre hay que estar abiertos a todo.
Imaginemos un escenario donde una empresa usa Progress y decide contratar a un nuevo desarrollador para trasladar los códigos de Progress a Java, o viceversa. El desarrollador con experiencia en Progress tendrá menos dificultad de trasladar ese código a Java pues conoce lo que hacen y no hacen esos programas.
Crear un programa en Progress es relativamente sencillo si tienes experiencia en lenguajes como Perl o Python. El programa para calcular el factorial de un número podría ser algo como esto:
factorial.p
function factorial returns integer (num as integer):
if num = 0 then
return 1.
else
return num * factorial(num - 1).
end.
DISPLAY "Factorial de 5: " factorial(5).
Un programa en Progress tiene la extensión *.p. Los tipos básicos son: integer, decimal, character y logical (boolean). Las estructuras de control son similares a las de Perl y/o Python. Además de que es de tipado estático. Tendrás que declarar el tipo y valor antes de usar una variable.
/* Puedes usar def o define, var o variable */
define var numero as integer no-undo. /* int */
def variable valor as dec no-undo. /* decimal */
def var verdadero as logical no-undo. /* booleano */
def cadena valor as char no-undo. /* character*/
Podemos hacer cualquier cosa como en otros lenguajes.
longitud.p
def var cadena as char no-undo.
def var longitud as int no-undo.
cadena = TRIM(" ABC "). /* quitar espacios */
longitud = LENGTH(cadena). /* Contar longitud de la cadena */
display "Cadena: " cadena " , Longitud: " longitud.
Aquí podemos observar que posee funciones propias para la manipulación de cadenas.
¿Y qué con las BD?
Crear programas para la manipulación o consulta de datos es tan fácil como esto:
for each empleados:
display empleados.idEmp empleados.nomEmp empleados.idDepto
end.
Mientras que en código Java como mínimo tendrías que crear un proyecto. Hacer la conexión y la consulta SQL. Sin olvidar lo engorroso que es encontrar un driver para la BD.
Para probar Progress Online puedes entrar aquí:
https://abldojo.services.progress.com/
Más sobre este lenguaje en próximos posts.
Enlaces:
https://www.progresstalk.com/
https://www.progress.com/