Citat:
A Windows nije? Od otvorenih biblioteka kojih nema na Windowsu mi jedino pada na pamet Xlib. Dobro, de, u Windows C programima se ne mogu koristiti fork(), getrusage() i još štošta.
Meni konkretno padaju na pamet detalji vezani za moju uzu struku.
FFMpeg (koji je prakticno svugde po multimedijalnim projektima) njihov originalni tim glasno i jasno sasvim marginalno
podrzava na Windows-u. Naravno, postoji i ta mogucnost, postoji sajt sa ready made DLL-ovima, ali da kompajliras iz
source-ova (narocito sa VisualStudio u kojem ces najverovatnije da dizajniras i teras sve vezano za DirectX) su jezeve
muke.
Slicna stvar je i sa X264 projektom. Postoje recepti kako sve to uraditi sa MinGW, koji ne stizu u tacnoj i kompletnoj
formi, pa posle perioda zuljanja, na kraju dobijes binaries i to radi, ali sve su sanse da neces moci da prosetas debugger
kroz taj kod.
Dakle, nije nemoguce, ali je nesrazmerno komplikovano. Windows se de facto izbacuje iz podrske.
S druge strane, iz cisto poslovnog ugla:
Ako projekat pristojne velicine kompajlira na Linux desktop-u, vrlo su velike sanse da ce za uvrh glave dan-dva posla da
kompajlira i na Android native strani, kao i na OS-X-u.
Ako projekat pristojne velicine kompajlira na Windows-u, zahtevace minimum par nedelja da bi se portovalo, izuzev ako
nije pisano sa 'cross-platform' pristupom od samog pocetka.
Citat:
Pa konzolni C programi se valjda mogu pisati i pod Windows-om.
Naravno da mogu. Vec si rekao (fork()...) zasto je portabilnost verovatno umanjena.
Citat:
Pa, znaš šta, VC++ nije jedini C++ kompajler za Windows (ima i GCC), a postoje i drugi jezici, a što se ušuškavanja tiče, mogao bi da pojasniš na šta konkretno misliš.
Teoretski, nije VC jedini, ali ako ista ozbiljnije radis sto integrise dve ili vise tehnologije (recimo: media + internet) od kojih
je jedno reseno na vrlo platform-specific nacin (a drugo poprilicno), bez VisualStudio-a neces daleko stici. Sta god pokusas
da radis, sustizu te zezovi oko nerazresenih include-ova, razne nekompatibilinosti (nebitno cije), itd.
Sto se ususkavanja tice:
Pre nekih 15 godina sam bio u timu od nekih 20-tak inzenjera u firmi cija je linija Windows proizvoda drzala 50% planetarnog
marketa u consumer domenu. Negde u cosku, jako povucen bio je i jedan lik za kojeg uopste nije bilo lako provaliti ko je i cime
se bavi. Pitam za ruckom jednog kolegu koji je bio duze u firmi - kaze 'on je nas build inzenjer - dizajnira strukturu build sistema,
razresava dependencies, juri probleme sa simbolima po DLL-ovima, pravi customer/BIOS/...specific builds itd'. Mi ostali, naravno,
bili smo u svojim uzim specijalnostima, i osim najbanalnijeg minimuma (a-ha, to je DLL, treba da se iskopira u post-build step-u
na tu i tu lokaciju), nismo uopste lupali glavu ni sa cime sto nije bila najuza profesija (video/audio/DSP/GUI/stagod).
Danas su stvari dosle do nivoa da se od individualnog developera bez obzira na uzu specijalnost ocekuje da kompletno vlada
svim pitanjima vezanim za build, da neprestano njuska po literaturi vezanoj za linkere, juri missing symbols, trazi pravi flag,
pravi recursive build konfiguracije itd itd.
Na Linux-u je to svakodnevica manje-vise od prvih par meseci. Na Windows-u moze da se jako dugo prozivi bez da ikada moras
da zaviris u taj deo price koji je potpuno pokriven tool/project specificnim fajlovima. O razlikama konfiguracije prakticno nikada ne
mislis.