Sugerencias de mejoras - Sintáxis GeneXus
GeneXus no es un lenguaje de programación en sentido estricto, sino un conjunto de lenguajes diferentes.
Hay una parte declarativa, otra procedimental (*), otro para diseño de formularios y otras mas como propiedades que afectan la forma en que se comporta el modelo.
Gastón escribio hace unos dias que estaban viendo algunos cambios a la sintaxis de GeneXus y pedia algunas sugerencias.
Gastón escribio hace unos dias que estaban viendo algunos cambios a la sintaxis de GeneXus y pedia algunas sugerencias.
La que me gustaria cambiar mas es la parte de escribir la parte de procedimientos. Algunas no son solo de sintaxis, sino que agregan funcionalidades y algunas no son triviales.
betweenEn los lugares donde se pueden poner condiciones estaria bueno poder escribir
betweenEn los lugares donde se pueden poner condiciones estaria bueno poder escribir
Fecha between &FechaInicial and &FechaFinal
Esto para mi dejaria el codigo mas compacto, mas legible y ademas todos los manejadores de base de datos soportados por GeneXus, tienen dicho operador.
El tener una sintáxis para el manejo de rangos, puede ayudar al manejo de rangos de fechas y vigencias, que es algo que debería encararse en el futuro cercano para agregar manejo temporal a las aplicaciones genexus.
distinct Att1, Att2
Hoy si bien el for each permite escribir el distinct, no hay forma de especificar la lista de campos por los que se quiere definir el distinct y como agrega los campos que estan en la condicion, muchas veces no sirve para lo que se esta queriendo resolver.
for each
distinct Att1, Att2
endfor
try/catch/finally
Ejecutar el bloque del try, capturando errores y excepciones en el bloque del catch y usando el bloque de finally para liberar los recursos que pudieran haber quedados bloqueados.
try
{ bloque 1}
catch
{ bloque 2}
finally
{ bloque 3}
assert
Tener metodos assert de forma de facilitar la programacion de casos de prueba con Genexus.
do rutina(parametros)
Poder tener subrutinas con parametros.
MOVE CORRESPONDING.
Poder copiar el contenido de un SDT a otro, aunque no tengan la misma estructura. Se copian los campos que tienen los mismos nombres y tipos. Hacer algo similar para poder salvar el contenido de un SDT registros de una base de datos.
Se que la parte de procedimientos no es la que tiene la prioridad ahora, pero creo que se podrian agregar algunas mejoras.
Yo he publicado también algunas sugerencias de mejoras para la sintaxis de GeneXus...
ResponderBorrarLa lista se puede ver acá.
Tengo alguna sugerencia más, que ya iré escribiendo en el blog...
Están muy buenas las sugerencias de los 2, respecto a los SDT me gustó una sugerencia que vi hace un tiempo largo en el foro, era sobre poder tratar al SDT como una tabla y poder hacer cosas del estilo:
ResponderBorrarFor &item in &sdt
Order &item.val1
Where &item.val2 = 1
// Codigo
When None
// Más código
EndFor
yo me conformo con que saquen el "punto y coma" de las reglas ...
ResponderBorrarcada vez que me da el error me retrotrae a la facultad y mis primeras lineas de codigo en C