Romboljunk mítoszt!

Címkék

Ez a cikk elsősorban azoknak szól, akiknek van néhány éves más operációs rendszeren végzett szoftverfejlesztő gyakorlata, és a marketingesek "megettették" őket linuxszal kapcsolatos mítoszokkal. A DevChannel összegyűjtötte a jelentősebb mítoszok cáfolatát.

  • Mítosz: A linuxnak nincs komponensmodellje

    Kétségtelen, hogyha az MFC-t, COM-ot és az ActiveX-et keresed azt itt nem találod.

    Minden linuxszos desktop-nak megvan a saját objektum modellje.

    A GNOME-nak a bonobo, ami egy CORBA implementáció. A GUI elemeket hasonlóan kell kezelni, mint a MFC-ben, a nem GUI elemek használata a COM/DCOM és az OpenDoc-hoz hasonlít.

    A KDE-nek ott a KParts a saját MFC-hez hasonló komponenseivel.

    Speciálisabb célokra az OpenOffice.org, vagy a Mozilla komponensei valók.

    Azok a programozók, akik Linuxra akarnak fejleszteni, de elég öregek ahhoz, hogy semmi újat nem akarnak megtanulni, azok számára a WINE projekt COM, DCOM implementációja ajánlott, bár el kell mondani, hogy ez nem teljes. A .NET implementáció a Mono.
  • Mítosz: Kevés nyelven lehet programozni Linuxra, és nincs grafikus IDE

    Bár az FSF honlapját olvasva úgy tűnik, hogy az egyetlen professzionális nyelv a Linuxra a C, de az igazság az, hogy minden programnyelvhez létezik fordító sok különféle IDE-vel.

    Az Emacs vs. vi csaták teljesen hasonlóak a Linux vs. Windows csatákhoz. Mindkét környezet tartalmaz támogatást gyakorlatilag az összes programozás közben felmerülő problémára.

    Grafikus IDE-k közül a GNOME az Anjuta-t ajánlja a programozásra, a gyors grafikus felület építésre pedig a Glade-et. A KDevelop hasonló funkcionaitást kínál a KDE-hez.

    Az IBM által indított Eclipse projekt a JAVA fejlesztésekhez kínál segítséget.
  • Mítosz: DirectX. DirectX. DirectX!

    Nincs.

    A Linuxban nincs egyetlen DirectX-hez hasonló könyvtár sem, viszont van több választási lehetőség:

    OpenAL: keresztplatformos 3D hang API (akik használják: Unreal 2, Soldier of Fortune)

    SDL: keresztplatformos 2D, 3D, audio, video, input, window, font könyvtár.

    És természetesen OpenGL.

    Az eredeti cikket megtalálod itt

  • Hozzászólások

    Hát, azért ez eleg gyengécske mítoszrombolás:

    - COM: nagyon *****a, hogy egy csomo hasonlo dolog kozul valaszthatunk, de a COM lenyege pont az, hogy egyetlen felulet van, ami gyakorlatilag az osszes platformbol programozhato, es nem kell torodnom azzal, hogy a masik alkalmazas, amivel kommunikalni probalok mit hasznal, milyen konyvtarai vannak stb. Sokkal egyszerubb igy pl pluginokat, kiegeszitoket fejleszteni. A masik irany: Egy jol felepitett COM-os program (pl Office cuccok) tokeletesen vezerelheto c, c++, javascript, python, perl, vb, stb programokbol, nincs az ember hozzakotve egyetlen kornyezethez. Ez k jo dolog, aki hasznalt mar COM-ot az tudja miert. (Ja es persze az egesz mukodik remote is, ehhez semmit nem kell valtoztatni az alkalmazasokon). Talan az XPCOM all a legkozelebb ezekhez a dolgokhoz, de a lenyeg hogy ezt a funkcionalitast az os-nek kellene biztositania, es minden alkalmazasnak egysegesen ezt kellene hasznalnia.

    IDE: ehhez nem tudok hozzaszolni, XEmacsot hasznalok mindenhol.

    DirectX: SDL-re nem fejlesztenek a nagy cegek, OpenGL is ritka mint a feher hollo (ennek nem tudom mi az oka). Itt mindenkepp az lenne a cel, hogy olyan kornyezetet alakitsanak ki, hogy a jatekgyartoknak minimalis tobbletkoltseget jelentsen multiplatformosra fejleszteni. Vagy DirectX kell linuxra (is), vagy nagyon jo SDL Windowsra (is).

    netchan

    COM: jo az otlet, de ez a leglasabb modszer, amivel objektumot lehet maceralni. azon tul olyan hiabi vannak, amiken soha nem fog tudni tovabblepni. teny, hogy egy kozos felulet kene linux-ra is. nem ezer kulonbozo.

    IDE: csak az eclipse rughat labdaba, de az ha java programozasrol van szo, tarol mindenkit. gui gyartas grafikusan... hat , az meg nem az igazi. (glade sem nyero, ha gtk2-rol es c++ rol van szo) a qt meg meg mindig fizetos, ha keresztplatformos programrol van szo.

    directx: azert megy csak ez, mert az opengl implementaciok nem tudjak kovetni (a nem dokumentalt?) szabvanyokat. linux alatt ha vert izzadsz se tudsz egy hipermodern 3D kartyat kezelni, annak minden elonyevel, mert nem dokumentalt. (ugye jol tudom)

    >ha vert izzadsz se tudsz egy hipermodern 3D kartyat kezelni, annak minden elonyevel, mert nem dokumentalt. (ugye jol tudom)

    Tudnam, hogy akkor az olyan hiper modern jatekok, mint az Unreal Tournament 2004 (nincs ket honapja h megjelent Windowsra es Linuxra) hogy a banatba futnak 7/24-ben a gepemen lassan egy honapja...

    > IDE: csak az eclipse rughat labdaba, de az ha java

    > programozasrol van szo, tarol mindenkit. gui gyartas

    > grafikusan... hat , az meg nem az igazi. (glade sem

    > nyero, ha gtk2-rol es c++ rol van szo) a qt meg meg

    > mindig fizetos, ha keresztplatformos programrol van

    > szo.

    Probáltad már a -ot...? Mondjuk a Qt Designerrel elég ütős. És persze az Anjuta sem rossz... :)

    > directx: azert megy csak ez, mert az opengl

    > implementaciok nem tudjak kovetni (a nem dokumentalt?)

    > szabvanyokat. linux alatt ha vert izzadsz se tudsz egy

    > hipermodern 3D kartyat kezelni, annak minden elonyevel,

    > mert nem dokumentalt. (ugye jol tudom)

    Olvasnivaló:

    http://portal.fsn.hu/modules.php?name=News&file=article&sid=3982

    http://www.3dlabs.com/support/developer/ogl2/index.htm [www.3dlabs.com]

    anjuta nekem mint notepad++ jol ment, de mint IDE nem jott be. nagyon nem jott be, de hat ez szubjektiv. lehet, elkenyelmesedtem az eclipse-ben :) anjutaban talan az nem tetszett, hogy a gui beanyazassal, wizardjaival allandoan bajok voltak, a ctags kezelese sem ment nekem eleg gyakran. persze, sima editornak elmegy.

    kdevelop alitolag eleg jo lett. regebben nem tetszett :)

    opengl + linux: azt hiszem, itt az implementacion van a hangsuly.

    most szerinted van olyan rendszer (gui + opengl implementacio) amivel kuzdelem nelkul lehet komoly, modern 3D cuccokat programozni?

    Tudnam, hogy akkor az olyan hiper modern jatekok, mint az Unreal Tournament 2004

    Azert a keresztplatformos hipernmodern jatekok felsorolasat nem tudnad tul sokaig folytatni. Mindig van 1-2 gyarto (pl ID software), ahol mar eleve ugy tervezik a programokat, hogy azt konnyen lehessen, de sajnos ok vannak elenyeszo kisebbsegben.

    > ugye jol tudom

    nem.

    sot.

    directx-bol sokkal surubben adnak ki ujat, ellenben csak azokat a funkciokat tudod hasznalni, amit a telepitett dx tamogat.

    opengl-bol par evente van csak uj, de az uj itt csak annyit jelent, hogy uj verziot adnak ki a szabvanybol es az elterjedt, bevalt uj dolgok belekerulnek a hvatalos spec-be. attol meg tudod hasznalni regebbi opengl-el is.

    nyilvan ezek elegge kartyaspecifikusak (pl. NV_... az nvidia extensionok stb) de ma mar ugyis kulon megirjak/optimaljak kulonbozo kartyakra a 3d engineket, mert pl. tok mashogy mukodik egy nv vagy egy ati pipeline. ahogy amd es intel procikra is kulon optimalnak assemblyben pl. codeceket...

    amugy ezek nem titkosak, felmesz pl. ati honlapra, bereggelsz developernek es letoltheted az opengl extensionjaik doksijat. ugyanez nvidiara. sot, peldaprogikat is tolthetsz.

    annak, hogy windozon a directx van elterjedve, az az oka, hogy hiper fosok a windozos opengl implementaciok, legalabbis par eve meg az volt. talan az nvidia detonator driverek hoztak ebben anno attorest, azota mar jobb a helyzet, es azota vannak wines gamek is amik opengl-t hasznalnak dx helyett.

    erdekes, hogy az sgi-nek akik azert kicsit elorebb jarnak 3d-ben mai napig megfelel az opengl mindenre. de barmilyen nem-x86-pc platformot megnezel, opengl van es jol megvannak vele a kulonfele CAD es 3D programok.

    Az SDL-t meg el kene mar felejteni, sosem volt alkalmas komolyabb feladatokra. Az arra jo, ha irsz egy tetris-t akkor kis energiaraforditassal windozon es mac-en is fog menni. de ha mar sebesseg kell vagy barmi extra ami az alap sdl api-ban nincs benne, akkor felejtheto.

    Raadasul full bugos meg mindig.

    A'rpi