nov 29

¿Hay que reinventar la rueda?

Posted in off topic

Esta frase la he oido ya cientos de veces, y ultimamente muy a menudo, quizá demasiado.

Pero veamos, segun la wikipedia, que significa:

Reinventar la rueda es una expresión que se refiere al fenómeno habitual de necesitar encontrar solución a algunos problemas que seguramente hayan sido resueltos por alguien que se ha enfrentado anteriormente al problema. Reinventar la rueda es una forma de referirse al esfuerzo resuelto miles de veces por otros, y del que nosotros aún no conocemos la solución.

Pero esta es la visión de la Wikipedia, y como sabeis, yo no suelo estar de acuerdo con el resto.

Normalmente, esta frase, en tono interrogativo, sueles oirla cuando alguien cree que te estas equivocando, porque estas intentando hacer “de forma diferente” lo que otros “ya hacen” para llegar a un mismo fin.

Rueda reinventadaBien pero si esto es asi, cuando alguien “invento” el lenguaje ASSEMBLER “Ensamblador para los amigos intimos”, que si mal no recuerdo, permitia hacer programas para las computadoras, entonces ¿porque reinventar la rueda => “C” ?, a fin de cuentas, “C” tambien es para escribir programas, ¿no?, y si seguimos cuestionandonos esta filosofia, ¿para que reinventar “Java”?, seguramente, el que lo “invento” era un idiota, ¿acaso no conoceria “C”?

Mi respuesta a esa pregunta es diferente, hay dos posibles razones por las que “alguien” se ve obligado a reinventar “algo”:

  1. Pues la mas habitual por desgracia, quizá sea, que realmente reinventamos nuestra rueda, por desconocimiento. Si, como le paso al “inventor” de Java. Ahora me surge una duda, ¿Java se escribió en “Assembler” o en “C”?. Lo dicho, un idiota, primero tuvo que aprender “C” , luego “inventar” Java, y despues escribir el codigo en “C” para que los programas “Java” realizasen las mismas tareas que los programas “C”. A lo que iba, que si tengo una necesidad, debo aportar una solución, y cuando desconozco otras soluciones, por ignorancia, no me queda mas remedio que desarrollar “mi solución”, buena o mala, pero al no conocer otra, habrá merecido la pena.
  2. Hay otro punto de vista, y como soy muy torpe, para no ofender a nadie me voy a referir a mi mismo. Este punto de vista es el que tienen solo unos pocos, equivocado ¡seguro!, y que entra en discordia con el punto anterior. Si ya somos conocedores de una “solución” a nuetro problema, ¿para qué voy a reinventar “la rueda” de nuevo?. Y a esta pregunta se me ocurren varias respuestas para todo aquel que las hace con bastante frecuencia:
    1. Voy a reinventar “mi idea” porque quiero ganar dinero con ella, y no me parece digno “piratear” la idea de otros para beneficiarme economicamente de su trabajo. Esta respuesta debe ser valida, no me hagais demasiado caso, pero si no es asi, a que cuento viene la competencia entre las diferentes marcas, de autos, de perfumes, de … cualquier cosa. Asi es, si cuando alguien invento el primer auto, los demas hubieran desistido, solo conoceriamos una marca de autos, el resto serian vulgares copias. Es mas, quiza ni siquiera conoceriamos “la marca” y lo llamariamos simplemente “auto”. Porque, ¿que sentido tiene poner nombre a algo? si no es para diferenciarlo de sus competidores. Y esto nos lleva a que todos tendriamos un vehiculo a motor de la marca “Auto” 😀
    2. Otra respuesta a la pregunta anterior: Voy a reinventar “mi idea” porque me aburro y no tengo nada mejor que hacer. Bien, esta no es la mejor respuesta, pero esto es una democracia y por tanto, un punto de vista diferente y valido.
    3. Otra respuesta mas: Voy a reinventar “mi idea” porque creo que puedo mejorar “la idea” de la compentencia y ademas, beneficiarme por ello. Y personalmente, esta es la que más me gusta. ¿Porque?, pues porque si no es para mejorar, que leches hacemos aqui todos los dias, acaso es esto un corrillo de abueletes en el casino contando sus batallitas, ¡NO!

Hace tan solo unos años decidi reinventar “LML”,  a finales de 2007, podeis buscar los articulos publicados en este blog, pero para que reinventarlo, ya existia “XML”. En realidad, no decidi inventarlo, la verdadera historia es:

Tuve una necesidad: debia realizar varias importaciones masivas de datos

Revisé las herramientas de que disponia para dar una solución a mi necesidad: XML, ASCII, CSV, … etc

Le pregunté a Roberto (y me dijo “XML”, es el estandar, no te compliques 😀 “un abrazo desde aqui Roberto”)

Ma tarde, le pregunte a mi vecina, que no entiende de informatica, pero es que la escusa de la “SAL” ya esta muy vista. 😀

Despues le pregunte a la mujer, y me dijo ¿A QUE HAS IDO A CASA DE LA VECINA? :( y yo le dije, ¿porque siempre respondes con otra pregunta?,  esa es otra historia, pa luego … 😉

Luego le pregunte a la almohada, y me dijo, ¿”XML” en Velneo?, “chungo”, mejor usa ASCII o CSV, y empezaron los problemas. Tras una larga batalla entre la almohada y yo, ella me decia “ASCII y te duermes” y yo decia “que te den, ASCII ¡no!”. No os voy a poner una foto de la almohada por la mañana, porque me acusariais de maltratador, pero puedo dar “fe” de que no consiguio su proposito, eso si, peleo dignamente y me impidio dormir en toda la noche.

Llegué a una conclusión, al dia siguiente, tras una ducha, y las ideas mas frescas, boli en mano, y papel reciclado en la mesa (papel usado por una sola cara), empece a escribir barbaridades, y tres dias despues, ya tenia terminado un primer borrador de lo que seria LML.

No voy a contar aqui, los beneficios que me ha reportado, pero, aun a riesgo de parecer “idiota”, y sabiendo que “LML” nunca va a llegar a ser como “XML”, solo puedo decir que me ha ahorrado muchas horas de trabajo en las importaciones realizadas, y me ha dado la “satisfacción” de poder mejorar lo que hay, aunque no todo el mundo lo vea de esa manera.

En cualquier caso, todas las importaciones se realizaron con exito, minimizando los errores, y con una velocidad muy superior a las pruebas realizadas con otros lenguajes.

Ahora, me pregunto:

  • como desarrollador, si ya existen aplicaciones de gestión para empresas, como “Contaplus”, “Facturaplus”, “A3nominas”, ¿para que leches necesitamos Velneo?, es mas facil comercializar estas aplicaciones y quitarse problemas.
  • como usuario, si ya existen aplicaciones de gestión para empresas, como “Contaplus”, “Facturaplus”, “A3nominas”, ¿para que leches quiero un programa a medida?, que ademas, seguro que tendra cantidad de bugs.

Si ya tienes la respuesta a estas preguntas, entonces, no necesitas que te lo explique.

Si aun desconoces la respuesta, y necesitas que te lo explique, … es que, ¡esta chunga la cosa!

Despues de leer esto, no seguiras pensando que cuando llamaba “idiota” al “inventor” de “Java”, lo hacia porque realmente creyera que lo es. Si es asi, debes volver al principio y empezar a leer de nuevo, hasta que lo entiendas.

Y cuando alguien te pregunta esto, ¿porque lo hace?, acaso tiene miedo de que puedas hacerlo mejor que los demas o que el mismo.

Para mi la respuesta esta clara, antes de responder a esa pregunta, debes preguntarte a ti mismo otras cuestiones:

  • ¿Merece la pena el esfuerzo necesario para reinventarlo?, si la respuesta es afirmativa, adelante
  • ¿Soy capaz de mejorar lo que hay en el mercado?, y si es asi, tirate a la piscina.

Vosotros no se, pero yo no me dejo convencer facilmente por aquellos que intentan convencerme de sus propias limitaciones.

La historia suele recordar a los que se arriesgan a cumplir su sueño, pero nunca recordara a todos aquellos que intentaron convencerles de lo contrario. Ahora, tu eliges…

Y tú, eres de los que preguntan ¿vas a reinventar la rueda?

PDF Download    Enviar artculo en formato PDF   
comments: Closed

8 Responses to “¿Hay que reinventar la rueda?”

  1. Miguel dice:

    No pares de reinventarla.

  2. agustin dice:

    Conozco el LML y es infinitamente mejor que el XML

  3. Pepeto dice:

    Gracias Agustin,

    Y el que quiera conocerlo, solo tiene que pedirlo, aqui dejo un anticipo:
    http://www.ascsl.com/category/lml/

  4. Francisco Hoyos dice:

    Sólo falta la rutina de lectura y escritura. A ver esas funciones, majo.

  5. Pepeto dice:

    Francisco, que hoy estoy muy espeso, no te pillo :(

  6. Pepeto dice:

    ¿Te refieres a las rutinas de lectura y escritura de LML?

    Pues son sencillas: para escribir LML, el resultado es un fichero de texto plano, con etiquetas numeradas segun el nivel de anidamiento,
    es decir, a medida que aumenta el numero que precede a la etiqueta, significa que esta anidada en la etiqueta anterior, si el nivel es igual a la etiqueta anterior, es porque la etiqueta tiene el mismo nivel de anidamiento que la anterior, y si el nivel es inferior, es porque esta fuera de ese anidamiento, pero es muy facil saber cual es la etiqueta “padre” buscando el nivel previo a cualquier etiqueta.

    Buscare los procesos y los pogo en el blog.

    un saludo
    Jose Luis



Pings responses to this post