Se ve que no llegaste a programar en el BASIC de aquella época :P
Respecto al goto, son gotos los break, continue y similares. Incluso las excepciones se pueden considerar así. Lo que ocurre es que esa prohibición está pasada de moda y ya nadie habla de ella.
Lo que ocurre es que esa prohibición está ASUMIDA y ya nadie utiliza un GOTO a menos que sea para implementar un break, un continue o una excepción (usos válidos).
Pero el GOTO hacía mas cosas. Con GOTO se puede saltar a una línea arbitraria en medio de un contexto (función, subrutina) distinto del actual, saltándose toda la inicialización de variables. Ni el break ni el continue permiten usos tan perversos. Son unidireccionales: sólo permiten salir de un contexto, nunca entrar. Ni siquiera las continuations son tan peligrosas como un GOTO.
Y respecto a los lenguajes... llega un momento en que saltas por encima de ellos y empiezas a pensar directamente en paradigmas (funcional, lógico, imperativo, objetos, restricciones...) y cada problema lo resuelves usando la técnica más adecuada. Si tu lenguaje es flexible como para soportar varios paradigmas, incorporas esa técnica. Si no, cambias de lenguaje para resolver ese problema determinado.
--
¿Me he puesto demasiado trascendente? Me lo temía 8-)
Parece que crees que estoy hablando de Eiffel. No. Todo lo contrario, por eso el mensaje se llama "criterios"
Bueno, pues lo que yo he hecho es aplicar algunos de tus criterios a Eiffel, y como lenguaje parece que los supera bastante bien. Otra cosa es, como ya dije, las herramientas, documentación, soporte...
En cuanto al criterio de hacer un programa grande, yo en realidad nunca he hecho ninguno así con Eiffel: en las primeras pruebas que hice hace años el entorno de desarrollo me pareció malísimo y las librerías extrañas. Luego he vuelto a tener tentaciones, pero no he visto el momento.
Lo que sí he hecho es aplicar las cualidades buenas del Eiffel a otros proyectos reales, en C++, Java y Python, con resultados bastante buenos. Y que podrían ser mejores aún si se aplican más todavía.
Lo que ocurre es que esa prohibición está pasada de moda y ya nadie habla de ella.
Claro que nadie habla de ella, porque está perfectamente aceptada por todo el mundo: los únicos usos válidos del goto son estos de los que hablamos; pues bien, se crean construcciones sintácticas nuevas para esos casos, y se suprime el goto genérico. Todos de acuerdo.
Ejem ejem
(Puntos:2)( http://barrapunto.com/ )
Respecto al goto, son gotos los break, continue y similares. Incluso las excepciones se pueden considerar así. Lo que ocurre es que esa prohibición está pasada de moda y ya nadie habla de ella.
Lo que ocurre es que esa prohibición está ASUMIDA y ya nadie utiliza un GOTO a menos que sea para implementar un break, un continue o una excepción (usos válidos).
Pero el GOTO hacía mas cosas. Con GOTO se puede saltar a una línea arbitraria en medio de un contexto (función, subrutina) distinto del actual, saltándose toda la inicialización de variables. Ni el break ni el continue permiten usos tan perversos. Son unidireccionales: sólo permiten salir de un contexto, nunca entrar. Ni siquiera las continuations son tan peligrosas como un GOTO.
Y respecto a los lenguajes... llega un momento en que saltas por encima de ellos y empiezas a pensar directamente en paradigmas (funcional, lógico, imperativo, objetos, restricciones...) y cada problema lo resuelves usando la técnica más adecuada. Si tu lenguaje es flexible como para soportar varios paradigmas, incorporas esa técnica. Si no, cambias de lenguaje para resolver ese problema determinado.
¿Me he puesto demasiado trascendente? Me lo temía 8-)
Re:Ejem
(Puntos:1)Bueno, pues lo que yo he hecho es aplicar algunos de tus criterios a Eiffel, y como lenguaje parece que los supera bastante bien. Otra cosa es, como ya dije, las herramientas, documentación, soporte...
En cuanto al criterio de hacer un programa grande, yo en realidad nunca he hecho ninguno así con Eiffel: en las primeras pruebas que hice hace años el entorno de desarrollo me pareció malísimo y las librerías extrañas. Luego he vuelto a tener tentaciones, pero no he visto el momento.
Lo que sí he hecho es aplicar las cualidades buenas del Eiffel a otros proyectos reales, en C++, Java y Python, con resultados bastante buenos. Y que podrían ser mejores aún si se aplican más todavía.
Lo que ocurre es que esa prohibición está pasada de moda y ya nadie habla de ella.
Claro que nadie habla de ella, porque está perfectamente aceptada por todo el mundo: los únicos usos válidos del goto son estos de los que hablamos; pues bien, se crean construcciones sintácticas nuevas para esos casos, y se suprime el goto genérico. Todos de acuerdo.