Letos, stejně jako loni, se bude konat programátorská konference zaměřená na programovací jazyk D.
Konference proběhne v Berlíně, a to od 4. do 7. května. Podrobnější informace o programu a konferenci naleznete na oficiálních stránkách dconf.org.
Letos, stejně jako loni, se bude konat programátorská konference zaměřená na programovací jazyk D.
Konference proběhne v Berlíně, a to od 4. do 7. května. Podrobnější informace o programu a konferenci naleznete na oficiálních stránkách dconf.org.
Tato zprávička byla zaslána čtenářem serveru Root.cz pomocí formuláře Přidat zprávičku. Děkujeme!
Nevím, jak snadné je pro typického PHPčkaře si osvojit D, ale zběhlý céčkař nebo C++kař si na D zvykne prakticky okamžitě, respektive přísolvečná Learning Curve (jak se to proboha řekne česky?) je naprosto minimální. To je jeho obrovská výhoda pro podnikové prostředí, kde je každá hodina času vývojáře drahá a každá chvíle strávená pokusy a omyly s novým jazykem se bez vyjímky považuje za "neproduktivní". Rust holt patří do jiné rodiny jazyků, někdo ho někde trefně definoval jako "nízkoúrovňový OCaml" a díky tomu se do tohoto typu podniků hned tak nedostane. Ovšem zároveň je právě díky tomu tak zajímavý.
Pro PHPckare neni zadny problem si na jazyk D zvyknout, aspon to je zkusenost u nas v praci. Si pamatuji kdyz jsme s kolegou prepisovali jeden projekt z PHP do D a cela prace spocivala v tom ze se vzal soubor s php, prejmenovala se pripona, odstranily dolary a klicove slovo function, -> a :: se nahradilo za tecku a v podstate bylo hotovo :D.
V CZ ze niekto pouziva D? Ktora firma :p ? (ja som D musel opustit tak pred rokom prave kvoli praci)
Inak ak pouzivate D, hodte sa tu: http://dlang.org/orgs-using-d.html
Ja svuj vlastni binding nepsal. C api neni problem portovat jak z tak do D. Dokonce jde psta primo v D souboru C/C++ kod. D take pouziva kompatibilni binarky, takze se pouziva i C debugger pro D kod a tim padem se D
kod zvenci vola podobne jako .so/.dll.
Jen cloveka nesmi zaskocit velikost, D pouzivat GC, tak si to s sebou tahne vic kodu, pro to prostredi.
Binding na C++ je v nekterych pripadech problem (tusim nejake extremni pripady se sablonami atp., to ale maji problem prelozit jednotne i ruzne C++ prekladace). Hezke cteni napr. tady: https://dlang.org/spec/cpp_interface.html
Seznam projektu, kde je uz hodne veci hotovych: http://code.dlang.org
Na automticky export bindingu snad tusim taky existoval nejaky projekt.
Ja osobne pouzivam hlavne Derelict-* bindingy na Gtk+, OpenGL, FreeType, GLFW atp.
Python jsem vubec nezkousel. Ale googlit se neco dari a nejak by to melo jit. Ono D jde psat i jako skript... (ale kompilovany), takze ten pocit z toho psani pro tooly je podobny jak ve skriptovacim jazyce. Chapu ale, ze jde primarne o provolani existujicih kodu.
Myslim si, ze tohle je vhodny zpusob jak s tim zacit a osahat si to, psat v tom skritpy a male tooly. V linuxu prekvapive staci dat na zacatek souboru jen
#!/usr/bin/env rdmd
Viz https://dlang.org/rdmd.html
Dneska v praci na skriptovani misto pythonu pouzijte D ;)
Trochu to upresnim, v D nelze vylozene psat C nebo C++ kod (teda je zde projekt calypso(llvm), ktery umoznuje vylozene mixovat D a C++ ale to nepocitam), ale D je binarne kompatibilni s C a je mozne kod v D linkovat s kodem v C a castecne s C++.
Co se pouzivani C knihoven z jazyka D tyce tak je to velmi jednoduche, staci vzit hlavickovy soubor C knihovny, prejmenovat koncovku (.h) na (.d) a na zacatek souboru dopaset extern C: a par drobnych uprav. Nahradit typedef za alias, odstranit zbytecne stredniky atd. Uprav je treba vetsinou velmi malo. Da se to i automatizovat pomoci nastroje dstep.
Mnou rucne upravena hlavicka napriklad pro mysql client lib vypada napriklad takto:
https://dpaste.dzfl.pl/e646ea7841fc.
Co se spravy pameti tyce, tak je samozrejme brat na to zretel, pokud pouzivam ceckove knihovny musim se starat o pamet stejne jako bych se staral v Cecku. Samozrejme si to clovek muze obalit a spravu si zjednodusit pomoci RC.
Ohledne moznosti vyuzivani C++ knihoven, tak zde je bud moznost si vytvorit C wrapper nad C++, ten lze pak pouzit stejne jako C knihovna a nebo vyuzit moznosti jazyka D, ktere umoznuji primo volani metod a i vyuzivani objektu z C++. To se resi pomoci extern C++ directivy. Nevyhodou je ze to ma zatim pomerne dost limitu (Zakladni veci funguji, ale problem je napriklad se sablonama, tam je treba aby byla sablona instanciovana, potom je teoreticky mozne vuci ni linkovat). Na jednodusi veci je to dobre pouzitelne, ale na vetsi projekty jako Qt to zatim, a mozna nikdy, nebude. Krom C a C++, je zde i podpora pro Objective-C.
Co se moznosti propojeni pythonu a D tyce, tak s CPythonem neni problem, viz https://code.dlang.org/packages/pyd, tady se ted bavim ale zejmena o smeru volani deckoveho kodu z pythonu. Obracene me to nikdy nezajimalo, takze nevim. I s Javou je to ok, da se vyuzit JNI.
Jinak co se tyce volani D kodu z C/C++ tak to je opet velmi snadne, jelikoz je D ABI kompatibilni s Ceckem tak je to jako by jste volali kod ktery byl napsan v C/C++. Na co je treba si dat pozor je to, ze je treba pred pouzitim volani funkci z kodu Decka spustit inicializaci D runtime, pokud teda nas D kod vyuziva veci jako GC a podobne. Dale je treba brat v uvahu ze D defaultne globalni promenne ma v TLS.