domingo, 31 de octubre de 2010

Porque no debemos utilizar la librería conio.h en ANSI C.


Hace rato que estaba programando en uno de nuestros lenguajes de programación favoritos, el ANSI C, por supuesto =) me surgió una duda interesante al utilizar ciertas librerias en una plataforma y otra. Como mi transición de Microsoft Windows a Linux Ubuntu fue un poco lenta, al quererme adaptar a otro entorno donde habrá “una mejor manera  de programar ” descubres ciertas cosas que no deberían de ser si estamos tan acostumbrados al uso de plataformas como Windows. A que me refiero con esto, para ser mas especifico, todos o la gran mayoría que crecimos utilizando sistemas operativos como Windows, al momento de introducirnos a la programación, como lo fue con ANSI C utilizando compiladores para dicha plataforma, se hacen uso de algunas librerías que no deberían ser utilizadas como es el caso de la tan conocida librería conio.h
Dado esto me surgió la curiosidad de investigar un poco, y redactar una breve reseña sobre porque no debemos utilizar tan conocida librería.

Nos trasladaremos a los años 80,s cuando una conocida compañía de software como lo es Borland. Fue fundada en 1983, en la actualidad, ya no es tal empresa, ya que fue vendida a una empresa llamada CodeGear(que sigue dando soporte y desarrollo a nuevos productos) que después fue vendida a otra empresa llamada Micro Focus, actualmente dicha empresa no es muy popular, esta dedicada al software empresarial.

Borland desarrollo varios compiladores para lenguajes como: Prolog, Pascal, Cobol, entre muchos otros, pero el mas popular para C y C++ fue el tan conocido Turbo C++.

Bueno ahora pensaran, que tendrá de malo que una empresa de software desarrolle compiladores para determinado lenguaje, pues bueno sabemos que en la actualidad para desarrollar nuevos productos (de cualquier área) se deben seguir ciertos estándares, conocidos por ser un conjunto de reglas a seguir. En la programación también existen estándares, pueden haber miles de compiladores para un lenguaje pero claro todos los compiladores deben seguir el estándar del lenguaje. A que voy con esto, que a la compañía Borland le dio igual seguir un estándar y en sus compiladores desarrollo librerías no estándares, es decir que esas librerías solo se utilizan en los compiladores que desarrollo dicha empresa, como la tan conocida librería conio.h.

Dicha librería se ha convertido para programadores acostumbrados a utilizar compiladores de Borland en una herramienta indispensable para desarrollar sus aplicaciones.
Esta librería contiene los prototipos de las funciones, macros, y constantes para preparar y manipular la consola en modo texto en el entorno de MS-DOS, dicho mas simple esta nos permite dar un “mejor formato” al texto en la terminal de MS-DOS, ya sea dandole color al texto o color al fondo, por mencionar un ejemplo simple.
Pero acaso ¿nosotros requerimos que nuestros programas desde la linea de comandos se vean bonitos?
Claro que no, lo importante es que de verdad hagan lo que deban de hacer, que funcionen y sean legibles.

Algunos de los comandos mas conocidos son: getch(), clrscr(), gotoxy(), textcolor(), y textbackground()

Aun así nosotros podemos sustituir estas funciones de la librería conio.h con otras funciones estándares.

3 comentarios:

  1. Hola Guillermo, Nosotros como futuros programadores es importante utilizar librerías estándares para hacer así portables nuestros programas a otros sistemas operativos y no cerrarnos a uno solo.
    Es importante decir tambien que no es necesario darle una interfaz grafica a un programa en C ya que para eso existen programas que se dedican unicamente a darle una interfaz grafica a nuestro programa.
    Por ejemplo GTK+
    La verdad yo nunca lo he usado.
    Te dejo un link.. :P
    http://es.wikipedia.org/wiki/GTK%2B

    ResponderEliminar
  2. GRACIAS MIL :D Eviten tonterías tipo conio.h siempre y cuando puedan. Como bien comenta Roberto (+2 participación), si quieren algo gráfico, hagan algo gráfico de verdad (justamente con ventanas etc.). Lo "pseudográfico" que se logra en el terminal es demasiado ochentero :P Tres puntos extra para Guillermo.

    ResponderEliminar
  3. hahaha gracias doctora y si de verdad tiene razon, no me imagino en la epoca de los años 80's a los programadores dandole formato a sus programas de la terminal :p que bueno que los tiempos van cambiando =)

    ResponderEliminar