miércoles, 5 de febrero de 2014

¿Por qué sigue usándose Turbo C/C++ en las escuelas?

Turbo C es un compilador creado por Borland en 1987 para el desarrollo en MS-DOS(aunque también hubo versiones para Atari y OS/2)  el cual fue reemplazado por Turbo C++ en 1990.La última versión de Turbo C++, la 3.01, en 1992, con lo que posteriormente se concentraría la empresa en su producto Borland C++ y C++ Builder.
A pesar de ser un compilador histórico, donde muchos de nosotros dimos nuestros primeros pasos en la programación en C y C++, se debe reconocer que nuestro compilador de 16bits ha pasado a la historia y su lugar es estar en una vitrina en el museo de la informática. 
Sin embargo, un gran número de escuelas, tienen como su compilador de cabezera ese viejo conocido: ¡Turbo C! No es extraño encontrarnos hoy en día, en diversos foros de programación código que usa las viejas bibliotecas.
¿Me pueden ayudar con este código? ... y se lee: gotoxy(23,5); clrscr(); etc. 

Parecería ser que el tiempo no ha cambiado en nada, que MS-DOS sigue siendo un sistema operativo, y no una terminal emulada por los sistemas windows modernos. A este ritmo no nos sorprendería ver código que invoque resoluciones de 320x200 con 256 colores indexados.

                            void SetVideo (void)
                            {
                                    asm{
                                                mov ah,0
                                                mov al,13h
                                                int 10h
                                          }
                            }


A pesar de que tenemos buenos recuerdos, y extrañamos los hacks del Modo 13h y Modo X, y otras curiosidades, es una verdadera barbaridad que a los alumnos no se enseñe a escribir código en compiladores modernos. Pareciera ser que los maestros, sin ganas de desarrollar nuevos retos de programación para sus alumnos, intentan reproducir una y otra vez los mismos ejercicios obsoletos.
El problema no solo es que la lógica no se puede reducir a producir cuadros de texto con colores en una consola de los años 90's sobre MS-DOS, sino que no dejan una verdadera experiencia de como se realiza la programación en C y C++ para sistemas modernos (lo cual no necesariamente quiere decir que se requiera una GUI.)
Recomiendo, para todos aquellos a quienes aún les estén enseñando con este compilador obsoleto, guardarlo en una carpeta llamada muso y descargar la versión del compilador GCC u otro compilador de nueva generación (como VC++ en Windowos) para su sistema operativo. Si requiere alguien de programación gráfica para ver los resultados de su lógica palpables en la pantalla puede usar SDL, que es una excelente biblioteca gráfica multiplataforma. 


  • Para Windows recomiendo ampliamente usar la distribución más actual de MingW, en concreto esta: http://nuwen.net/mingw.html (Evite usar Dev-C++ que su desarrollo ha sido parado, y si requiere un entorno gráfico use http://wxdsgn.sourceforge.net/ a pesar de también ya llevar 2 años sin actividad.)
  • En GNU/Linux: Instalar el compilador GCC desde su repositorio. ej. en debian like: sudo apt-get install build-essential
  • En Mac OS X: Instale sus herramientas de desarrollador que incluirán la versión más adecuada de GCC. 

No hay comentarios:

Publicar un comentario