por
pobrecito hablador
el Viernes, 28 Febrero de 2014, 07:23h
(#1356078)
"Pues me habéis dejado de piedra, creía que ningún profesional usaba esa chapuza desde hacía 20 o 30 años"
Pues sin ir más lejos el kernel de Linux está lleno de gotos.... es más existe un consenso bastante extendido de los casos en que el "goto" es una solución aceptable:
por
pobrecito hablador
el Viernes, 28 Febrero de 2014, 07:38h
(#1356080)
NO me jodas ¡ ¿en serio? pues uno de los ejemplos que ponen en el enlace es fino... No hay por dónde cogerlo. Si éste es el paradigma de los grandes gurús de la programación ahora empiezo a entender muchas cosas, demasiadas.
This works and isn't too bad but using 'goto' is cleaner and clearer:
int x = 4, y = 0; int z;
retry: try {
z = x / y; } catch (DivideByZeroException) {
y = 2;
goto retry; } Console.WriteLine(z);
Es que no es lo mismo un kernel que una aplicación de usuario.
Un kernel se escribe en lenguaje de bajo nivel, y ataca directamente al hardware. La prioridad es el rendimiento y la eficiencia, y por lo tanto un goto es razonable si nos va a ahorrar unos cuantos ciclos.
En una aplicación de usuario, en cambio, el ahorro en cuanto a rendimiento de usar un goto va a ser totalmente despreciable, y la pérdida en legibilidad y mantenibilidad hacen que sea una práctica totalmente desaconsejable, si no directamente prohibida.
A cada cosa lo suyo. En el kernel se pueden usar gotos en casos concretos, pero en una aplicación es totalmente inaceptable.
por
pobrecito hablador
el Viernes, 28 Febrero de 2014, 10:44h
(#1356110)
¿Enlazas a una página con el título de "Usos aceptables del código espagueti"?
¡Por Edsger W. Dijkstra!. ¡No lo puedo creer!. Sabía que las cosas estaban muy mal, pero no tanto. (A menos que sea un chiste o un troll). Pero incluso así, eso no se hace en presencia de los niños.
Re:¿Usan 'gotos' para los programas de apple?
(Puntos:0)Pues sin ir más lejos el kernel de Linux está lleno de gotos.... es más existe un consenso bastante extendido de los casos en que el "goto" es una solución aceptable:
http://www.c-sharpcorner.com/UploadFile/b942f9/ac
Re:¿Usan 'gotos' para los programas de apple?
(Puntos:0)This works and isn't too bad but using 'goto' is cleaner and clearer:
int x = 4, y = 0;
int z;
retry:
try
{
z = x / y;
}
catch (DivideByZeroException)
{
y = 2;
goto retry;
}
Console.WriteLine(z);
Re:¿Usan 'gotos' para los programas de apple?
(Puntos:2)Un kernel se escribe en lenguaje de bajo nivel, y ataca directamente al hardware. La prioridad es el rendimiento y la eficiencia, y por lo tanto un goto es razonable si nos va a ahorrar unos cuantos ciclos.
En una aplicación de usuario, en cambio, el ahorro en cuanto a rendimiento de usar un goto va a ser totalmente despreciable, y la pérdida en legibilidad y mantenibilidad hacen que sea una práctica totalmente desaconsejable, si no directamente prohibida.
A cada cosa lo suyo. En el kernel se pueden usar gotos en casos concretos, pero en una aplicación es totalmente inaceptable.
Re:¿Usan 'gotos' para los programas de apple?
(Puntos:0)¡Por Edsger W. Dijkstra!. ¡No lo puedo creer!. Sabía que las cosas estaban muy mal, pero no tanto. (A menos que sea un chiste o un troll). Pero incluso así, eso no se hace en presencia de los niños.