Hace 3 años | Por --577852-- a xatakaciencia.com
Publicado hace 3 años por --577852-- a xatakaciencia.com

La lectura de código activa una red cerebral de propósito general, pero no centros de procesamiento del lenguaje, lo que pone en evidencia que el lenguaje de programación no se asimila como si fuera un lenguaje corriente que usamos para comunicarnos. Así pues, aunque el código informático tiene las características de un lenguaje, al leerlo activa una red distribuida llamada red de demanda múltiple, que también se usa para tareas cognitivas complejas como resolver problemas matemáticos o crucigramas.

Comentarios

D

#c-2" class="content-link" style="color: rgb(227, 86, 20)" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment/3436803/order/2">#2 Hace poco encontré yo un GoTo SalirAhora: en código de C#

skaworld

#3 uhhhh oldschool

lol

D

#5 Demasiao old

D

#3 Cuidado: el goto puede ser aceptable en casos MUY concretos. Un caso típico es cuando quieres salir de un bucle anidado: en lugar de hacer un break; en el interno, otro break; en el siguiente, etc, es lícito hacer un goto justo al final de todos los for (de hecho, break; rompe las reglas de la programación estructurada y puede verse como un goto disfrazado). Otro caso es cuando, para salir de una función, tienes que hacer siempre una limpieza concreta y sólo entonces retornar: en ese caso es lícito poner el código de limpieza al final, y saltar con un goto a ella desde cualquier parte de la función.

Pero no es que lo diga yo, sino que es lo que opina Linus Torvalds, y por eso se utiliza de ciertas maneras en el núcleo de Linux. https://koblents.com/Ches/Links/Month-Mar-2013/20-Using-Goto-in-Linux-Kernel-Code/

D

#8 Lo que tú y Torvalds digáis, sinceramente, no me convence.

D

#9 No es "porque lo diga Torvalds", sino porque el código del núcleo lo desarrollan cientos de programadores MUY buenos, y si realmente fuese algo tan horrible y poco recomendable, hace tiempo que se habrían añadido parches para cambiarlos. Torvalds se limita a explicar por qué no es "una aberración" y por qué lo hacen así en el núcleo.

Como dice el enlace que puse (que verás que no es que se haga "porque yo lo valgo", sino que lo justifica muy bien), una cosa es que cuando se escribió "Goto statement considered harmful" se programaba en Fortran, un lenguaje sin estructuras adecuadas. En el caso de C u otros lenguajes esto ya no es así.

S

#8 Es cierto que en ese caso es lícito y recomendable pero considero que el problema real es tener un bucle dentro de otro, en este punto el goto me daría igual.

D

#12 Pues ya me dirás cómo pretendes hacer según qué cosas con un solo bucle, sin anidamientos... O sea, se puede hacer, pero ¿realmente ganas legibilidad?

S

#15 En absoluto, de hecho en la gran mayoría de los casos, se acaba complicando más el entender de un vistazo qué está pasando en ese bloque. Sin embargo la diferencia de rendimiento es abismal; supongo que habrá que aplicarse según lo que interese a cada uno.
Esta noticia trata sobre legibilidad, así que te doy la razón en este tema.

D

#2 El famoso "code review WTF"

Robus

#2 Me has recordado cuando empecé a currar... (1994)

Un novato aprendiendo Cobol mientras tiene que arreglar un programa que da un error...

Me encuentro un código infumable para calcular el valor de la variable ESTADO según una serie de valores de unos parametros que leia el programa... Esa variable se utilizaba en un EVALUATE con muchos WHEN... cuando ya estaba medio loco me dí cuenta que justo antes de entrar en el EVALUATE había un MOVE 2 TO ESTADO...

skaworld

#10 Esos momentos en los que agradeces que en este país haya fuertes restricciones al aceso a armas de fuego porque si no te buscas la ruina...

mirav

#6 cuando desde sistemas te capen internet duramente igual empiezas a ver mas codigo

ronko

#16 ¡Gran idea!, soy de sistemas.

mirav

#17 entonces lo que tu ves no es codigo o rubias, tu ves volcados infinitos de logs. Como profesional no me envidiais

ronko

#18 Haber elegido la pastilla azul...

D

Creo que ya salio por aqui hace un par de semanas

S

Dice que el estudio se realizó sobre código Python. Tengo curiosidad por saber si los resultados variarían con, por ejemplo, Ruby; que fue diseñado para ser más intuitivo respecto al lenguaje.

mirav

#13 No lo creo, al final estas pensando en estructuras de dato y abstracciones logicas, no es algo nada social si no mucho mas logico y analitico.

S

#20 Claro, al final son abstracciones para realizar procesos lógicos como dices. Ponía el ejemplo de Ruby porque muchas veces puede leerse casi en lenguaje natural (en inglés, claro), y podría suceder que activase también alguna región extra del lenguaje, sin reducir las lógicas.
Pongo un pequeño ejemplo:
@collection.sort! if@collection.is_empty?

Perdonad pero no sé formatearlo mejor lol