elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 01:54  


Tema destacado: Personaliza-Escoge el diseño del foro que más te guste.

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General (Moderador: Littlehorse)
| | |-+  ¿Por qué es no recomendable el uso de "goto"?
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Por qué es no recomendable el uso de "goto"?  (Leído 2,871 veces)
Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.710


Nie Dam Sie


Ver Perfil WWW
Re: ¿Por qué es no recomendable el uso de "goto"?
« Respuesta #15 en: 6 Julio 2011, 04:27 »

Lo de programadores muy brillantes es relativo, por supuesto algunas personalidades conocidas lo son, algunos desconocidos también lo serán, eso no significa que todos lo sean. Pero igualmente eso no importa mucho, a lo largo de la vida en sistemas puedes encontrarte con muchas personas brillantes y con muchas eminencias en determinadas áreas, así y todo no se puede dar por sentado todo lo que digan y/o hagan por mas geniales que sean como profesionales.

Muchas personalidades conocidas que son brillantes en lo que hacen opinan que C++ es una basura mientras que otros opinan que C++ es una maravilla; ese es uno de los tantos debates interminables.

Una frase muy cierta del libro "Spring in Action" que leí hace un tiempo que ejemplifica un poco todo esto:

Citar
There are certain things that most people can agree upon: The fact that the sky
is blue, that Michael Jordan is the greatest player to touch a basketball, and
that Star Trek V should have never happened. And then there are those things that
stir up controversy, such as politics, religion, and the eternal “tastes great/less
filling” debates.

Como profesional tienes que analizar las visiones existentes y ver cual te convence mas y luego de eso verificar que tan cierta es esa visión que tanto te convence. De lo contrario terminarías usando un framework solo porque tal persona brillante lo usa, terminaras comprando un auto porque tal persona lo usa, y así puedo seguir con interminables ejemplos que lograrían que tomes muy malas decisiones en la vida así sea en lo profesional como en lo personal.

Saludos


En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
Leo Gutiérrez.
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 2.968


/^$/


Ver Perfil WWW
Re: ¿Por qué es no recomendable el uso de "goto"?
« Respuesta #16 en: 7 Julio 2011, 08:38 »

A lo que voy es que si hay evidencia de que el correcto uso de esa sentencia da resultados, no entiendo porque no usarla. El goto lo usé durante mucho tiempo y creanme que jamás tuve problemas de nada, como programador se está consciente de los saltos que se hacen.


En línea

Código
(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}
 

leorocko13@hotmail.com
https://github.com/leogtzr/
Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.710


Nie Dam Sie


Ver Perfil WWW
Re: ¿Por qué es no recomendable el uso de "goto"?
« Respuesta #17 en: 8 Julio 2011, 00:47 »

El programador puede ser, pero tus compañeros de trabajo? usualmente no trabajas solo, y no siempre vas a ser vos el que depure el código. Incluso luego de 6 meses, vos no vas a ser el mismo que codifico esos gotos, y ni los comentarios van a ayudarte lo suficiente.

Obviamente no vas a tener problemas con goto en proyectos chicos, pero en aplicaciones reales los tenes, por esa misma razón es una característica de lenguaje obsoleta. No porque a alguien se le ocurrió demonizarla, no por cuestiones religiosas si no por simples conceptos de diseño de software que ya están muy bien explicados.

Habría que analizar la evidencia porque en lo que a mi respecta que se utilice en X lugar para mi no significa nada y eso es lo único que se ha dicho hasta ahora. Que en un link Linus diga que Dijkstra no tenia idea de lo que hablaba y que goto en algunos casos sirve para mi tampoco significa nada.

Habra algunos casos en donde usar goto es valido? seguro! de ahí a que haya varios casos en donde sea la mejor opción hay un abismo puesto que porque alguien considere que para algún caso en particular, goto es la mejor opción, no lo hace verdad, solo lo hace una opinión.

De hecho, de "Linux Device Drivers, 2nd Edition" -se encuentra dentro de unos de los links que pusieron- claramente se puede leer esto:

Citar
Error recovery is sometimes best handled with the goto statement. We normally hate to use goto, but in our opinion this is one situation (well, the only situation) where it is useful. In the kernel, goto is often used as shown here to deal with errors.

The following sample code (using fictitious registration and unregistration functions) behaves correctly if initialization fails at any point.

 
Código
   int init_module(void)
    {
    int err;
 
     /* registration takes a pointer and a name */
     err = register_this(ptr1, "skull");
     if (err) goto fail_this;
     err = register_that(ptr2, "skull");
     if (err) goto fail_that;
     err = register_those(ptr3, "skull");
     if (err) goto fail_those;
 
     return 0; /* success */
 
     fail_those: unregister_that(ptr2, "skull");
     fail_that: unregister_this(ptr1, "skull");
     fail_this: return err; /* propagate the error */
    }

Los problemas que Dijkstra menciono respecto de usar goto siguen siendo validos, no seria ni el primero ni el ultimo en exponer posibles problemas que permanecen vigentes en el tiempo incluso luego de décadas. Se le suele llamar "estar adelantado a la época" y Dijkstra era claramente uno de esos afortunados.
 
Lo único que puedo decir es repetir lo que ya dije en un pm; si quieren usarlo porque para determinado caso les parece correcto, haganlo, como profesional y moderador es mi deber avisarles que en el 99% de sus actuales/futuros trabajos a sus referentes técnicos no va a gustarles.

Saludos!
En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
Meta


Desconectado Desconectado

Mensajes: 2.304



Ver Perfil WWW
Re: ¿Por qué es no recomendable el uso de "goto"?
« Respuesta #18 en: 18 Julio 2011, 01:46 »

En clases de programación, el profesor nos prohibió usar goto, excepto en ASM.
En línea

Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/
dandy_hack

Desconectado Desconectado

Mensajes: 57



Ver Perfil
Re: ¿Por qué es no recomendable el uso de "goto"?
« Respuesta #19 en: 7 Agosto 2011, 21:00 »

y si yo lo uso en batch es bueno usarlo o no es muy recomendable???
En línea
Leo Gutiérrez.
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 2.968


/^$/


Ver Perfil WWW
Re: ¿Por qué es no recomendable el uso de "goto"?
« Respuesta #20 en: 7 Agosto 2011, 21:04 »

y si yo lo uso en batch es bueno usarlo o no es muy recomendable???

No es que sea bueno o malo, sino que es la única manera de ir a una etiqueta, claro que también puedes ir con el comando "call", pero dicho comando incluye otras cosas...
En línea

Código
(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}
 

leorocko13@hotmail.com
https://github.com/leogtzr/
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines