300 meneos
9780 clics

Rapapolvos público de Linus Torvalds a un committer del kernel Linux

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
usuarios: 149   anónimos: 151   negativos: 4  
67comentarios mnm karma: 521
  1. #1   Si se hubieran pegado cuatro voces a algún otro proyecto que yo me se probablemente Linux ahora mismo sería relevante en el escritorio...
    votos: 13    karma: 128
  2. #2   #1 No creo que la relevancia de los proyectos en el entorno de Linux dependa de rapapolvos. ¿A caso crees que la relevancia que tiene Linux en cuanto al sector profesional y más concretamente en servidores la tiene, por ejemplo, Microsoft? Creo que es más una cuestión de filosofía de trabajo para cada cosa. Los proyectos open source tienen una metodología y los de software cerrado en ocasiones otra.
    votos: 4    karma: 48
  3. #3   Esto ocurre a diario, no es relevante.
    votos: 9    karma: 79
  4. #4   Es un proyecto. Las cosas deben hacerse bien.

    Linus no debía estar ocupándose de enseñar las bases a los desarrolladores, eso ya lo debían traer aprendido.
    votos: 13    karma: 115
  5. #5   Como se las gasta el Torvald
    votos: 0    karma: 8
  6. #6   Pues quizás las formas le pierden , pero no debe faltar razón a Linus, si encima de un error lo ha intentado arreglar con una parche de mierda (según sus palabras).
    votos: 9    karma: 83
  7. #7   #5 a mi me parece demasiado benévolo con el interfecto
    votos: 5    karma: 28
  8. #8   Seguramente su buzón esté lleno de estupideces y al final sus correos terminen siendo «fucks» por todos los lados, y debe de ser molesto que alguien que se entiende es un profesional en el mantenimiento del kernel cuestione o diga ciertas cosas, porque al fin y al cabo entorpece tu propio trabajo.
    votos: 4    karma: 46
  9. #9   #3 pues vota en consecuencia
    votos: 0    karma: 10
  10. #10   Dictador benevolente dice el articulo... es como si Torvalds fuese Pedro el Grande, es decir, vengo y modernizo el nivel de vida de los aldeanos, les ordeno ser felices o que se atengan a las consecuencias...

    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)
    votos: 1    karma: 12
     *   meneatelo meneatelo
  11. #11  
    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).
    votos: 3    karma: 32
     *   Aladaris Aladaris
  12. #12   Menos rapapolvos y más r@p@p@lv@s.
    votos: 2    karma: 28
  13. #13   #11
    No estaría yo tan seguro de que esté debidamente justificado.
    votos: 1    karma: 18
  14. #14   que, por esto lo dicen?

    www.youtube.com/watch?v=iYWzMvlj2RQ
    votos: 2    karma: 22
  15. #15   #11 Creo que un goto no es admisible hoy en día en ningún código, ni tan solo por razones de optimización (hay otras formas de conseguir lo mismo...)
    votos: 1    karma: 17
  16. #16   #11 Te lo han machacado todo lo que quieras, y por una buena razón: escribir código lleno de GOTO lo convierte en inmantenible.

    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).
    votos: 35    karma: 298
     *   Lb2A3qA Lb2A3qA
  17. #17   Desgraciadamente, el mundo de la informática está repleto de tipos prepotentes, agresivos y maleducados. Eso y las horas extras, hacen que nuestra profesión, que podría ser mucho más apasionante, sea a veces tan desagradable.
    votos: 4    karma: 43
  18. #18   #1 A los que complicaron el GNOME de Ubuntu, ¡golpe de remo!

    #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 xD )
    votos: 9    karma: 96
     *   IPanonima IPanonima
  19. #19   #13 #15 Pues yo creo que está justificado, pues como dice #16, hablamos del código de un Kernel y no de una aplicación. Esto implica que debe estar mucho mejor optimizado, y además "sólo" usan una etiqueta (done), con lo que tampoco será tan difícil de mantener...
    Lógicamente nos machacan tanto porque en general no se debe usar, pero como en todo, hay excepciones y estas están justificadas.
    votos: 4    karma: 45
  20. #20   #16 de hecho importa mucho creo yo. Si trabajan a bajo nivel, trabajan a bajo nivel. Lo hacen por una buena causa al fin y al cabo. Si estuvieran locos, programarían la totalidad del kernel en asm.

    #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.
    votos: 3    karma: 36
  21. #21   Si vierais las broncas que echa de vez en cuando mi jefe... la vena del cuello parece que le va a reventar.

    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.
    votos: 1    karma: 15
  22. #22   ¿Me pasa sólo a mí lo de que aparezcan muchas de las palabras escritas con @ o con x para distinguir las palabras de género?
    votos: 0    karma: 7
  23. #23   El tema de los GOTO creo que lo machacan sobretodo por qué una aplicación llena de GOTO es un infierno para el siguiente (y hasta para ti después de una semana) que le toque repasar el código. Pero si te toca programar un kernel es que eres ya un verdadero crack y cualquier optimización que puedas hacer pesa más aunque te acabe quedando un código infumable.

    EDIT: Aquí el mismo Linus justifica su uso: kerneltrap.org/node/553/2131

    #22 Mira el calendario
    votos: 11    karma: 97
     *   Suigetsu Suigetsu
  24. #24   #22 Por ejemplo: el titular de la noticia que va antes de esta me aparece así : "L@ falt@ de pasajer@s aconseja el cierre de 15 aeropuert@s españoles"
    votos: 0    karma: 7
  25. #25   #22 El dí@ de l@s in@centes
    votos: 1    karma: 13
  26. #26   #11 Haz una búsqueda rápida y verás que el kernel de linux está lleno de gotos. Los usan normalmente como punto de salida de funciones cuando una función tiene varios puntos de salida y hay que hacer algún trabajo de "limpieza" antes de salir. En lugar de copiar el mismo trabajo en cada punto de salida, lo ponen en un solo punto y saltan a él con goto donde hace falta.
    votos: 4    karma: 43
  27. #27   Coño, mando a que jodieran a toda una compañia como Nvidia no va a hacerlo con el bueno de Mauro xD

    #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 xD
    por cierto, apoyo que hables con tus diversas personalidades multiples en publico #22 #24 #28 xD
    votos: 3    karma: 41
     *   jr6 jr6
  28. #28   #22 anda coño! Si es que nomentero! Gracias ;)
    votos: 0    karma: 7
  29. #29   Perdón. Que demonios es esto???
    Edito: Vale, acabo de ller a #25, estaba acojonao.  media
    votos: 1    karma: 25
     *   --331040-- --331040--
  30. #30   #29 Si tuviera que adivinar diria que es una captura de pantalla hecha desde un ipad con la portada de meneame abierta :roll: shit
    votos: 6    karma: 59
    jr6 jr6
  31. #31   #30 ZAS! xD Por un momento pensé que se me había jodido.
    votos: 0    karma: 6
  32. #32   #18 hay que gente que esta muy contenta con el cambio.
    lee los comentarios de www.meneame.net/story/gnome-volvera-ser-escritorio-defecto-debian-7-wh
    votos: 0    karma: 6
  33. #33   #11 A mí lo que me flipa es que siga existiendo gente que piensa que determinadas posibilidades de un lenguaje no se deben usar por que no y punto (y luego les ves haciendo aberraciones peores, como acceder a una dirección de memoria no válida por no usar un break y decir que como no la modifican no pasa nada ¬¬ ). Yo no he usado un goto en la vida, pero un goto end o similar es perfectamente claro y simple, se hace rápido y evita cosas más complicadas y menos eficientes, por ejemplo.
    votos: 9    karma: 83
     *   Kherom Kherom
  34. #34   Linus Torv@lds...
    votos: 1    karma: 12
  35. #35   #29 Jodido nuevo iPad, tiene más resolución que mi pantalla de 19" :-P Aunque por lo que veo sigue con el mismo navegador mierder del primero.
    votos: 1    karma: 17
  36. #36   #11 Pasa una cosa, y es que muchas veces en el kernel hay flujos de ejecución bastante engorrosos de tratar si se utilizan if-else a rajatabla, que encima deterioran el rendimiento si no se utilizan adecuadamente (fíjate que existen hasta macros para optimizar saltos a nivel de núcleo: likely() y unlikely()).

    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.
    votos: 13    karma: 130
  37. #37   Odio las noticias de ingeniería informática, programación y demás fanfarria. No me entero de un carajo xD

    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.
    votos: 6    karma: 34
     *   Atropos91 Atropos91
  38. #38   a esos niveles no entiendo mucho, lo que sea pero que lo arreglen que luego nos pilla el programita de marras en un bucle y nos volvemos locos...
    votos: 0    karma: 7
  39. #39   #23 "f course, in stupid languages like Pascal, where labels cannot be
    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 xD
    votos: 6    karma: 68
     *   yottabyte yottabyte
  40. #40   Lo que en Menéame se viene llamando un fascista, vamos.

    Torvals genio: sí
    Torvalds grosero: también
    votos: 1    karma: 16
  41. #41   Se puede discutir las formas pero el fondo. Alguien se pensó que el software libre era una broma.
    votos: 1    karma: 15
  42. #42   #7 Cierto. Deberías ver la que le cayó al insensato que se atrevió a insinuar que git debería haberse escrito en C++: harmful.cat-v.org/software/c++/linus

    La primera línea es:

    *YOU* are full of bullshit.

    Y después va a peor. xD
    votos: 5    karma: 53
  43. #43   #2 No creo que se trate de eso, pero a veces hay que dejar ciertas cosas claras. Es mejor leer la respuesta completa, y sí, es una bronca, pero después de leerlo es una bronca merecida. No tiene sentido que mañana windows saque una actualización y dejen de funcionar programas a causa de ello (sobre todo si están muy extendidos), y luego alguien diga: "No, si es que lo que tiene fallos son los otros programas".

    #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í. xD
    votos: 2    karma: 26
     *   Arth Arth
  44. #44   Pues no sé, a mi me mosquearía que me contestasen a un error mío de programación con un "Cierra la puta boca", y eso que a mi me pagan. Cuanta justificación veo...
    votos: 1    karma: 19
  45. #45   #11 Sé que mi respuesta es redundante, pero en resumidas cuentas, el problema es que se tiende a usar mal. Usarlo sólo porque existe es una idiotez. Usarlo porque has estudiado los pros y los contras es ingeniería.
    votos: 1    karma: 17
  46. #46   #44 Pero tu seguramente no estás trabajando en un proyecto de semejantes dimensiones y del que depende el funcionamiento de miles de millones de ordenadores. Cuando tienes algo así entre manos tienes que andarte con pies de plomo para no romper nada porque si nadie se entera puede llegar a ser catastrófico, y es por eso precisamente por lo que Linus tiene ir repartiendo collejas a diestro y siniestro.
    votos: 3    karma: 33
     *   Johan Johan
  47. #47   Anda que no me han echado bronca a mí por liarla en el código... Pero como en cualquier trabajo, joder. Esto no debería de ser noticia. De hecho no me imagino al líder de un proyecto tan grande como Linux siendo un buenazo.
    votos: 2    karma: 8
  48. #48   #34 Linus Trollvalds.
    votos: 2    karma: 22
  49. #49   #16 Hostia, tú eres 1 de los 2 "cracks" que votaron negativo a este:
    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?
    votos: 0    karma: 6
  50. #50   Independientemente de su estilo personal, me parece importantísimo que en un proyecto tan grande (en complejidad, y en número de desarrolladores) como el kernel de Linux, haya una figura que sea capaz de cantarle las cuarenta a los colaboradores de cierto rango cuando la cagan.

    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.
    votos: 4    karma: 46
  51. #51   #44 Si te fijas, por la respuesta que da Linus y las frases de Mauro, no es que este le enviara un mensaje y aquel se haya subido por las paredes. Más bien es que Mauro ya lo tiene hasta las pelotas de tirar balones fuera y por eso comienza con un cállate de una puta vez. Vamos, que si al principio de la conversación Mauro se hubiera bajado de la burra (y, a pesar de que ni de lejos tengo nivel para discutirle las directrices de desarrollo a ninguno de los dos, estoy de acuerdo con Linus en que no hay que echar balones fuera cuando la cagas), Linus no se hubiera puesto [tan] borde.
    votos: 1    karma: 20
  52. #52   Lo que digo siempre en estos hilos: me encantan los flames de Linus.

    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.
    votos: 1    karma: 20
  53. #53   #6, pues la verdad es que sí, el arreglo era una mierda hecha con desgana...

    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.....
    votos: 4    karma: 44
  54. #54   #11, las normas existen para saltárselas cuando van contra su propio espíritu. Eso es algo que deberían aprender los jueces.
    votos: 0    karma: 6
  55. #55   #46 Hombre, en algo como Linux, no. Pero si he trabajado en proyectos bastante sensibles, y cuando ha habido cagadas ha habido buenas broncas, pero nadie me ha mandado de malas maneras callarme la puta boca.

    #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.
    votos: 0    karma: 10
  56. #56   Hablo de debida justificación porque en el propio kernel no suele haber muchos bucles que digamos, todo son llamadas a sistema que acceden a dispositivos. El planificador y gestores de memoria es de lo poco que puede tener varios bucles. Si está lleno de gotos estás metiendo saltos incondicionales por un tubo, además de los propios de la función. Eso ya sin entrar en el código espagueti que puede crearse.

    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.
    votos: 2    karma: 28
  57. #57   #33 Totalmente de acuerdo.
    votos: 0    karma: 9
  58. #58   #55 Si te fijas tampoco se trata de un simple error, es un problema de concepto que a esas alturas puede ser bastante grande, y si le sumas el intentar resbalarlo se complica más. A lo mejor no es buen ejemplo, pero hace poco había un meneo de un puente colgante que acumulaba hielo para luego caer sobre los coches como bombas. El que diseño ese puente es un imbécil, y ojala alguien se lo hubiera dicho con la misma rotundidad en su momento. Por qué? Pues porque eso es un facto que normalmente sí que se tiene en cuenta al construir prácticamente cualquier cosa.

    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.
    votos: 0    karma: 6
     *   Arth Arth
  59. #59   Independientemente de quien sea, la respuesta es la misma que habría dado cualquier gilipollas de a pie, vulgar y sin clase. Le podria haber dicho al desarrollador que su comentario no tenia fundamento y que deberia in-formarse mejor.
    votos: 0    karma: 6
     *   pepete pepete
  60. #60   Me hace gracia lo sorprendido y medio indignado que se muestra el redactor de genbetadev... ains xD
    votos: 0    karma: 7
  61. #61   #10 Es un título humorístico para los creadores de proyectos de código abierto :-P
    es.wikipedia.org/wiki/Benevolent_Dictator_for_Life
    votos: 0    karma: 8
  62. #62   Fanboys everywhere!
    votos: 0    karma: 6
  63. #63   #17 si piensas que eso es propio de la informática, estás muy equivocado.
    votos: 0    karma: 9
  64. #64   #11 El problema con el goto es el abuso, no el uso. No tienes que seguir las reglas a rajatabla, puedes tomarte una licencia si lo ves justificado.
    votos: 0    karma: 6
  65. #65   Menuda mierda de rapapolvo. Linus Torvalds es como Carlito Brigante: no es que haya cambiado, es que ha perdido fuerza con el tiempo.

    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.
    votos: 0    karma: 9
  66. #66   #23 Las explicaciones y casos de uso que dan me parecen muy interesantes independientemente del rendimiento.
    votos: 0    karma: 6
  67. #67   66
    El tema es que se utilizan por rendimiento ya que si se encapsulasen en funciones sería mucho más manejable.
    votos: 0    karma: 8
comentarios cerrados

menéame