Sintactic sugar.
El azúcar sintáctico es una facilidad que nos otorgan los diseñadores de lenguajes. No es ni más ni menos que algo aceptado por la comunidad de desarrolladores porque nos supone una «ventaja» no escribir tanto.
El elemento más destacado del azúcar sintáctico es : i++ , archiconocido en c, C++, java, etc. Esto no es nada mas que un simple: i=i+1; o el i– que equivale a i=i-1. Pero ¿que es mas atractivo para escribir? La respuesta es evidente: i++. En estos casos se agradece esta «pseudo macro» pero … ¿detectamos todas las acciones del azucar sintáctico? .
Desde bien pequeño, inicié mis andanzas con rudos y poco amigables entornos de programación, en estos entornos / lenguajes existía la sentencia GOTO. Esta sentencia era simplemente, mordaz. Con esta sentencia podiamos desplazarnos a cualquier instruccion del código, rompiendo toda lógica de programacion. Por ejemplo, si estamos dentro de un if, ¿tiene sentido, de repente, en mitad del cuerpo del IF, saltar «fuera» del mismo -gracias a nuestro amigo GOTO- para ejecutar algo que no se haya dentro del IF? La respuesta es NO, no porque estamos desguazando entonces la semántica con la que se ha construido esta sentencia de control. La idea del IF es que si cumples la condicion entonces ejecutes todas las instrucciones del cuerpo del IF, ni una más ni una menos y mucho menos instrucciones fuera del cuerpo del IF.
El goto comenzó a mirarse mal, a ser mal amigo. En clase, cuando comencé la Universidad (en la UAL) recomendaban no usarlo. JODER! ¿y ahora? mi goto nooooooo, no me pueden quitar el goto. No sin darme metadonda. De repente el GOTO ha desaparecido. Ya no se usa. Muerte al GOTO, lema enarbolado por todos los profes guays de lenguajes. (dios mio han matado a keny).
Pero igual que Freddy Krueger en ELM STREE, el goto está ahi, no se ha ido, nos observa. Nadie ha prescindido de él, ¿es que estamos locos?¿cómo poder prescindir de una cosa tan util, joder?. Analicemos el bucle FOR.
for( i=0; i<10;i++){
cuerpo del for
}
Realmente el for es una construccion fantasma, es un sintactic sugar en toda regla. Un for no es ni mas ni menos que :
int i=0;
if (i<10){
cuerpo del for
i=i+1;
GOTO if
}
Y ahí se haya, ahí se encuentra, oculto pero observandonos. El GOTO es útil, pero peligroso. Por eso se hace uso del sintactic sugar para «restringir su uso y hacerlo responsable». ¿Nos han engañado? Maldito sintactic sugar, o bendito sintactic sugar, que no ha excomulgado a mi viejo amigo GOTO.
Nota: GOTO para los que estudiais MIPS es la famosa : J etiqueta.
Saludos.