Microsoft a jeho házení klacků pod nohy .NET vývojářům
MyEgo.cz
Microsoft a jeho házení klacků pod nohy .NET vývojářům
Ten jedinečný a úžasný MS mě dneska dokázal neskutečně vytočit. Nesnáším, když se „vnitropolitické“ zájmy staví nad použitelnost produktu. Jenže přesně to MS dost často dělá. Narazil jsem na další případ. Protože programuji v .NET, tak se pro grafiku automaticky nabízí Managed DirectX. To je takový zjednodušovací wrapper na DirectX z plnohodného „Cčka“. Jenže to by to nebyl MS, aby se nevykašlal u Managed DX na novou verzi. Lze tedy takto pracovat jen s DX9.
To by se samo o sobě ještě dalo, jenže ve Windows Vista jsou DX10, které pracují tak trochu jinak a funkcionalitu DX9 nenahrazují. Pokud tedy chcete spustit nějaký program v Managed DX, musíte do Vist nainstalovat extra DX9 stejně jako Windows XP bez SP2. Co je tohle za logiku. Visty potřebují celé DVD, ale v MS nejsou schopni na toto DVD přidat 50 MB instalaci DX9. Když k tomu připočtu dementní základní hlášky chyb programů v .NET, tak mám pocit, že je to snad jedině cílené házení klacků pod nohy vývojářům. Kdybych věděl, že s technologiemi MS je tolik problému ohledně kompatibility, snad bych radši použil open source alternativní řešení (takhle je nutné instalaci dodávat s aplikací a řešit problém navíc).
Nejvíc mě nakonec vytočilo, když jsem tento problém řešil s lidmi, které považuji za velké odborníky (programováním na produktech MS se živí a jde o velké kapacity), tak se mi dostalo jen odpovědi: „co bys nechtěl od Microsoftu... snad ne kompatibilitu?“
DirectX není nutná součást systému, potřebuješ ho jenom na hry a speciální aplikace. Na co by třeba byl na kancelářských počítačích? Prostě se musí přidat do instalátoru. Samozřejmě i já si myslím, že na DVD Visty ho přidat měli, ale stejně si ho nainstaluje skoro každá hra.
Chybové hlášky jsou v .NETu někdy divné, zvlášť na české verzi OS je ti blbci zlokalizovali, což absolutně nechápu. Ale chci tě vidět u alternativních open source řešeních, chybové hlášky na tom nebudou o nic lépe, dokumentace ještě mizernější a s OpenGL je problémů taky víc než dost. Zlatý DirectX.
Co se týče Managed DirectX, neexistuje pro DirectX 10, protože jeho vývoj prý už nepokračuje, nástupcem je XNA.
[1] XNA je pokud vim taky jen pro DX9.
S OpenGL jsem nikdy problém neměl. Ohledně kompatibility vítězí na plné čáře (ostatně už jenom z principu funkcí pomocí extenzí). Ostatně všechny OpenGL programy, co jsme s bratrem dělali už 7-8 let zpátky pořád perfektně běží i dnes. V případě kombinace s SDL pak člověk získá geniální multiplatformnost aniž by musel přepisovat víc než pár řádek kódu.
Jinak DX je dneska ve Windows nutnost. Všechny Windows (95+) měly v sobě DX, jen ve Vistách je DX10, který v sobě neobsahuje ty minulá (stále hodně používaná DX). Na kancelářském počítači se DX taky využije - třeba na vykreslování Aero okýnek. Celý problém není o DX ano/ne. Je to v té nekompatibilitě a záměrném znesnadňování.
Jinak srovnání: Na OGL a DX by mi moje simulace zabrala stejně času, programovala by se asi stejně komplikovaně, jen u OGL by pak nebyl problém s kompatibilitou. OGL je holt taková stálice (i když teď taky prochází odtučňovacíma kůrama a změnama). Příště už bych si asi DX nevybral.
[2] No, já jsem měl vždy s OpenGL jen a jen problémy, třeba ze začátku na Windows Vista ovladače některých karet prostě OpenGL nepodporovaly a běželo to všechno přes software processing na 2fps. Nebo jsem potřeboval novější verzi OpenGL než byla v systému a pak se mi různě hádaly různé aplikace.
A pořád nevidím problém s přibalením DirectX 9 do instalátoru aplikace, to je věc, která nezabere víc než 5 minut.
[3] Tady s v zásadě asi nedohodnem, protože ti půlku příspěvku nevěřim :).
Vista měla ve své finální (ne-cracknuté) verzi OpenGL na ATI/NVIDIA/Intel kartách (s v tu dobu nejnovějšími drivery) v pořádku. Bavit se o nějakých betaverzích je irelevantní.
Verze OpenGL je údaj (aspoň zatím) v podstatě irelevantní a vychází jen množiny podporovaných extenzí (a ty jsou na verzi OGL nezávislé). Chybu, že by si nějaká aplikace řekla o novější verzi OGL jsem viděl jen jednou. Šlo o nějakou hru v kombinaci s nějakými pochybnými drivery ATI. To už je ale hloupost aplikace.
U DX člověk vždycky řešil, pro jakou verzi program udělá... pro DX7, 8, 9,... U OGL to neřeší - prostě to udělá v OGL.
Jinak verze OGL je dána nainstalovaným ovladačem grafické karty. To s tou novější verzí a hádajícíma se programama navzájem vůbec nechápu.