A Digitalmars D programozási nyelv

Bevezetés

A Digitalmars D programozási nyelvet Walter Bright, a híres Zortech és Symantec C++ compiler-ek szerzője és a Digital Mars vezetője tervezte és valósította meg kollégái segítségével. Mivel a cég C/C++ compiler-t fejleszt, ilyen szemmel nézték a nyelvet. A fordítóprogram megvalósítása során összegyűjtött tapasztalatok alapján vetődött fel a gondolat, hogy létre kellene hozni egy új nyelvet, amely megtartja a C/C++ előnyös tulajdonságait, de kiküszöböli a hibáit, hátrányait és kiegészül olyan új ötletekkel, paradigmákkal, amelyek a C és a C++ tervezésekor még nem voltak ismertek. Az új nyelv innen kapta a D nevet, mivel a C/C++ meghaladásának szánták.

Ez egy általános célú, magas szintű, objektum-orientált programnyelv, amely képes hardverprogramozáshoz és az operációs rendszer függvényeinek a meghívásához is segítséget, interface-t adni. Jól használható közepes és nagy programok csoportos fejlesztéséhez; könnyen tanulható; hatékonyan segíti a programfejlesztőt és a compiler-e hatékony, jól optimalizált.

A nyelv elkészítésének szempontjai a következők voltak: A C és C++ programozók számára könnyen elsajátítható legyen. (Habár a nyelv nem kompatíbilis a C/C++-al, de a C++-ból könnyű D-re átírni a kódot.) Egy gyakorlott programozó nagyobb erőfeszítés nélkül megérthesse a nyelvet. A D compiler-t könnyű legyen megvalósítani, mivel a tokenizálás független a szintaxistól. Ne legyen szövegfeldolgozó preprocesszor. A C-ben mindenhol jelenlévő pointereket helyettesítse, illetve rejtse el, a hibák kiküszöbölése végett. A Design by Contract-ot (DBC) és a unit tesztelést építse be a nyelvbe, a megbízható programok előállításáért. A memóriakezelést egyszerűsítse a szemétgyűjtéssel.

A D nem script és nem interpretált nyelv, nincs VM (Virtual Machine), mint a Java-nál vagy a Smalltalk-nál. Nem alkalmas valós idejű programozáshoz; nagyon kis programokhoz sem ajánlott (arra a script nyelvek jobbak), valamint kezdőknek sem optimális, inkább második nyelvnek, középhaladó és haladó programozóknak szánták.

A D nyelvi szinten nem kompatibilis sem a C++, sem a C nyelvekkel, bár a szintaxis hasonlít hozzájuk. A nyelv tervezésekor fontos szerepet játszott, hogy elérhetőek legyenek a jelenlegi C nyelvhez készített függvénykönyvtárak, ennek megfelelően félig automatikus eszközök állnak rendelkezésre ahhoz, hogy egy meglévő C könyvtárat (header fileok illetve object file) D modulokba tudjuk importálni, és D függvényekként használni, őket.

A Digitalmars D programozási nyelvre ezen az oldalon belül terjedelmi okokból gyakran a fejlesztő cég nevének elhagyásával hivatkozunk, fontos, hogy ne keverjük össze a nyelvet más programozási nyelvekkel, amelyeket szintén D-nek neveztek el, mint például a SUN Microsystems Solaris operációs rendszerének DTrace nevű dinamikus trace-keretrendszer vezérlő nyelvét, amely hasonló szintaxisa ellenére alapjaiban különbözik a Digitalmars D nyelvtől.