www.genbetadev.com/software-libre-y-licencias/rapapolvos-... por
woodgate el 27-12-2012 14:40 UTC publicado: 28-12-2012 01:20 UTC

Hoy vamos a romper dos mitos: que colaborar en un proyecto de Software Libre es una tarea siempre agradable y que en Navidad todos estamos de buen humor. Y es que no hay más que ver las primeras líneas de la respuesta de Linus Torvalds a Mauro Carvalho, empleado de Red Hat y responsable de los drivers multimedia del kernel Linux, en la lista de correo del proyecto hace un par de días. Enlace a conversación:
article.gmane.org/gmane.linux.kernel/1414106 etiquetas: linux, open source, linus torvalds negativos:
4 usuarios:
149 anónimos:
151
Linus no debía estar ocupándose de enseñar las bases a los desarrolladores, eso ya lo debían traer aprendido.
bromas aparte, habra quien use estas cosas para descalificar la comunidad OSS (si Professor hable de ti y tus secuaces), pero ni modo Torvalds es tan humano como Stallman, o el mismisimo Sir Henry William Gates III ( en serio ese es su nombre completo y el titulo que le dio la reina de inglaterra)
ctrl = uvc_find_control(chain, v4l2_ctrl->id, &mapping);
if (ctrl == NULL) {
ret = -EINVAL;
goto done;
}
A mi lo que me flipa es que usen GOTO en el kernel, después de todo lo que me han machacado con que es una mala práctica ... (Lógicamente estará justificado).
No estaría yo tan seguro de que esté debidamente justificado.
www.youtube.com/watch?v=iYWzMvlj2RQ
Pero, ¿sabes una cosa? A la hora de la verdad... cuando acaba todo compilado, enlazado y listo en código ejecutable... ¡está lleno de GOTO! Los JMP de ensamblador, no son otra cosa que GOTO. Todo lo que escribes de forma ordenada y bonita en tu lenguaje preferido (u odiado), acaba convertido en un amasijo infernal de GOTO por todos lados.
El motivo para usarlos en el kernel, es simple: ahorran una mierda de tiempo de ejecución, pero la ahorran millones de veces. Y eso, en el kernel, importa (aunque tampoco sin pasarse, claro).
#11 #13 #15 Hay quien opina que los gotos son aceptables en contadas ocasiones. No olvidemos tampoco que C es considerado, a día de hoy, un lenguaje de medio/bajo nivel.
(Por cierto, 11, acabo de fijarme en tu avatar
Lógicamente nos machacan tanto porque en general no se debe usar, pero como en todo, hay excepciones y estas están justificadas.
#13 el código, una vez compilado, no deja de tener cienmil gotos por todas partes (bueno goto no realmente, pero una clausula que se comporta de la misma forma)
Estos pavos quieren programar lo más parecido al lenguaje máquina posible. Tienen un coco muy desarrollado para la causa y buscan ahorrar el tiempo de ejecución al máximo.
La verdad es que no sé el papel que tiene hoy en día Linus, pero como dicen en los comentarios la gente asocia Linux a Linus (obviamente) por lo tanto para lo bueno y para lo malo es el que da la cara y eso conlleva mucha presión.
EDIT: Aquí el mismo Linus justifica su uso: kerneltrap.org/node/553/2131
#22 Mira el calendario
#22 son los juankers malvados que se estan cebando con meneame...Eso y la cupula de anonymous, la cupula de anonymous no puede faltar nunca
por cierto, apoyo que hables con tus diversas personalidades multiples en publico #22 #24 #28
Edito: Vale, acabo de ller a #25, estaba acojonao.
lee los comentarios de www.meneame.net/story/gnome-volvera-ser-escritorio-defecto-debian-7-wh
www.kernel.org/doc/Documentation/CodingStyle -> Chapter 7
stackoverflow.com/questions/109710/likely-unlikely-macros-in-the-linux -> 1ª respuesta
Es un uso muy puntual y tiene su razón de ser, pero lo suyo es no utilizar gotos jamás, y en el núcleo (como normal general), solo si la alternativa es una penalización al rendimiento.
Eso sí, la discusión sobre el comando goto deja ver que la informática es claramente una ingeniería más, de un nivel diferente al que los de estructuras, electricidad, genética, etc, pero ingeniería al fin y al cabo.
descriptive, goto's can be bad. But that's not the fault of the goto,
that's the braindamage of the language designer."
Joder, pone a caldo a to dios jajajja, como me gustaría conocer al linus trollvarlds
Torvals genio: sí
Torvalds grosero: también
La primera línea es:
*YOU* are full of bullshit.
Y después va a peor.
#42 Realmente creo que esa es la parte más ofensiva, lo demás es una crítica muy razonada con alguna ofensa insertada por ahí.
www.meneame.net/story/vistazo-robots-txt-sgae
por no saber de qué iba la noticia. ¿Ves cómo es muy fácil dar una explicación sin votar negativo?
Si no, pasa lo que en otras meritocracias, que al final el proyecto se va a la mierda por culpa de ciertas malas decisiones tomadas por gente "intocable", las cuales hay que aceptar por el mero hecho de que las ha tomado quien las ha tomado. Y eso mata un proyecto tanto técnicamente, como en el plano personal (la motivación de los programadores "junior" por los suelos).
Además, no es lo más educado del mundo, pero consigue lo que (supongo) persigue, que es el efecto contundencia y que se le quite la chulería al listo de turno. Y si no, mirad su email previo a ver qué humillos tenía el tal Mauro.
Y no solo por la trolleada y tal, sino más bien por todo lo que aprendo. Y eso que trata de algo que no creo que sea capaz de hacer nunca, como es la programación a "bajo nivel".
El tema de este hilo ya lo he visto en otras discusiones: la primera regla del club del kernel es no romper la compatibilidad en espacio de usuario. Y es lógico: de nada sirve el curro de programar un kernel si con una mala decisión rompes de un plumazo la compatibilidad con los programas que lo usan.
The whole patch is incredibly broken shit. It adds an
insane error code (ENOENT), and then because it's so insane, it adds a
few places to fix it up ("ret == -ENOENT ? -EINVAL : ret").
En lugar de corregir el error, lo "rodeó" con un if en los returns.....
#51 Pues imagino que no, pero tampoco me imagino insistiendo con un error en mi curro y que en vez de hacérmelo ver, con más o menos paciencia, me manden a la mierda. No me parece correcto.
Está claro también que te ahorras llamar a una función común por lo que evitas pasos de parámetros de forma continuada, todos sabemos que en el kernel hay que perder el mínimo tiempo posible ya que son las aplicaciones de espacio de usuario las que deben usar la CPU, no el núcleo del sistema operativo. Por ello también las aplicaciones de espacio de usuario no deben abusar de las llamadas a sistema por lo costoso de los cambios de contexto.
En fin, no pretendo justificar las malas maneras, que en este caso leyendo toda la discusión no me parece tal cosa. Me parece más un golpe sobre la mesa para cerrar una discusión sin fundamento. Si a ti un jefe te dice que hagas algo de una manera, seguramente le harás caso, y es obvio que nunca llegarías a ese termino.
A veces sí hay que hablar sin pelos en la lengua, sobre todo si es algo importante.
es.wikipedia.org/wiki/Benevolent_Dictator_for_Life
Esta bronca es educada y razonada comparada con algunas antiguas de Mr. Torvalds.
El Mauro ese de Red Hat es un echamierdista escaqueator como la copa de un pino con los cojones cuadraos
La bronca se la ha echado por una cosa que es FUNDAMENTAL en el desarrollo colaborativo: hay que hacer las cosas con cariño.
El tema es que se utilizan por rendimiento ya que si se encapsulasen en funciones sería mucho más manejable.