photo of Anibal

Error Prone

If you find yourself optimizing your code, then it means that the author of your compiler has failed.

Subscribe to RSS feed

Posts tagged with "gnu"

GNU coding style really hurts my eyes.

, , ,

Como dijo alguna vez David Chisnall, uno de los grosos detrás de étoilé
Étoilé

After spending a little while poking at the GNU runtime, I came to two conclusions:

  • It was at least twice as complicated as it needed to be.
  • GNU coding style really hurts my eyes.



En si, había entendido la frase (y compartido también), pero nunca me vi en la necesidad de escribir/leer código con el estilo GNU (más allá de una que otra funcioncita perdida por ahí). Hace un tiempito, me metí a ver e intentar aportar al proyecto GNUStep (algo he hecho, he cambiado las macros de manejo de memoria, y he corregido un pequeño bug en una clase que no recuerdo), sin embargo, ahora quería ayudar un poco más profundo, cambiar unas funciones, detectar bugs y corregirlos, etc. Ahí es cuando uno empieza a ver código del estilo GNU.

Para poner en contexto, ésto es código GNU:
int una_funcion()
{
  int a;
  int b;

  printf("Ingrese un número: ");
  scanf("%d", &a);
  printf("Ingrese un número: ");
  scanf("%d", &b);

  if(a == b)
    {
      printf("a es igual a b");
    }
  else if(a > b)
    {
      printf("a es mayor a b, igualando valores");
      while(a > b)
        {
          a--;
        }
       printf("valores igualados");
     }
  else
    {
       printf("b es mayor a a");
    }
  return 0;
}

mmmta madre que costó escribir eso. Un código simple que no hace nada (lo de los scanf y todo eso me jode el buffer, pero bue, la base está), pide dos valores, si ambos son iguales, imprime que son iguales, si a es mayor, muestra la leyenda de que a es mayor y los iguala, y si no, dice que b es mayor. Lo importante es la forma en que está escrito que es la que la gente de GNU usa. Para ponerlo en contexto (y el por qué a mi me hace tanto mal), así es como yo hubiese escrito el código anterior:
int una_funcion()
{
  int a;
  int b;

  printf("Ingrese un número: ");
  scanf("%d", &a);
  printf("Ingrese un número: ");
  scanf("%d", &b);

  if(a == b){
    printf("Ambos valores son iguales");
  }else if(a > b){
    printf("a es mayor a b, igualando valores");
    while(a > b){
      a--;
    }
    printf("valores igualados");
  }else{
    printf("b es mayor a a");
  }

  return 0;
}


Otra cosa diferente, que tiene el estilo GNU,es que las llaves son opcionales cuando en una estructura de control le sigue una instrucción. Yo no, yo siempre uso llaves.

El gnome-shell

, , ,

Hace un par de días estaba viendo un par de videos del gnome-shell (lo que viene con el nuevo Gnome 3.0 según dicen), y la verdad...

Read more...

February 2012
M T W T F S S
January 2012March 2012
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29