saxus (statz) | #9, Agyfasz (419) |
6130 | #1bdf | ^ | Idézet | Tue, 17 Apr 2012 15:00:53 +02 |
84.3.*.* | *.catv.pool.telekom.hu |
Tippre lassabb lesz, mint a C. Anno nézegettem, hogy melyik fordító mit optimalizál ki és mit nem (BDS2005, C#2.0 v C#3.5, MSVC++2005 v 2008, már nem emlékszem). Hát... C++ -hoz képest a BDS triviális dolgokat sem feltétlen optimalizált ki.
Uhum, és azért a ciklus az egy viszonylag ritkán használt fogalom ugye? Attól, hogy jelenleg minden arra van ráálva, hogy egy szálon csinálsz mindent (UI Thread ismerős valakinek?), attól még szépen lassan el lehetne kezdeni gonodlkodni azon, hogy mit hogyan lehet párhuzamosítani. Meglehetősen sok mindent lehet.
Write only? Az erőforrásigényes részekre kell koncentrálni nem azokra, amelyeknél tökmindegy.
Delhpi VCL egy baromi nagy réteg a Windows saját GUI-ja felett, amelyet - breaking news - sokáig tart inicializálni egy MFC-hez képest. ;) Csak épp mindenki leszarja, mert annyival nem lassabb, mint amennyivel gyorsabb vele dolgozni. WinForms, WPF detto, főleg, hogy a WPF a WinFormshoz képest képes kihasználni a DirectX-et is.
Na de mennyi CPU időt vesz el az a sok lib? :) .NET meg a Java sem a nyelv miatt lassú, hanem a sok-sok osztálykönyvtár miatt, ami miatt gyors lesz a fejlesztés. Na meg az egyéb kényelmi dolgok miatt (tisztább syntax, új nyelvi featurek, sok egyéb menedzselt dolog, amit levesz a válladról a VM, ami alatta van, stb.)
Tévedsz. A virtuális memória kezelésében a CPU csak hardveres támogatást nyújt, de az operációs rendszer is részt vesz benne. Ld. a swapolás megvalósítása szoftveres. Egyébként igen, a C is csinálhat ilyen átrendezgetéseket, csak épp nem a háttérben egy külön szálon, hanem egy szálon, mikor malloc()-olsz. Másrészt a virtuális címtér (amit a programodban látsz) és a fizikai címtér (amit a programodból nemigazán látsz, csak OS szinten) az eléggé két különböző dolog.
Egyik patternre sem mondtam, hogy mai találmány lenne (A Design patterns című könyv pl. 94-es és az is összefoglalni igyekezett a patterneket), csupán weben jött be, mint új fogalom, mert rájöttek, hogy ott is csak kellene valami rendszer a káoszba. De megjegyzem, az MVC, vagy az MVVM, meg a DIC, sőt még egy kósza abstract factory sem arra szolgál, hogy gyorsabb legyen a szoftvered, hanem arra, hogy átláthatóbb és rugalmasan bővíthetőbb. Meg hogy ne egy mindent keresztül-kasul hivogató cucc legyen a szoftver.
Írjad, van rá három napod.
Miért, mit vártál? Több CPU idő -> nagyobb, szebb, részletesebb grafika. Na meg programozható pixel/vertex/texture/uniform shaderek. Mellesleg az egész 3D grafikás mizériának a "mellékterméke" a GPGPU, amivel viszont párhuzamosíott matekolást nagyon durván jól lehet csinálni.
Uhum. És csinálja a fordító meg ;) A példakódod meg nagyon jól mutatja, hogy nem tudod, hogy mire jó az OOP.
Azzal egyetértek, hogy túl sok a kontár. Viszont valahol pozitívnak tartom, hogy kevesebb időt kell bizonyos technikai dolgokra fecsérelni és több marad a konkrét feladatra. És igen, ebbe beletartozik az is, hogy hol milyen algoritmus, milyen adatstruktúrával, stb. Probléma az, hogy ezek használatához (főleg, ha az ember jól akarja csinálni) ugyanúgy kell tudás, ráadásul OOP-ben jól tervezni nehéz. Ezt mindenki elismeri.
Ácsi, a Java meg a C# nem erlang, meg lisp, imperatív az is ;) Csak az OOP itt segít pl. azzal, hogy nem szükséges ismerned még az osztályt sem, bőven elég az interface-ját. Amikor egy modulból meg akarsz hívni egy másikat, pl. egy DIC-ből* elkérsz egy adott interface-jű objectet és azon keresztül birizgálod. Így a modul a háttérben teljesen jól cserélhető, önállóan egységtesztelhető, stb. * A DIC is egy érdekes állatfaj és vannak hátrányai, de vannak dolgok, amire pl. jó. Ez pl. egy ilyen. C way ezzel szemben pl. az lehetne, hogy fogsz egy függvénypointert és/vagy egy structot függvénypointerekkel és azon keresztül mókolsz. Ilyen pl. egy drivernek az interface-ja valamelyik oprendszerben. (Talán FreeBSD, nem emlékszem már.). Szvsz, akkor már inkább legyen nyelvi feature, biztosabb, hogy a fordító betartat dolgokat. |