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.