DJGPP
Una toolchain vintage basada en GCC para MS-DOS, DJGPP, despierta una fuerte nostalgia entre programadores que aprendieron C/C++ y desarrollo de videojuegos con ella en los años 90, a menudo junto con bibliotecas como Allegro e IDEs como RHIDE. Los comentaristas destacan cómo abrió el acceso al desarrollo de 32 bits, a las herramientas GNU e incluso al propio Linux en una época en la que los compiladores comerciales eran caros, al tiempo que aclaran que DJGPP es un compilador orientado a DOS y no una capa completa de compatibilidad POSIX como Cygwin o Wine. A pesar de su antigüedad, aún recibe mantenimiento ocasional y se usa de forma nicho, y sirve como punto de referencia para reflexiones más amplias sobre las toolchains antiguas, la portabilidad y la evolución de los entornos de desarrollo.
Aprendizaje, nostalgia y trayectorias personales
- Muchos comentaristas aprendieron C/C++ (a menudo con libros clásicos) usando DJGPP en los 90.
- Patrón común: DJGPP + RHIDE + Allegro en DOS para los primeros juegos, gráficos y sonido.
- Varios describen la construcción de motores 2D/3D, experimentos con ensamblador inline y el uso de máquinas 386/486 desechadas.
- Para algunos, DJGPP fue la puerta de entrada a las herramientas GNU y, en última instancia, a instalar Linux (a menudo Slackware mediante disquetes y UMSDOS).
Qué es realmente DJGPP
- Se describe como una toolchain basada en GCC para MS‑DOS (y cajas DOS bajo Windows), no como Windows en sí.
- Permite programas de 32 bits en modo protegido con memoria plana, evitando las limitaciones de segmentación de 16 bits y los nombres 8.3 (cuando se usa bajo Windows 9x con LFN).
- Soporta C/C++ estándar, pero las funciones específicas de Linux o POSIX (por ejemplo,
fork) generalmente no están disponibles. - Varios participantes recalcan que no es como Wine; las analogías más cercanas son con mingw más que con Cygwin.
Desarrollo de videojuegos y Quake
- Muy usado con Allegro para juegos de DOS; la gente compara la API de nivel más alto y orientada a juegos de Allegro con el enfoque de nivel más bajo de SDL.
- Un hilo señala que DJGPP se utilizó para construir y distribuir Quake, tras un cambio desde Watcom + DOS/4GW.
- Al parecer, Watcom tenía mejor generación de código en aquella época; el rendimiento de Quake dependía sobre todo de ensamblador altamente optimizado a mano.
- Los beneficios de DJGPP incluían GCC multiplataforma, modificabilidad e integración con extensores DOS personalizados.
Toolchains, lenguajes y esfuerzos de 16 bits relacionados
- Menciones de otras toolchains históricas: emx+gcc en OS/2, OpenWatcom, Dev-C++, Code::Blocks.
- Esfuerzos modernos orientados a DOS: gcc-ia16 (port de GCC a 16 bits), Free Pascal, demos de Rust para DOS y un entorno DOS de JavaScript (DOjS).
- Recuerdos de una JVM para DOS (JavaPC, KaffePC) y la dificultad de encontrarla hoy.
Estado actual y uso continuado
- DJGPP todavía se sigue compilando; se enlazan ports de GCC 12.2 de hace unos ~18 meses.
- Alguien lo empaquetó recientemente para NixOS.
- El sentimiento general: gran afecto y nostalgia, con el reconocimiento de que las herramientas y sistemas operativos modernos son más fáciles y capaces, pero DJGPP sigue siendo una toolchain funcional y de nicho.
Debate sobre nombres y mayúsculas
- Amplio debate sobre si “DJGPP” debe ir siempre en mayúsculas, si es una palabra o un acrónimo, y cómo trata la ortografía inglesa las siglas.
- Algunos insisten en la capitalización prescrita por el creador; otros priorizan la preferencia del usuario y las convenciones de estilo.