Once upon a time there was a DOS user who saw Unix, and saw that it was good. After typing cp on his DOS machine at home, he downloaded GNU's unix tools ported to DOS and installed them. He rm'd, cp'd, and mv'd happily for many days, and upon finding elvis, he vi'd and was happy. After a long day at work (on a Unix box) he came home, started editing a file, and couldn't figure out why he couldn't suspend vi (w/ ctrl-z) to do a compile.
-- Erik Troan
DJGPP je vývojové prostředí pro DOS založené na GNU programech, které začal vyvíjet Dj Delorie. Jak píše, začal o tom uvažovat v roce 1986, kdy se ptal Richarda Stallmana, jestli GNU plánuje port pro DOS. Ten ale říkal, že to není možné, protože DOS nesplňuje předpoklady GCC na operační systém.
Od verze 2, která vznikla koncem roku 1996 je DJGPP jedním z nejlepších vývojových prostředích dostupných pro DOS. Vytváří plně 32 bitové programy, podobně jako Watcom C, které ale jsou DPMI clienty a proto není třeba žádný DOS extender, pouze DPMI server (pokud použijete velmi kvalitní server CSWDPMI dodávaný v DJGPP, máte k disposici i virtuální paměť apod.). Překladač GCC (GNU Compiler Collection) v poslední verzi 2.95 generuje v průměru nejrychlejší kód ze všech překladačů pro DOS (a ve vývojových verzích i lepší kód, než Visual C++ 6.0 či Intel Optimizing Compiler). Podporuje C, C++ (podpora C++ byla v poslední době výrazně vylepšena a je nyní jedna z nejlepších vůbec), Fortran, Chill, Pascal, ADA a experimentálně dokáže překládat i Javovský bytecode a Javu. Optimalizuje pro velikost, nebo rychlost. Dokáže generovat kód optimalizovaný pro 386, 486, Pentium, Pentium Pro (II, nebo III), nebo AMD-K6. Existuje i experimentální verze PGCC, která navíc podporuje K5, Cyrix a generování MMX instrukcí. Celé runtime prostředí se velmi pěkně snáší s Windows a dokonce má podporu pro dlouhé názvy a další rozšíření.
DJGPP obsahuje i mnoho dalších utilit pro vývoj programů a jsou k dispozici kvalitní knihovny, IDE a dokumentace. Díky těmto vlastnostnem se DJGPP dnes hodí zejména pro psaní specializovaných aplikací, her a pro výuku. Jinak se DOS dnes zřejmě moc nepoužívá. DJGPP ale dokáže generovat kód i pro Windows a pro prostředi Windows, OS/2 a jiných systémů existují podobná prostředí založená na stejných GNU programech. Přechod na taková prostředí z DJGPP je pak velmi snadný.
DJGPP je také výbornou ukázkou spolehlivosti vývoje free softwarových programů. Přesto, že komerční firmy vývoj překladačů pro DOS už dávno zastavily, DJGPP se vyvíjí dál, protože má stále dostatek přiznivců. Navíc všechny změny do GNU programů vyvíjených na modernějších platformách se odrazí i v jejich DJGPP verzích.
Oproti 16ti bitových překladačům (jako je Borland C) má ale i některé nevýhody. Zejména je to rychlost volání služeb DOSu a BIOSu. Jako v každé protected módové aplikaci v DOSu, každé takové volání si vynucuje několikanásobné přepínaní mezi v86 a protected modem. Takže čtení souboru je asi o 10% pomalejší. Druhá nevýhoda je velikost .exe souboru. Každý program obsahuje komplikovaný zavaděč a proto je velikost klasického hello worldu asi 30kb.
Pokud chcete nějaký příklad programů pod DJGPP, můžete zkusit třeba Quake, demo Hard Rox, Info-ZIP (teď archivuje i dlouhé názvy), GhostScript, Executor - emulátor MACu, WatTCP, Xemu, DESQview/X developers kit, real-time zoomer fraktálů XaoS, demo BB atd.
Více informací najdete na domácí stránce DJGPP (www.delorie.com).