Por qué pasarme a RPG de formato libre

RPG de formato libre

Todavía existe mucho código escrito en RPG tradicional, esto es, el RPG de toda la vida, el RPG de formato fijo. De hecho, esto no deja de ser totalmente normal, pero creo que la pregunta es ¿por qué todavía se sigue escribiendo código en formato fijo? Te voy a enumerar 5 razones que justifican porqué debemos pasarnos a codificar en Free format RPG

El RPG de formato libre se presentó alrededor del 2001. No era una implementación completa ni parecía muy estructurada, de hecho, fue recién en 2012 que aparecieron las declaración en formato libre y no fue hasta 2015 que pudimos decir «por fin la libertad total ha llegado» y podíamos especificar cuántas columnas de ancho debía tener una determinada línea RPG.

Aún así, parece que no hay mucho entusiasmo en la comunidad por pasarse al formato libre. Y pese a la falta aparente de interés creo que hay sobradas razones para comenzar a codificar en Free format RPG.

Vamos a verlas.

La indentación hace al código más legible.

Sin tener una gramática estructurada, el hecho de poder escribir la lógica en formato libre nos permite indentar las líneas para hacer más visible la lógica escondida en el código.

Esto hace que los bloques con una lógica determinada se puedan ver aislados a simple vista, por ejemplo, bloques IF anidados, bloques SELECT/WHEN, etc.

A esta altura, de verdad, ¿es necesario explicar porqué es importante que el código sea más legible? Vale, lo hago: si lo leo fácil, aumentan las posibilidades de entenderlo fácilmente y, si lo entiendo, puedo hacer cambios con mayor rapidez, identificar los errores o evitar que se produzcan.

Obviamente la indentación no es obligatoria y puedo hacerla mal y, lo acepto, una indentación mal colocada produce errores en sí misma.

Pero solucionar problemas de indentación puede hacerse de forma automática, por ejemplo RDi ya provee  la característica para formatear y reformatear con espacios en blanco  pre cargados en las preferencias

El espacio puede usarse con mayor eficiencia

Es común que (en funciones incorporadas, por ejemplo) la escritura queda bastante larga ocupando múltiples líneas.

Esto produce un efecto de desbalance, quiero decir, un lado izquierdo muy vacío en comparación con un lado derecho con muchas declaraciones de varios renglones.

En formato libre, nuestra vista puede abarcar más lógica de un solo vistazo.

Este tipo de afirmaciones es más cierta cuando se definen variables con un nombre que no cabe en la columna D de 14 caracteres  (por supuesto que se pueden usar los 3 puntos, pero es parte del efecto de desperdicio de espacio y desbalance al que hacía referencia)

Además, al utilizar declaraciones de formato libre no nos sentiremos limitados y tenderemos a crear nombres más largos y significativos para procedimientos y variables. 

Quiero decir, pensaremos menos en cómo evitar los 3 puntos y no utilizaremos nombres criptográficos que nada nos decían del contenido.

Ampliación del lenguaje

Dado que el límite propio de un lenguaje orientado a columnas como el RPG ha desaparecido, ahora es posible que nuevas funciones del sistema estén disponibles sin la restricción.

Por ejemplo, aparecen 2 formas de reemplazar KLIST para especificar claves en CHAIN o STELL (solo en formato libre).

También hay una función incorporada %KDS que es mucho más flexible que KLIST.

También aparece el uso de la función %Fields para especificar un subset de campos para una operación UPDATE que, por supuesto, es más simple que utilizar O con el EXCEPT.

Declaraciones F más fáciles

Todos hemos usado el atajo de copiar una especificación F de otro lugar para evitar tener que averiguar qué columnas debíamos completar o con qué letras. Por supuesto que si no se hacía con cuidado, acarreaba depuraciones y verificaciones de no haber copiado una característica innecesaria o viceversa.

Actualmente se nos provee de herramientas que nos permiten definir especificaciones fácilmente.

Además, dado que las declaraciones de archivos y datos ahora pueden mezclarse (es decir, no es necesario definir primero todos los archivos), también se hace más fácil identificar las declaraciones de datos que se relacionan con las declaraciones de archivos porque pueden aparecer juntas en el código: la DS que se utiliza para READ o CHAIN, por ejemplo, o la definición de la INFDS para el archivo.

Atraer sangre nueva a RPG

El formato libre aparece como una puesta al día del RPG. Lo pone en la misma línea que otros lenguajes de programación más modernos que, no hace falta decirlo, son todos de formato libre.

Y esto no deja de ser un punto a favor para atraer nuevos programadores a la comunidad RPG.

Una vez que los nuevos programadores conocen al RPG lo reconocen como un lenguaje potente y flexible y muchos lo llegan a preferir frente a otras opciones de lenguaje más populares para las aplicaciones empresariales. 

Pero vamos por pasos. Uno a la vez. Primero debemos atraerlos para que lo aprendan. Además, se comprueba una y otra vez que, una vez que se convencen de las ventajas de un lenguaje como RPG, ya no tienen ningún problema en, incluso, trabajar con el antiguo código de formato fijo. 

Pero damos por descartado que si la primera aproximación hubiera sido al RPG de toda la vida, la mayoría nunca se hubiera tomado el trabajo de aprenderlo.

Si como desarrolladores en RPG pensamos que la sangre nueva es contraproducente y amenaza mi coto de caza, también se puede pensar que la existencia de nuevos programadores mermará la fiebre de migrar hacia otros entornos por miedo a la falta, justamente, de nuevos desarrolladores. 

En otras palabras, no atraer a sangre fresca al RPG es, probablemente, una mayor amenaza para tu trabajo.

Claro que siempre hay objeciones

Obviamente que no creo que esta breve lista de razones para pasarse a la codificación en formato libre sea exhaustiva ni suficiente.

Y siempre aparecen objeciones de peso que actúan nivelando la balanza.

SEU deja de funcionar, suele ser la más común. Es cierto, pero ¿Cúal es el motivo por el que todavía no está trabajando con RDi? Las ventajas de hacerlo fueron más que enumeradas en todos estos años. Además SEU, simplemente, acabará muriendo más tarde o más temprano.

Frente a la objeción de que hay mucho código por convertir… está claro que no propongo que conviertas el código existente. Ni siquiera propongo que inviertas tiempo en evaluar costos de dicha conversión. 

Aún con herramientas como RDi, donde tienes la opción de convertir la lógica a formato libre sin tocar especificaciones H, F, D o P, no recomiendo que inviertas esfuerzos en esa tarea.

También puedes probar otras herramientas como el RPG Toolbox de Linoma Software o el Transformer RPG de Arcad Software, dentro del espectro de herramientas o plugins de pago.

Para finalizar, no puedo dejar de nombrar el conjunto de herramientas de código abierto que requieren un trabajo manual extra, pero que, siendo gratis, siempre son una opción a considerar.

Y un último mantra: prueba el «Free form RPG», seguro que no te arrepentirás.

0 comentarios

Dejar un comentario

¿Quieres unirte a la conversación?
Siéntete libre de contribuir!

Deja una respuesta

Tu dirección de correo electrónico no será publicada.