Bystroushaak's blog / Czech section / Programování / Programovací jazyk D

Programovací jazyk D

Před pár lety, když jsem ještě chodil na střední školu nám mistr na praxi vyprávěl o tom jak před dlouhou dobou dělal pro nějakou rodinu elektriku v baráku. Jelikož byl poctivý řemeslník, rozuměl své práci a odvedl jí dobře, pozvali ho na kafe a povídali si s ním. Tenkrát ho zaujalo, že měli uprostřed obýváku na zemi položený velký a dlouhý trám, který všichni přeskakovali a dělali jako kdyby tam nebyl. Nejdříve se na to ze slušnosti nechtěl zeptat, ale jelikož to byl zvídavý člověk, vrtalo mu to hlavou a nakonec neodolal a vznesl dotaz proč že to mají ten trám uprostřed obýváku, když jim tam překáží. Dostalo se mu odpovědi že už tam tak ležel když dům někdy před dvaceti lety koupili. Bylo mu to trochu divné, tak se zeptal proč ho nikdo z nich neodstranil. "My ho tam nedali," řekla mu paní domu a brala celou věc za vyřízenou.

Nevím nakolik je tenhle příběh pravdivý a nakolik si ho mistr tenkrát vymyslel, ale úplně stejné mi to přijde s programovacími jazyky. Existuje 1337 programovacích jazyků, jeden dementnější než druhý. Více/méně všechny široce používané si s sebou táhnou podivné dědictví různých trámů, které jsou navršené v obývácích a nutí programátora je podlejzat, přeskakovat a snažit se aby náhodou nějaký neshodil. Často se přitom nejedná o nic jiného, než o dementní syntaxi, kterou by šlo lehce vyřešit, kdyby se ovšem někomu chtělo daný trám odnést a poslat do prdele členy rodiny kteří si budou stěžovat že bez něj to už není ono.

Je opravdu obdivuhodné, že jednou za čas se mezi tvůrci najde někdo, kdo dokáže myslet trochu jinak než většina a odstranit většinu trámů, ba co víc, dokonce ještě vybílit zdi a přidat pohodlnou sedací soupravu, na které je vskutku radost sedět. Mezi tyto tvůrce patří kromě Guida van Rossuma (tvůrce jazyka python) i Walter Bright.

C++ fucking sucks

Na začátku jsem se naučil pascal. Byla to doba kdy jsem na programování měl jen jeden názor - fuck yeah! Později jsem nakousl PHP, naučil se python, absolvoval rok basicu, dva roky středoškolské výuky s C++, dva semestry vysokoškolských kurzů javy, semestr C/C++, semestr JavaScriptu/PHP a semestr C#. Během té doby jsem si škrtl i o různé obskurní jazyky, ale většinou se jednalo o věci které ani nemá cenu zmiňovat a už jsem je prakticky zapomněl a navíc si procvičoval dovednosti snad ve všem, kromě pascalu. Pokaždé když jsem v té době měl vytvořit nějaký kompilovaný program, připadalo mi, že cokoliv v čem bych ho dokázal napsat stojí za naprostou vyližprdel. Bylo to jako kdybych si zkoušel kabáty a žádný mi nesedl. V jednom jsem mohl nemohl roztáhnout ruce, ve druhém je zase dát k sobě a třetí se nedal dopnout.

Během té doby jsem strávil několik večerů hledáním na netu. Na IRC se mi smáli, že dokonalý jazyk neexistuje, že nemá cenu se namáhat, ale stejně jsem googlil a zkoušel. Když už jsem byl jen kousek od toho to vzdát, vzpomněl jsem si, že kdysi dávno, když jsem byl ještě totální IRC nováček, vyskytoval se na mém prvním kanálu člověk pod nickem DarkCraft, který si pochvaloval D. Trochu jsem zagooglil a zjistil jsem, že zrovna před nedávnem vyšla revoluční, druhá verze - D2.

Pustil jsem se do čtení a zjistil jsem, že Walter Bright měl podobný názor jako já - C++ smrdí. Nezískal ten názor tím že by si ho zkusil na střední/vysoké škole, ale poté co pracoval dlouhá léta jako programátor a mimo jiné si napsal vlastní, komerčně úspěšný kompilátor C++. I ten největší C++lover snad musí uznat, že nejspíš věděl o čem mluvil. Walter si uvědomil, že C++ má pošahanou syntaxi a navíc programátorovi hází trámy pod nohy, proto se rozhodl vytvořit nový, lepší jazyk. Jelikož se jeho firma jmenovala DigitalMars, pojmenoval jej Mars. S tím jak se komunita jazyka Mars rozrůstala, začali se objevovat lidé, kterým se jazyk líbil a začali ho místo Mars nazývat prostě D, aby dali najevo že se jedná o něco lepšího jak C++. Postupně se tento název ujal natolik, že i samotný Walter ho přijal za vlastní a v dnešní době už se na původní jméno prakticky zapomnělo.

D

Jazyk D je systémový, kompilovaný programovací jazyk. Je to také jediný kompilovaný jazyk ve kterém mě skutečně baví programovat, podobně jako třeba v pythonu. Žádné kreténské .h soubory, rozdíly mezi definicí metody v těle třídy a za třídou, dementní stringy, couty a ciny, makra jak ze středověku a podivné erorry při používání šablon. Naopak - spousta vychytávek jako jsou asociativní pole, pohodlné foreach, moduly, ucházející API, porovnávání polí operátorem porovnání (==), nikoliv pomocí obskurních metod z jakéhosi API, vlastní operátor pro porovnání referencí (is), operátor pro spojování polí a strigů (~), plná podpora UTF atp..

Nevím jak bych měl tento pocit z D přiblížit někomu kdo v něm nikdy nedělal, proto se prostě budete muset spokojit s tím, že o něm prohlásím že je skutečně příjemný a promyšlený, s minimem trámů které by bylo třeba přeskakovat a podlejzat. D mě baví - proto jsem o něm založil české stránky a napsal tento článek.

Pokud se mi podařilo navodit ve vás pocit že D není úplně marný, zkuste se podívat na czwiki4d, popřípadě další odkazy které jsem uvedl:

Heh, "závěr"

Na závěr bych se chci zmínit o excelentní knize The D programming Language. Dá se sehnat i v elektronické verzi (oficiálně i neoficiálně), osobně jsem si koupil k vánocům papírovou. Četl jsem už několik knih o programování a programovacích jazycích (mimo jiné třeba Programovací jazyk C od Kernighana a Ritchieho), ale žádná mě ani zdaleka nenadchla tak jako tato.

Rozdíl mezi touhle knihou a běžnými příručkami je asi takový, jako mezi čerstvě vystudovanou učitelkou češtiny která u nás ve čtvrťáku po půl roce vyhořela (prý odešla radši učit na mateřskou školku) a pánem v důchodu, který nastoupil po ní. Nejen že dokázal podat češtinu zajímavým způsobem (!!!), ale navíc to pro něj byl koníček a uměl vysvětlit i kde se to v našem jazyce vzalo, proč to vzniklo a jak se to rozšířilo..

Become a Patron