abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 15:11 | Nová verze

    Byla vydána (𝕏) nová verze 9.5 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    dnes 11:44 | IT novinky

    Společnost Raspberry Pi dnes vstoupila na Londýnskou burzu jako Raspberry Pi Holdings plc (investor).

    Ladislav Hagara | Komentářů: 0
    dnes 01:22 | IT novinky

    Do 17. června do 19:00 běží na Steamu přehlídka nadcházejících her Festival Steam Next | červen 2024 doplněná demoverzemi, přenosy a dalšími aktivitami. Demoverze lze hrát zdarma.

    Ladislav Hagara | Komentářů: 0
    včera 22:33 | IT novinky

    Apple na své vývojářské konferenci WWDC24 (Worldwide Developers Conference, keynote) představil řadu novinek: svou umělou inteligenci pojmenovanou jednoduše Apple Intelligence, iOS 18, visionOS 2, macOS Sequoia, iPadOS 18, watchOS 11, …

    Ladislav Hagara | Komentářů: 7
    včera 21:44 | Nová verze

    Vyšla nová verze XMPP (Jabber) klienta Gajim, která přidává podporu reakcí pomocí emoji (XEP-0444: Message Reactions) a citace zpráv (XEP-0461: Message Replies). Přehled dalších vylepšení je k dispozici na oficiálních stránkách.

    sonicpp | Komentářů: 1
    včera 15:00 | Nová verze

    Po po téměř roce vývoje od vydání verze 5.38 byla vydána nová stabilní verze 5.40 programovacího jazyka Perl (Wikipedie). Do vývoje se zapojilo 75 vývojářů. Změněno bylo přibližně 160 tisíc řádků v 1 500 souborech. Přehled novinek a změn v podrobném seznamu.

    Ladislav Hagara | Komentářů: 7
    včera 12:00 | Zajímavý článek

    Uroš Popović popisuje, jak si nastavit Linux na desce jako Raspberry Pi Zero, aby je šlo používat jako USB „flešku“.

    Fluttershy, yay! | Komentářů: 1
    včera 08:44 | Zajímavý software

    Andreas Kling oznámil, že jelikož už se nevěnuje nezávislému operačnímu systému SerenityOS, ale výhradně jeho webovému prohlížeči Ladybird, přičemž vyvíjí primárně na Linuxu, SerenityOS opustí a Ladybird bude nově samostatný projekt (nový web, repozitář na GitHubu).

    Fluttershy, yay! | Komentářů: 2
    včera 02:22 | Nová verze

    Po dvou měsících vývoje byla vydána nová verze 0.13.0 programovacího jazyka Zig (GitHub, Wikipedie). Přispělo 73 vývojářů. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    8.6. 17:55 | Komunita

    Na čem aktuálně pracují vývojáři GNOME a KDE? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE.

    Ladislav Hagara | Komentářů: 11
    Rozcestník
    Štítky: není přiřazen žádný štítek


    Vložit další komentář
    Sešívaný avatar 29.10.2008 01:33 Sešívaný | skóre: 23 | Brno
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Empathy je hlavně zatím naprosto nepoužitelné. Pamatuji se, že to v jedné z vývojových verzí Ubuntu zatuhlo pokaždé, když chtěl člověk při psaní zprávy zmáčknout mezerník. To už je sice vyřešené, ale i tak to padá při mnoha dalších příležitostech. Když ještě vezmu v úvahu, že to nic neumí, tak je to spíš příslib do budoucna, rozhodně se to nedá používat. Otázkou zůstává, jestli to ještě nemělo zůstat ve vývojové větvi, uživatelé GNOME přece jen nejsou na takové padavky zvyklí :-)
    29.10.2008 05:10 Deleted [8409] | skóre: 14 | blog: darkblog
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    U gnome a gtk obdivuju, že se najdou lidé, kteří začnou psát aplikaci v C. Asi jsem zhýčkaný jazykem C++, ale opravdu si nedovedu představit programování bez dědičnosti, šablon, virtuálních metod a na každou hloupost psát šílené #makra.

    Navíc v C++ se dá udělat to samé co v C, tak proč se o to připravovat ? Proč zabírat čas psaním totálně redundantních zdrojáků, kde prvních 40 písmen na každém řádku je prefix_knihovny_nazev_objektu_co_chcem_[get|set|do_it|dont_do_it|...] ?

    Jako fakt mě to zajímá, jestli to vývojářům připadá přehledné a dlouhodobě udržitelné ? Já když vidím takový kód tak jsem šťastný, že jsem poznal C++ a docela dobře se ho naučil.

    Pro rýpaly: tento text nemá nic společného s Qt. Jde mi jen o preferenci jazyka vývojářů Gtk aplikací. Mám totiž pocit, že protože Gtk je v C, tak se všichni snaží psát taky v C, aby neporušily tento zvyk (je totiž pekelně obtížné napojovat aplikaci v C na knihovny v C++, ale na druhou stranu většina těchto knihoven v C má svoje bindingy v C++).

    GObject šílenci mě teď asi ukamenujou - do toho! :)
    29.10.2008 07:11 freshmouse
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    29.10.2008 16:25 Deleted [8409] | skóre: 14 | blog: darkblog
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Já to znám, ale ještě jsem neviděl ani jednu aplikaci používající Vala. Může se zdát, že díky kompilaci do C to bude rychlé, ale ten vygenerovaný kód je otřesný.
    29.10.2008 19:01 freshmouse
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Alespoň v omezené míře to používá např. Seahorse...
    29.10.2008 07:14 Sid
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    To je asi skor uhol pohladu,niekto by sa mohol pousmiat nad vami, ze preco C++ ked je tu python,... :) myslim ale ze pre programatorov jazyk az tak nehra rolu - ide skor o kniznice a hlavne kvalitu navrhu kniznic. Ci nieco napisem o +- nn riadkov kratsie je vcelku fuk ale ked ma obmedzuje kniznica stupidnym navrhom tak je to problem. Mozno ze toto je problem ze preco C a nie C++. Mozno ten binding pre C++ nie je az tak uzasny. ale neviem, nevidel som, takze cista spekulacia :)
    29.10.2008 07:46 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    C++ a python je dost jiny vztah nez C++ a C. Zatimco C++ a C jsou vykonove ekvivalentni (C++ sice vykonnostne vede, ale to si odmysleme) je python nekde uplne jinde.
    Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
    hwsoft avatar 29.10.2008 10:22 hwsoft | skóre: 19
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Co myslis tim vykonem? Rychlost psani kodu nebo efektivitu vykonani? Psal jsem v obojim a Cko je pro me jasnym favoritem, je predvidatelne a efektivni pro psani mych aplikaci.

    Zazil jsem maxi aplikaci v MVC++ a skoncilo to prepsanim do C a zrusenim DCOMu kvuli neschopnosti postavit dostatecne vykony server pro spusteni aplikace. C++ vyjma mnohych vyhod, ma i sve mouchy a tou je vetsi pametova narocnost a pomalejsi beh (*dan za vetsi robustnost)
    29.10.2008 11:14 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Vykonem myslim rychlost vysledne binarky. A samozrejme ze C++ je vyhodnejsi i z pohledu rychlosti psani kodu (vuci C), na skriptovaci jazyky samozrejme nema.
    Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
    hwsoft avatar 29.10.2008 16:42 hwsoft | skóre: 19
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    To lzes, binarka v C je obecne vzdy rychlejsi nez v C++, coz je dano architekturou jazyka. Staci se podivat do vysledne binarky, nakonec pokusy s linux kernelem skoncili prave na tomhle.

    Muzes Cko sprasit, ale pokud budou dva stejne schopni resit ten samy problem, bude C rychlejsi a vyssim vykonem, ale hure spravovatelne a pri vetsim rozsahu bude pomalejsi vyvoj nez v C++.
    29.10.2008 16:53 Deleted [8409] | skóre: 14 | blog: darkblog
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Řekněte WOW! :-)

    To co jste napsal je obyčejný FUD a plyne jedině z neznalosti.

    Pokud chcete psát něco o C++, měl by jste si první prostudovat možnosti tohoto jazyka a ne šířít nesmysly typu, že C++ je vždycky pomalejší než C. Právě naopak, v C++ máte možnosti vytvořit vysoce optimalizované funkce, které by jste v C vytvořil asi tak pomocí miliónů maker a 20 hlavičkových souborů, které by jste pomocí nastavených maker includoval třeba 20x po sobě. Samozřejmě, že jsem to trošku nafoukl, jediné co k tomu můžu napsat je, že váš kód by na první pohled nikdo nepochopil ;)

    Pokud vypnete v C++ vyjimky a RTTI, máte totálně ekvivalentní jazyk, co se týče generování kódu a rychlosti jako C, a navíc máte neuvěřitelné možnosti při psaní kódu, jaké v C mít nikdy nebudete.

    Pokud vám vadí demanglování jmen funkcí, můžete použít extern "C".
    29.10.2008 19:54 vencas | skóre: 32
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    (Ještě je třeba nepoužívat virtuální funkce, aby ten jazyk byl "ekvivalentní", volání má při běhu režii na prohledání tabulky virtuálních funkcí)
    29.10.2008 20:23 Deleted [8409] | skóre: 14 | blog: darkblog
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Pokud budete stejný problém řešit v C, napíšete si také tabulku virtuálních funkcí. Dá vám to víc práce a výsledek stejný.

    Dále nevím co je "prohledání tabulky virtuálních" funkcí :-) Překladač už při překladu ví, jaký index má použít, navíc může díky znalosti virtuálních funkcí cachovat jejich počáteční adresu.

    MSVC navíc používá speciální konvenci, kdy se jako parametr this používá registr ecx, může se to zdát jako banalita, ale toto je úplně perfektní věc pro vytváření delegátů. To už jsme ale trochu odbočili :)
    29.10.2008 20:53 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    No to právě neví, od toho je to virtuální funkce, kdyby to věděl tak může použít časnou vazbu.
    Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
    29.10.2008 21:16 Deleted [8409] | skóre: 14 | blog: darkblog
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Viděl jste někdy, jak vypadá tabulka virtuálních funkcí a jak je realizováno jejich volání ?

    Pokud ne, tak takto:
    struct ObjectVTable
    {
      void (*vfunkce)(Object* self);
    };
    
    struct Object
    {
      ObjectVTable* vtable;
    };
    
    při volání virtuální funkce se provede úplně jednoduchá věc:
    Object* o = ...
    
    o->vtable->vfunkce(o);
    
    Pokud překladač ví, že se jedná o tabulku virtuálních funkcí (což v případě C++ implementace ví), tak si hodnotu vtable může uchovat v registru a vygenerovat lepší kód než v C implementaci.

    Index vfunkce() je v našem případě 0. Je to věc známá při překladu o žádné prohledávání tabulky se nejedná.
    Stanislav Brabec avatar 29.10.2008 21:37 Stanislav Brabec | skóre: 45 | Praha
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Zná index, nezná hodnotu na tomto indexu uloženou. Použití virtuální funkce znamená tedy jednu dereferenci navíc v kódu nebo mikrokódu a navýšení velikosti každé instance objektu o jeden ukazatel. Tedy přesně totéž, co udělá programátor v C nebo v assembleru, pokud potřebuje proměnný odkaz na funkci.

    Jediná teoretické výhoda C spočívá ve virtuální funkci samotné, pokud by nebylo potřeba předávat implicitní this. To se však často nestává, a navíc i tato výhoda je dána pouze kvalitou optimalizátoru.

    Jak už bylo výše řečeno, toto platí za předpokladu, že nepoužijete RTTI a k volbě instance použijete přetížení. Pokud kód větvíte podle toho, zda je argument int nebo float, je to něco jiného.
    29.10.2008 21:54 Deleted [8409] | skóre: 14 | blog: darkblog
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Tedy přesně totéž, co udělá programátor v C nebo v assembleru, pokud potřebuje proměnný odkaz na funkci
    Áno, toto jsou virtuální funkce. Ale já bych dodal ještě to, že v C++ překladač ví, že se jedná o vtable a ta by se neměla změnit při volání její funkce, takže optimizér si klidně může uložit vtable do registru a při volání více funkcí se ta dereference udělá jen 1x.
    Jediná teoretické výhoda C spočívá ve virtuální funkci samotné, pokud by nebylo potřeba předávat implicitní this. To se však často nestává, a navíc i tato výhoda je dána pouze kvalitou optimalizátoru.
    Pokud se toto stane, můžeme si přeci i v C++ udělat strukturu funkcí a tu používat pro tento účel - toto se používá v grafických knihovnách.
    Pokud kód větvíte podle toho, zda je argument int nebo float, je to něco jiného
    Tady se neshodnem. Je to stejné. Pořadí přetížených funkcí v tabulce virtuálních funkcí má taky logiku, takže se jedná opět o věc známou z překladu.
    Stanislav Brabec avatar 29.10.2008 22:10 Stanislav Brabec | skóre: 45 | Praha
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Ale já bych dodal ještě to, že v C++ překladač ví, že se jedná o vtable a ta by se neměla změnit při volání její funkce, takže optimizér si klidně může uložit vtable do registru a při volání více funkcí se ta dereference udělá jen 1x.
    K tomu lze v moderním C použít -fstrict-aliasing.
    Pokud kód větvíte podle toho, zda je argument int nebo float, je to něco jiného
    Tady se neshodnem. Je to stejné. Pořadí přetížených funkcí v tabulce virtuálních funkcí má taky logiku, takže se jedná opět o věc známou z překladu.
    Měl jsem na mysli větvení v kódu, tedy RTTI, k němuž je třeba předávat identifikátory typu jako skryté proměnné.
    29.10.2008 22:31 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Zná index, nezná hodnotu na tomto indexu uloženou.
    Jo presne tak.
    Jediná teoretické výhoda C spočívá ve virtuální funkci samotné, pokud by nebylo potřeba předávat implicitní this. To se však často nestává, a navíc i tato výhoda je dána pouze kvalitou optimalizátoru.
    Intel i MSVC garantuji, ze this bude vzdy ulozen v registru, nicmene GCC ho (pokud neni potreba) vubec nepreda. Intel by zase mel umet provadet devirtualizaci (mozna uz i GCC, nevim, uz je to docela dlouho co jsem zkoumal jake optimalizace umi), diky cemu je pak mozne virtualni funkce, ktere nejsou zakryte pouzivat s casnou vazbou a diky tomu i inlinovat.
    Jak už bylo výše řečeno, toto platí za předpokladu, že nepoužijete RTTI a k volbě instance použijete přetížení. Pokud kód větvíte podle toho, zda je argument int nebo float, je to něco jiného.
    Smysl tehle vety mi dost unika. Mam pocit ze pletete dohromady zakryti metody pri dedicnosti a pretezovani metod/funkci.
    Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
    Stanislav Brabec avatar 30.10.2008 10:02 Stanislav Brabec | skóre: 45 | Praha
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Jak už bylo výše řečeno, toto platí za předpokladu, že nepoužijete RTTI a k volbě instance použijete přetížení. Pokud kód větvíte podle toho, zda je argument int nebo float, je to něco jiného.
    Smysl tehle vety mi dost unika. Mam pocit ze pletete dohromady zakryti metody pri dedicnosti a pretezovani metod/funkci.
    To, že zatímco přetěžování lze plně vyhodnotit během kompilace, konstrukce typu if (typeid(argument1) == int) mají režii i v době běhu programu.
    29.10.2008 21:00 Sid
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    cudna logika - kedze C nema objektove rozsirenia je asi logicke ze vysledna struktura programu bude ina, ci aj v asemblere budete brutalne OBJEKTOVY?. v linuxe sa nepouziva c++ jednoducho preto ze jeho rezia je vacsia ako v C. a btw na vyslednu rychlost to ci sa nieco inkluduje raz alebo 100x nema vplyv ci mate inu skusenost?
    29.10.2008 21:29 Deleted [8409] | skóre: 14 | blog: darkblog
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    cudna logika - kedze C nema objektove rozsirenia je asi logicke ze vysledna struktura programu bude ina
    Pokud v C naprogramuju to, co C++ udělá za mě, tak bude struktura programu úplně stejná. Pokud C++ překladač navíc uplatní nativní možnosti C++, bude výsledná binárka lepší ta z C++.
    ci aj v asemblere budete brutalne OBJEKTOVY
    Já dokážu zvážit to, na co použiju asm a na co ne. Pokud chcete být objektový v asm, klidně můžete, ale budete psát podobné věci, jaké vám lezou z překladu C++.
    v linuxe sa nepouziva c++ jednoducho preto ze jeho rezia je vacsia ako v C
    Vídím, že existuje opravdu hodně lidí, co takovému nesmyslu věří. Otázka je, co berete jako C++. Jestli jazyk, nebo STL, nebo rozšíření o výjimky a RTTI. Já beru C++ jako jazyk a STL jako knihovnu, kterou nemusím použít. Je jasné, že pokud to s STL přeženu, tak bude program větší, ale nikdy nebude pomalejší. Pokud chci malé binárky, tak jednoduše nepoužiju STL ale hlavně výjimky.

    Pokud tedy tvrdíte, že C++ je pomalejší než C, tak řekněce, co konkrétně ? Podle vaší reakce mám totiž pocit, že o C++ nevíte skoro nic.
    btw na vyslednu rychlost to ci sa nieco inkluduje raz alebo 100x nema vplyv ci mate inu skusenost
    Toto není debata o překladu z C/C++ do asm.
    30.10.2008 07:58 Sid
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    1) Preboha dohladajte si diskuzie na kernel.org o tom preco nepouzivaju C++. Ale mozno cakaju na vas, Linus sa buchne do hlavy a povie : ja somar az dark mi musel povedat ze existuje C++ a nas kernel bude 2x mensi a rychlejsi :))) 2) Nemozem si pomoct ale pripadate mi ako clovek co pozna C++ 3 mesiace a ma k nemu presne taky vztah ako ked s niekym chodim tyzden. 3) ak je nieco na C++ (myslim celok) dobre tak je to prave STL 4) vidim ze to stale nechapete co sa vam snazim povedat - PRECO by mal niekto programovat v C rovnako ako v C++??? uvedomte si ze C++ a C su dva rozdielne jazyky 5) "Pokud chci malé binárky, tak jednoduše nepoužiju STL ale hlavně výjimky" - co viac povedat - vieto o com pisete? mam pocit ze ste si len cosi precital na webe, tomu co tam pisali ste neporozumel a teraz z toho gulasu co mate v hlave tu hlasate podobne veci.

    inac pre vase info pouzivam C++ od doby co vysiel vobec prvy prekladac Borlandu pre toto prostredie.
    30.10.2008 09:38 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    C++ nepouizvaji proto, ze v roce XY kdy se o tom rozhodovalo neexistoval kompilator, ktery by byl schopen rozumne zkompilovat C++ kod a taky proto, protoze na jadre delaji tisice lidi, kteri casto C++ neumi.
    PRECO by mal niekto programovat v C rovnako ako v C++??? uvedomte si ze C++ a C su dva rozdielne jazyky
    Proc by mel nekdo pouzit druhy jazyk? Jenom proto ze to rikate? Samozrejme ze to jsou rozdilene jazyky, nicmene C++ je vybudovano nad Ceckem a oba standardy se snazi drzet maximalni moznou vzajemnou kompatibilitu.
    "Pokud chci malé binárky, tak jednoduše nepoužiju STL ale hlavně výjimky" - co viac povedat - vieto o com pisete? mam pocit ze ste si len cosi precital na webe, tomu co tam pisali ste neporozumel a teraz z toho gulasu co mate v hlave tu hlasate podobne veci.
    Zakladni problem C++ pri kompilaci je, ze do binarnich souboru cpe obrovske mnozstvi symbolu. Po stripnuti techto symbolu jsou obvykle datove objemy binarek v jazycich C a C++ velmi podobne.

    Btw. kdo dnes proboha optimalizuje na velikost binarky? To se dela jedine u embeded zarizeni, kam bych C++ v dnesni dobe nedoporucil (nedostatek kvalitnich kompilatoru).
    inac pre vase info pouzivam C++ od doby co vysiel vobec prvy prekladac Borlandu pre toto prostredie.
    Tak si obcas zkuste zjistit co vam ten kompilator s kodem dela.
    Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
    30.10.2008 10:21 Sid
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    ad 1) Uvedomte si ze ludia co robia na kerneli a su postaveny v hierarchii vyssie urcite nemaju ziadny problem so zvladnutim C++,Java,...,... - medzi schopnostou programovat a jazykom nie je rovnatko. Clovek co vie programovat sa v novom jazyku behom mesiaca, dvoch orientuje absolutne pohodlne. Kazda diskuzia co tam bola skoncila vzdy tym ze C++ ma pre nich neprijatelny overhead. ad 2) Ja vravim ze ma niekto pouzit druhy jazyk? kde? ide o to ze ked budete programovat objektovo v C++ nemozete to iste robit v C a ked sa to budete snazit rozne obchadzat a robit si rozne pomocne akoze objektove nadstavby (ci uz makra alebo inac) tak dostanete kod ktory bude naozaj sialeny. A ked porovnate spatne s C++ tak budete kricat co je to za stupidny jazyk to "C". Jednoducho akceptujte fakt ze C a C++ su rozne jazyky a to ze C je podmozina C++ na tom nic nemeni.

    "tak si obcas zkuste zjistit co vam kompilator s kodem dela" - nechapem ako to suvisi s tou vetou hore ale zrejme tam vidite suvis :))
    30.10.2008 10:51 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Uvedomte si ze ludia co robia na kerneli a su postaveny v hierarchii vyssie urcite nemaju ziadny problem so zvladnutim C++,Java,...,...
    Coz nema vubec nic spolecneho s tim ze na jadre delaji tisice lidi a spousta z nich C++ neumi.
    Clovek co vie programovat sa v novom jazyku behom mesiaca, dvoch orientuje absolutne pohodlne.
    Zacinam docela chapat proc tady placate takove kraviny.
    Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
    30.10.2008 11:02 Deleted [8409] | skóre: 14 | blog: darkblog
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Taky nevím, jestli má smysl se bavit s tímto člověkem. Za celou dobu tu nedal ani jeden příklad, proč by jazyk C++ měl být pomalejší, všechno to byly jen demagogické plky.

    Nejhorší je, že jsem to rozpoutal celé já :(
    30.10.2008 19:57 Sid
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Vasa schopnost zavadzat je uzasna - precitajte si svoj prvy prispevok a potom mi napiste kto tu cosi pisal o rychlosti?
    31.10.2008 00:26 Sid
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    ja som pre zmenu pouzil google a tiez sa mi to ujasnilo, co to o vas specialne vo vztahu k programovaniu / pri tych vysledkoch je jasne, ze vam tie dva mesiace stacit nemozu. takze studujte, skusajte nove jazyky a potom sa pobavme o poslednej vete. zkuste si napr jazyk beta - mozem vam povedat, ze to co som napisal sa da takze kto placa?
    31.10.2008 08:54 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Jsem rad ze jste si udelal jasno :) Nicmene nechapu co do toho matlate dalsi jazyky, kdyz se bavime o C++.

    Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
    30.10.2008 10:45 Deleted [8409] | skóre: 14 | blog: darkblog
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Budu reagovat jen na jednu věc, protože ten zbytek nemá smysl. Pokud si tu léčíte mindrák z C++, tak já vám opravdu nepomůžu.
    "Pokud chci malé binárky, tak jednoduše nepoužiju STL ale hlavně výjimky" - co viac povedat - vieto o com pisete?
    Vím. Pokud by jste o C++ opravdu něco věděl (což jste mi ukázal pravý opak), věděl by jste, že výjimky vám způsobí nárust binární velikosti kódu asi o 10%. Toto je jediná věc na C++, která vám opravdu zvětší binárky, proto ji hodně projektů nepoužívá (Qt, Kde, aplikace od Google, wxWidgets, ...).

    PS: Já znám překladač od Borlandu, doma mám dokonce orig. verzi 3.1, kde jsem za dávných dob používál TurboVision.
    30.10.2008 20:03 Sid
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Btw objektove programovanie bez vynimiek, vy proste zavadzate, ked vam to vyhovuje tak raz z C++ odoberate vlastnosti (chcete mat rychlost) a ked chcete argumentovat moznostami C++ tak zase vsetko je ok. Tak ok o com sa bavime o C++ alebo o C++ ale bez RTTI,late binding,vynimiek. Co je to potom za jazyk? nejaka vas novy C--? :)

    neliecim si ziadny mindrak z C++ neviem ci ste si precital ze v nom programujem rad, akurat "milujem" reci typu Java je rychlejsia ako C++, C++ je rychlejsie ako C, XYZ je mega rychlejsie ako ZYX - chapeme sa? vobec to nie je ziadna svata vojna ako Win vs Linux a Qt vs Gnome atd.
    30.10.2008 21:14 Deleted [8409] | skóre: 14 | blog: darkblog
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    No já vidím právě úspěch u aplikací/knihoven, které nepoužívají výjimky - Qt, KDE, Chrome, ... Obecně například Google má velice zajímavé dokumenty a vnitřní pravidla, které používají pro C++ (a KDE vývojáři by o výjimkách asi taky povykládali).

    Navíc nevěřím tomu, že všichni programátoři C++ umí psát exception safe kód, ale to už je na jinou debatu.

    A já už vlastně ani nevím, o co vám jde. Pokud tématu rozumíte, tak mi dáte za pravdu (a věřím, že mi dá za pravdu u hodně C++ programátorů zde), a pokud se bavíte tím, že děláte demagogii, tak jsem s váma jen ztrácel čas.

    Tímto bych to asi uzavřel.
    3.11.2008 21:42 chacha
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    On ten C++ vlastne neni ani tak pomaly a nafoukly, akorat se u nej nesmi pouzivat jeho pokrocile vlastnosti a nesmi je ani pouzivat pouzivane knihovny. Jenze to pak muzu klidne zustat u toho C tak, jako to delaji vyvojari kernelu, GTK nebo GNOME.
    3.11.2008 22:33 Deleted [8409] | skóre: 14 | blog: darkblog
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Další, kdo absolutně netuší nic o C++ ;-)
    30.10.2008 08:33 Sid
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    A este cosi aby sme sa dobre pochopili - nebavim sa o tom ze ci je C++ lepsie alebo horsie - ja osobne pouzivam C++ a nie C ale jedna sa skor o kniznice ako boost a STL. Ide len o to ze mam pocit, ze vy nechapete dve zakladne veci a miesate ich dohromady - rychlost a kvalitu kodu ktory je objektovy a rychlost a velkost kodu ktory vznikne. Uvedomte si ale, ze objektova rezia nie je zadarmo (bavme sa teraz ale naozaj o objektoch, tj dynamicka identifikacia typov, pomala vazba,...). To je presne ako ked navyse este pridate garbage collector - program je lepsi,lahsie citatelny ale nie je to zadarmo. Viete preco napr Firebird presiel na C++? Vobec neslo o mega rychlost ako to tu sa snazite dokazat ale o vlastnosti ktore urobia kod lepsimi ako napr automaticka destrukcia objektov mimo rozsah platnosti a tiez precistenie kodu
    30.10.2008 09:26 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    To neni rezie objektu ale dynamickych vazeb. Jejiz rezije je identicka jak v C tak v C++. Pisete ze delate v C++ uz dlouho, ale ocividne nemate ani sajnu jak co funguje.

    Tri nejrychlejsi programovaci jazyky jsou Asembler, Fortran, C++. Doporucuji si trochu doplnit znalosti: http://shootout.alioth.debian.org/, http://www.oonumerics.org/blitz/.
    Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
    30.10.2008 09:49 razor | skóre: 33
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    No z uvedených odkazů IMHO příliš nevyplývá že C++ je rychlejší než C. V určitých benchmarcích vede C a opačně.
    30.10.2008 10:55 Deleted [8409] | skóre: 14 | blog: darkblog
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Autor tím chtěl nejspíš naznačit, že C++ je stejně rychlý jazyk jako C. Je totiž těžké se hádat o tom, který z nich je rychlejší, když je to identické;)
    30.10.2008 11:01 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Ano je to pomerne vyrovnane a celove vede C++ (nekde tam je prehled). Ono je to zcela logicke. C99 nema vuci C++ zadne nove vlastnosti pro ziskani lepsi efektivity binarky (vlastne ma restricted pointery), zatimco C++ ma reference a sablony.
    Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
    30.10.2008 12:28 razor | skóre: 33
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    A ještě abych si rejpnul, tak C poraží Fortran celkem s přehledem :)
    30.10.2008 12:35 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Taky mu chybi 5 z 13 programu, muze to byt dost zkreslene.
    Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
    30.10.2008 10:36 Sid
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    hm... neviem co mam vam odpisat na to prve - akych objektov v C? chapate vobec co je dynamicka vazba a k comu sa pouziva? ale predpokladam ze ste iba tak nejako nestastne sformuloval a myslienka toho je ze chcete povedat ze vytvorenie objektu v C++ je casovo obdobne narocne ako alokacia pamate v C pre dany typ.

    to je tragedia s ludmi co si pozru nejaky graf a bez toho ze mu chapu to potom posielaju do diskuzii a tvaria sa ako odbornik. mozem vam rovno poslat link na dokument kde C++ je asi tak 7x pomalsie pri tej istej veci ako C ale kod je pre zmenu 5x kratsi. Ale budem teraz kricat ze C++ je pomaly smejd? Vzdy je to priklad od prikladu a je rozdiel ci napr pouzijete template v C++ a tym padom ziskate optimalizovany kod pre dany typ alebo pouzijete nejake univerzalne riesenie. Potom jasneze dostanete vysledky ktore budu vyzerat ako ferove ale v podstate zavadzate lebo neporovnavate uplne identicke riesenia

    30.10.2008 10:51 Deleted [8409] | skóre: 14 | blog: darkblog
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    akych objektov v C
    Měl by jste se někdy podívat do zdrojových kódu projektů, které jsou napsané v C. Mám totiž pocit, že C programátoři jsou mnohdy více objektově založení než C++ programátoři.
    C++ je asi tak 7x pomalsie
    Jenže to nebyl identický kód. Od začátku se tu vede flame o tom, že v C++ je pomalejší stejný kód jako v C, což se vám tady pár lidí snaží vyvrátit, ale marně.
    30.10.2008 12:29 Sid
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    nie vy vediete flame ze C++ je rychlejsie ako C a to sa vam snazim vyvratit - ved s tum ze je FUD o tom ako C rychlejsie ako C++ ste prisli vy ci ma klame pamat?
    30.10.2008 13:20 Deleted [8409] | skóre: 14 | blog: darkblog
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Ano, psát, že C je rychlejší jako C++ je FUD a za tím si stojím. Ale nebyl jsem to já, kdo tu začal psát něco o rychlosti. Tato debata měla být o tom, jestli je dlouhodobě výhodné začínat projekty v C, když tu máme jazyky, které mají mnohem větší možnosti (myslím tím C++).

    To, že to někteří nepochopili, já neovlivním.
    30.10.2008 10:57 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Uvedeny link je jediny rozumny test rychlosti programovacich jazyku, jelikoz tam muze poslat implementaci kdokoliv. Pokud se vam zda je v nekterem jazyku priklad neimplementovan neefektivne, muzete ho opravit. Nic nebude mit nikdy lepsi vypovidaci hodnotu.
    chcete povedat ze vytvorenie objektu v C++ je casovo obdobne narocne ako alokacia pamate v C pre dany typ
    class A
    {
      int x;
      int y;
      
      public:
        A() { kod1; }
        ~A() { kod2; }
    };
    
    int main()
    { A a; }
    
    Je zcela ekvivalentni (dokonce jde o implementaci, ktera se pouziva pri kompilaci C++ kodu) s:
    struct A
    {
      int x;
      int y;
    };
    
    void Init(struct A const * a) { kod1; }
    void DeInit(struct A const * a) { kod2; }
    
    int main()
    { struct A a; Init(&a); DeInit(&a); }
    
    Ukazte mi ten vas overhead objektu.
    Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
    30.10.2008 11:20 Sid
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Mate pravdu ale kedze ma ten benchmark vobec netrapi tak mi je to absolutne jedno co za priklady v nom su. Kazdopadne ked som do neho sa pozrel skusmo na Javu tak kuzelne slovicko final by to chcelo pridat.

    bavim sa o tomto? co to stale otacate do uplne ineho smeru, skuste si to precitat od zaciatku , RTTI vam pridava pamatovu narocnost (co uz dnes neni problem), pozdna vazba casovu narocnost (ako kedy) nechapem teraz ci tu ideme vytahovat vsetky situacie kde riesenie bud v C alebo C++ usetri jednu alebo dve instrukcie - predsa cele toto vzniklo iba okolo toho ze tu bol prezentovany nazor ako je C++ rychlejsie ako C uz z principu co je IHMO blbost

    navrhujem radsej to nechat tak a radsej pochvalit nove GNOME :))) co vy na to?
    30.10.2008 11:29 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Ano pozdni vazba zpomaluje kod. Stejne jak v C++ tak jeji implementace v Cecku. To same plati pro RTTI a uplne kazdou vlastnost jazyka C++, kterou nema jazyk C (a ktera podle vas dela C++ pomalejsim jazykem).
    Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
    hwsoft avatar 30.10.2008 13:45 hwsoft | skóre: 19
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    OK prepnuli se v C++ do modu C, jsem na tom podobne :-).

    OK mam dost dlouhou zkusenost z obojiho, mam prekladac, ktery by mel byt optimalizovany (dle vyrobce jak pro C tak pro C++), Metrowerks CodeWarrior. Pokud pouziju C++ tak mi stoupne pametova naroznost o polovinu a beh SW se viditelne zpomali, vzhledem k tomu, ze chvilemi je pro me nutna okamzita reakce, je kobinace C a Asembleru idealni. Nebudu tam cpat C++ ktere jenom ze tam je spolkne nejaky 3,5 kByte Flash z 128kByte a skoro 2kByte RAM z 8k. Navic kazda funkce je vice narocna , protoze sice kon je mensi, ale prilinkovane knihovny vetsi.

    A to programuju malo objemove ridici jednotky, kde pro me neni cena tim nedulezitejsim, tedy se mohu rozhodnout, co pouziji.
    30.10.2008 14:40 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Ano pro embeded zalezitosti neni C++ vhodny jazyk, jelikoz zatim neexistuji dostatecne kvalitni kompilatory. Je to ostuda, ale je to tak.
    Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
    zoul avatar 29.10.2008 07:45 zoul | skóre: 43 | blog: | Boskovice
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Naprosto souhlasím. Psal jsem drobnou aplikaci nad Pangem, musel jsem se chvilku hrabat v jeho zdrojácích a byl jsem zděšený. Céčko se mi líbí, ale tohle je hnus. C++ by možná bylo moc složité, ale třeba takové Objective C je nadmnožina C, jazyk je to lehký, pěkný a celkem moderní, určitě by se pro Gnome hodilo. Škoda, že si tohle vývojáři Gnome neuvědomili dřív.
    29.10.2008 07:52 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Bacha na to, Objective C spada do uplne jine kategorie jazyku. Mozna je to lehky, pekny a celkem moderni jazyk. Bohuzel je ale brutalne pomaly.
    Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
    zoul avatar 29.10.2008 07:55 zoul | skóre: 43 | blog: | Boskovice
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Na desktopové aplikace to zjevně bohatě stačí. Máš nějaký zdroj, kde by bylo vidět jeho rychlostní srovnání s jinými jazyky? Dělám v něm a nepřijde mi pomalé ani za mák.
    29.10.2008 08:26 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Bohuzel cisla nemam, nicmene ObjC ma mnohem bliz k javascriptu (funkcne), nez k Cecku. Bohuzel v http://shootout.alioth.debian.org/ neni, skoda.

    Na desktopove aplikace staci, ale to je vsechno v uvozovkach. Staci java na desktopove aplikace? Co Eclipse, nebo jeste hur, Netbeans.
    Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
    29.10.2008 11:27 tom
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    To by me zajimalo, jak to myslis. Pripada mi to jako vysilani Radia Jerevan, ve kterem se ukaze, ze to neni JavaScript, ale Smalltalk a nejedna se o podobnost funkcni, ale syntaktickou. ;-) Skoro mi to prijde, ze mas na mysli nejaky jiny jazyk, v cemz me utvrzuje i to, ze v tom shootoutu Objective-C je.

    Tomas
    29.10.2008 11:56 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Jo aha, ja koukal na nove testy a tam uz neni.

    Objective C pouziva (alespon podle toho co vim a uznavam ze o Objective C toho moc nevim) pomerne cisty objektovy pristup a to posilani zprav (ktery je ale zatracene pomaly). Jestli je to jinak, tak se omlouvam, nicmene to ze Objective C je pomaly jazyk mam potvrzeno od lidi, kteri v nem programovali.
    Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
    zoul avatar 30.10.2008 11:15 zoul | skóre: 43 | blog: | Boskovice
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Na desktopove aplikace staci, ale to je vsechno v uvozovkach.
    Píšou se v něm i hry pro iPhone, bez jakýchkoliv výkonnostních problémů ze strany jazyka. Ono je sice hezký říct, že zasílání zpráv je ve srovnání s voláním funkcí brutálně pomalé, ale doby, kdy pár instrukčních cyklů znamenalo rozdíl mezi pomalým a rychlým programem, jsou dávno pryč. Dneska jsou podobné rozdíly podstatné jen u několika málo procent programů.
    Algi avatar 29.10.2008 14:22 Algi | skóre: 1 | blog: Sinner
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Nějaký důkaz toho, kde by bylo Objective-C brutálně pomalé? Já jenom, že drtivá většina programů na Macu jsou psané práve Obj-C a že by byly pomalé se mi nezdá. Nebo je to tím, že jsem Javista? :-D
    I'm a firestarter, twisted firestarter...
    Stanislav Brabec avatar 29.10.2008 13:25 Stanislav Brabec | skóre: 45 | Praha
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Většina toho v C také jde, jen se to jinak píše a jinak nazývá:

    Dědičnost v C = ukazatel do „zděděné“ „třídy“ (struct) v právě definované struct („třídě“).

    Virtuální dědičnost v C = vložení „zděděné“ „třídy“ (struct) do právě definované struct („třídy“).

    Šablony jsou věc na úrovni zdrojového kódu, makra jsou, pravda, jen částečnou náhražkou. Metaprogramování v něm neuděláte.

    Metoda = funkce (nejspíš začínající jménem „třídy“), v jejíž dokumentaci je uvedeno, k čemu slouží

    Virtuální metoda = ukazatel na funkci v definici struct („třídy“).

    Konstruktor/destruktor = funkce s _new a _destroy na konci názvu.

    40znakový prefix znamená sice nepříjemnost při psaní kódu. Při čtení nebo ladění je rozhodně příjemnější, než dohledávání mezi desítkami definic přetíženého jména v C++.

    No a díky GObject máte možnosti, kterými C++ objekdy nedisponují – posílání zpráv, nastavování vlastností objektu, čítač referencí.

    Obliba C asi spočívá v tom, že:
    • jeho definice není obsáhlá a lze se jej snadno naučit
    • jeho definice neobsahuje záludnosti
    • C nevynucuje určitý způsob přemýšlení (mnoho jazyků implicitně předpokládá, že programátor uvažuje v termínech jako „třída“, „zdědit“, „objekt“, čímž háže klacky pod nohy programátorům, pro něž je přirozené přemýšlet v termínech „oblast paměti“, „ukazatel“, „reference“)
    • s výjimkou assembleru je C nejblíže strojové reprezentaci dat
    29.10.2008 16:45 Deleted [8409] | skóre: 14 | blog: darkblog
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Většina toho v C také jde, jen se to jinak píše a jinak nazývá: ...
    Já to znám, vím že to jde, ale otázka je, jestli vám přijde přehledné to takto dělat ?
    Virtuální metoda = ukazatel na funkci v definici struct („třídy“).
    Takže:
    struct A {
      void (*method0)(A* self, int param0, int param1);
      void (*method1)(A* self, int param0, int param1);
      ...
      void (*method100)(A* self, int param0, int param1);
    }
    
    a v kódu:
    A* A_new()
    {
      A* self = (A*)malloc(sizeof(A));
      if (!self) return NULL;
    
      ...
      
      self->method0 = A_method0;
      ...
      self->method100 = A_method100;
    }
    
    Toto je podle vás dědičnost ? Toto jsou obyčejné ukazatele na funkce. V C se dá udělat dědičnost tak, že by se vytvořila další struktura, která by byla podobná té z C++ (virtuální tabulka funkcí), předpokládám, že jste to myslel spíš tak.
    40znakový prefix znamená sice nepříjemnost při psaní kódu. Při čtení nebo ladění je rozhodně příjemnější, než dohledávání mezi desítkami definic přetíženého jména v C++.
    Já ladím pomocí nástrojů IDE, takže tento argument je úplně mimo. Nevšiml jsem si rozdílů mezi laděním C kódu a C++ kódu.
    No a díky GObject máte možnosti, kterými C++ objekdy nedisponují – posílání zpráv, nastavování vlastností objektu, čítač referencí.
    Já mám na GObject jiný názor. Nastavování properties a události je věc, která není nativně v C/C++ a člověk si ji musí naprogramovat. GObject je řešení pro C, ale otázka je, jak moc kvalitní.

    A nemusím chodit ani daleko. Ukažte mi nějaký nástroj (code assist), který umí GObject, který je vám schopný ukázat, jaké máte možnosti. To samé pro vaši dědičnost v C a virtuální funkce v C ?

    jako nezlobte se, ale jestli vám přijde přehlednější toto:
    GJmenoKnihovnyNazevObjektu *o = neco...;
    int x = g_nazev_zdedeneho_objektu_x_get(G_NAZEV_ZDEDENEHO_OBJEKTU(o));
    int y = g_nazev_zdedeneho_objektu_y_get(G_NAZEV_ZDEDENEHO_OBJEKTU(o));
    
    než toto:
    JmenoKnihovny::NazevObjektu *o = neco...;
    int x = o->x();
    int y = o->y();
    
    Tak jsme asi oba někde jinde :-)
    Obliba C asi spočívá v tom, že:
    Jak jsem psal výše, to už není o oblibě, ale o držení se zajetých kolejí.
    Stanislav Brabec avatar 29.10.2008 17:44 Stanislav Brabec | skóre: 45 | Praha
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Toto je podle vás dědičnost ? Toto jsou obyčejné ukazatele na funkce. V C se dá udělat dědičnost tak, že by se vytvořila další struktura, která by byla podobná té z C++ (virtuální tabulka funkcí), předpokládám, že jste to myslel spíš tak.
    Struktura, v ní virtuální tabulkou funkcí, a ukazatel na ní z nadřazené třídy. Prostě to, co udělá překladač jazyka C++ při kompilaci.
    Já ladím pomocí nástrojů IDE, takže tento argument je úplně mimo. Nevšiml jsem si rozdílů mezi laděním C kódu a C++ kódu.
    Občas jen čtu kód a hledám, kde je definovaná funkce, která se vykoná. A to jde v C++ hůř, zatímco v C stačí grep na hlavičkové soubory.
    Já mám na GObject jiný názor. Nastavování properties a události je věc, která není nativně v C/C++ a člověk si ji musí naprogramovat. GObject je řešení pro C, ale otázka je, jak moc kvalitní.
    Třeba se dá se diskutovat, zda třeba řetězcové identifikátory vlastností jsou z hlediska efektivity ideální.

    A nemusím chodit ani daleko. Ukažte mi nějaký nástroj (code assist), který umí GObject, který je vám schopný ukázat, jaké máte možnosti. To samé pro vaši dědičnost v C a virtuální funkce v C ?

    jako nezlobte se, ale jestli vám přijde přehlednější toto:
    GJmenoKnihovnyNazevObjektu *o = neco...;
    int x = g_nazev_zdedeneho_objektu_x_get(G_NAZEV_ZDEDENEHO_OBJEKTU(o));
    int y = g_nazev_zdedeneho_objektu_y_get(G_NAZEV_ZDEDENEHO_OBJEKTU(o));
    
    než toto:
    JmenoKnihovny::NazevObjektu *o = neco...;
    int x = o->x();
    int y = o->y();
    
    Tak jsme asi oba někde jinde :-)
    Asi ano. První forma mi připadá přehlednější – myšlenkové úsilí potřebné na představení výsledné podoby kódu je nižší. Programování jsem se začal učit ve strojním kódu, později jsem se naučil assembler, teprve mnohem později C. C mi tehdy připadalo jako příliš vysokoúrovňový jazyk, ve kterém některé věci nejdou popsat přesně. C++ mi ve většině případů připadá jako zbytečná úroveň abstrakce dodnes (s výjimkou maticové algebry, komplexních čísel a podobných věcí).
    29.10.2008 20:12 Deleted [8409] | skóre: 14 | blog: darkblog
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Struktura, v ní virtuální tabulkou funkcí, a ukazatel na ní z nadřazené třídy. Prostě to, co udělá překladač jazyka C++ při kompilaci.
    Rozdíl mezi náma je ten, že já nechám překladač vyrobit tu tabulku a naplnit. Vy ji musíte definovat, napsat prototypy funkcí a pak při inicializaci knihovny naplnit pro každou třídu (strukturu) zvlášť.
    Občas jen čtu kód a hledám, kde je definovaná funkce, která se vykoná. A to jde v C++ hůř, zatímco v C stačí grep na hlavičkové soubory.
    Já jsem zvyklý na "goto declaration" nebo "goto definition". Nemusím nic hledat, code assist to dělá za mě.
    Třeba se dá se diskutovat, zda třeba řetězcové identifikátory vlastností jsou z hlediska efektivity ideální.
    Když se to udělá hash, tak jo :)
    Asi ano...
    Vidíte, mi to přijde jako zbytečná redundance.

    Blbé je to, že jsem v tomto vlákně chtěl srovnávat jazyk C a C++ hlavně kvůli novým projektům. Nastolit otázku, zda se opravdu vývojářům zdá výhodné použít tento jazyk na dlouhodobé projekty. Nemusí to být ani otázka personálních preferencí, ale třeba otázka typu, zda je dostatek vývojářu pro konkrétní jazyk. O rychlosti vývoje ani nemluvím :)
    Stanislav Brabec avatar 29.10.2008 20:59 Stanislav Brabec | skóre: 45 | Praha
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Třeba se dá se diskutovat, zda třeba řetězcové identifikátory vlastností jsou z hlediska efektivity ideální.
    Když se to udělá hash, tak jo :)
    I tak je to stále komplikovanější, než unikátní identifikátor typu int. Ovšem v jeho případě by zase byl problém se zajištěním jeho unikátnosti, zvlášť v takových případech, kdy např. widget zdědí nějakou vlastnost specifickou pro určité grafické téma.
    Blbé je to, že jsem v tomto vlákně chtěl srovnávat jazyk C a C++ hlavně kvůli novým projektům. Nastolit otázku, zda se opravdu vývojářům zdá výhodné použít tento jazyk na dlouhodobé projekty. Nemusí to být ani otázka personálních preferencí, ale třeba otázka typu, zda je dostatek vývojářu pro konkrétní jazyk. O rychlosti vývoje ani nemluvím :)
    Podobné srovnání jsem sám pro sebe dělal před pár týdny při kursu C++. A došel jsem k závěru, že efektivní používání C++ (ale platí to skoro pro jakýkoliv jazyk) znamená nejen se daný jazyk naučit, ale také se naučit myslet v prostředcích, které ten jazyk nabízí. Druhý krok je výrazně těžší.

    Tomu, kdo umí C a učí se C++, připadají vymoženosti C++ vykoupené komplikovaností jazyka.
    29.10.2008 21:45 Deleted [8409] | skóre: 14 | blog: darkblog
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    C++ je komplikovaný jazyk - na tom se shodnem.

    Ale každý programátor si může zvolit hranici, za kterou půjde. Já jsem například strašně dlouho neuměl používat šablony a vyhýbal jsem se jim. Není dokážu pomocí šablon psát celkem zajímavé věci. Další věc jsou třeba automatické zámky (v Qt QMutexLocker, v Google Chrome AutoLock, atd). Jsou to drobnosti, ale strašně užitečné.
    I tak je to stále komplikovanější, než unikátní identifikátor typu int. Ovšem v jeho případě by zase byl problém se zajištěním jeho unikátnosti, zvlášť v takových případech, kdy např. widget zdědí nějakou vlastnost specifickou pro určité grafické téma.
    Mnohdy je těžké zajistit i unikátnost řetězců, pokud se tedy unikátnost nezajistí stylem "prostorJmen-objekt-signal" (stylem dbus).
    Podobné srovnání jsem sám pro sebe dělal před pár týdny při kursu C++. A došel jsem k závěru, že efektivní používání C++ (ale platí to skoro pro jakýkoliv jazyk) znamená nejen se daný jazyk naučit, ale také se naučit myslet v prostředcích, které ten jazyk nabízí. Druhý krok je výrazně těžší.
    Každý jazyk je potřeba se naučit;-)

    Já vidím problém hlavně v tom, že někteří lidi píšou o C++ nesmysly a ty se pak šíří mezi ostatní. Viz například FUD typu "C je rychlejší než C++". Když už tato věta odradí někoho od C++ a začne to šířit aniž by si vyzkoušel, co je na tom žvástu pravdy, tak je to těžké. Já si třeba myslím, že rychlost aplikace závisí hlavně na kvalitě ostatních komponent a na algoritmech v aplikaci, ale to sem pletu něco na co jsem odpovídal výše -- ale mám to pořád v hlavě :-)
    Stanislav Brabec avatar 29.10.2008 22:01 Stanislav Brabec | skóre: 45 | Praha
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Já si třeba myslím, že rychlost aplikace závisí hlavně na kvalitě ostatních komponent a na algoritmech v aplikaci
    To je pravda. Stačí zevrubnější pohled do zdrojáku leckterého projektu (nebo jen do dokumentace API), aby člověku začaly vstávat vlasy hrůzou na hlavě. I v GNOME najdeme příkladů dost:

    Dialog pro výběr souboru ve starých verzích GTK+ četl aktuální adresář 6×.

    GTK Tree View Column nelze jednoduše učinit necitlivý na aktivaci řádku po kliknutí.

    Evolution ve svém původním návrhu u některých funkcí nepočítala, že by mohly selhat nebo nikdy neskončit. Při implementaci POP3 šlo o lokální operace, tak se to neřešilo. Problémy nastaly až při implementaci IMAP a trvají dodnes.

    Pidgin nadefinoval obecné API pro přenos souborů. Existující implementace se na to nějak nabastlily, a máme z toho pěkné CVE.
    Drom avatar 29.10.2008 22:59 Drom | skóre: 24 | Kdyne
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Imho je odpoved na otazku "proc ten a ten jazyk" prosta - protoze ten, kdo danou aplikaci pise, "ten a ten" jazyk pouziva. A i tak ma GNOME malo vyvojaru...
    29.10.2008 23:43 Deleted [8409] | skóre: 14 | blog: darkblog
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    No netýká se to jen GNOME. Třeba Enlightenment a všechny jeho knihovny jsou taky v C a taky trpí nedostatkem vývojářů. Otázka je, kolik nových vývojářů můžou získat stávající filozofií a o kolik jich přicházejí.

    Já osobně nepřispívám do GPL kódu, jestli se jedná o C nebo C++, to mě je celkem jedno.
    Drom avatar 30.10.2008 00:31 Drom | skóre: 24 | Kdyne
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Já osobně nepřispívám do GPL kódu...

    Skoda.
    30.10.2008 00:45 Deleted [8409] | skóre: 14 | blog: darkblog
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    U mě vítězí BSD, MIT, atd...

    Nehodlám nikdy nikoho omezovat.
    Ilfirin avatar 29.10.2008 11:49 Ilfirin | skóre: 32 | blog: ilfblog | Liberec
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Bez zajímavosti není ani pohled na programovací jazyky, které nové aplikace používají. Empathy je napsáno v jazyce C (stejně jako Vinagre a Cheese), Hamster používá Python. Nezdá se tedy, že by se v GNOME dostávalo většího prostoru jazyku C# (a technologii Mono obecně), jak by to mohlo vypadat z různých komentářů.
    Takhle bych na to nekoukal. Jak jsem různě četl, Gnome je otevřený všemu zajímavému, ať je to napsané v čemkoli. Kdyby byl Hamster v C#, tak by byl v C# a nic by se nezměnilo. Různí komentátoři v tom hledají politiku, ale ona tam žádná není.
    29.10.2008 12:40 freshmouse
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Nehledám v tom politiku, jen reaguji na názory, že GNOME migruje (stávající aplikace) do C#. A jak se zdá, tak ani nové aplikace nijak masivně nevyužívají C#.
    Ilfirin avatar 30.10.2008 08:43 Ilfirin | skóre: 32 | blog: ilfblog | Liberec
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    jen reaguji na názory, že GNOME migruje (stávající aplikace) do C#
    Tak to se mi opět vybavuje Miguelova odpoveď na to, jestli budou migrovat Evolution do C#, kde odpověděl, že ani náhodou, že ten kód trvalo vyvinout a odladit několik let, tak ho nehoděj přece jen tak přes palubu. To dává logiku a myslím, že podobné to bude i jinde. Migrace stávajících ne, ale nové aplikace, to je věc jiná.
    Ale osobně jsem rád, že nové aplikace do Gnome nejsou jen C#, ale i jiné jazyky.
    30.10.2008 12:03 freshmouse
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Však to taky nebyly komentáře vývojářů, ale lidí, co jen tak plácali. :-)
    Grunt avatar 29.10.2008 15:39 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    U fotky Ekigy jsem se lekl, že Martin Picek je klon mého kamaráda, ale jak se dívám, tak asi naklonovali někoho jiného.

    BTW:Screenshoty se mají vybírat
    BTW2:Funguje někomu Ekiga či jiný SIP klient na VIPhone?

    A zjistil jsem, že jsem nejproduktivnější ve středu v podvečer.
    Na tom něco určitě bude.
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    29.10.2008 16:09 Robert Krátký | skóre: 94 | blog: Robertův bloček
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    BTW:Screenshoty se mají vybírat
    Nelíbil se mi ten stín...
    Grunt avatar 29.10.2008 16:33 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    A tak to potom jo…

    GIMP prý ale také vyšel v nové verzi. No, kdo ví…

    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    Grunt avatar 29.10.2008 16:39 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    A navíc je ten stín, ostatně jak už tak ve světě OS bývá zvykem, uložen v alpha kanálu.
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    29.10.2008 17:50 Honza Jaroš | skóre: 6 | blog: moje_strana_plotu | Bohnice
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    BTW2:Funguje někomu Ekiga či jiný SIP klient na VIPhone?
    Mně fungoval Twinkle, ale co jsem koupil HW telefon, tak jsem ho s tímto operátorem nepoužil (momentálně jsem u 802.cz a účet u Viphone si nechávám jen proto, že ho tam má i bratr a můžu mu tak volat zadarmo). Ekigu se mi kdysi taky podařilo rozběhnout, ale při provozu to porůznu padalo, takže jsem u ní nezůstal. Ovšem to je už tak dva - tři roky.

    Grunt avatar 29.10.2008 21:00 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Jsem spíš myslel dovolat se. Z Ekiga účtu se mi absolutně nedaří dovolat na účet na VIPhone(přitom jinam nemám problémy)…a to jsem si myslel, že SIP je jen jeden.
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    30.10.2008 01:46 Honza Jaroš | skóre: 6 | blog: moje_strana_plotu | Bohnice
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    No já z toho Twinkle i dříve z Ekigy zkoušel volat v první řadě z Viphone na Viphone (neb to bylo zdarma) a dovolal jsem se. :-) Od jiného operátora jsem to ovšem nezkoušel, takže nevím.

    Nemůže to být tím, že se snažíte použít nějaký kodek, který Vifouni neumí?
    30.10.2008 14:40 Honza Jaroš | skóre: 6 | blog: moje_strana_plotu | Bohnice
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    A ještě doplním, protože jsem si vzpomněl - Ekize tehdy dělal problémy NAT při příchozím hovoru, odchozí hovory fungovaly.
    30.10.2008 22:36 freshmouse
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Mimochodem, proč má článek tak nízké hodnocení? Je psán stejným stylem jako minulý, je obsáhlý, ale ne nudný (subjektivně), je dobře členěný (opět subjektivně), pojednává o zajímavém tématu... Minulý článek měl nějakých 94 %, tento jen 63 %. Co se nelíbilo?

    (Na hodnocení ve stylu "líbilo vs nelíbilo" mi tolik nezáleží, jen jsem zvědavý. Hodnocení, které mě zajímá, je slovní a jasně specifikuje klady a zápory daného materiálu. A toho bych se teď rád dočkal...)
    30.10.2008 22:38 freshmouse
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    ... a přitom čtenost tohoto článku je daleko vyšší než článku minulého.
    Grunt avatar 30.10.2008 22:55 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    KDEčkaři se snažili projevit svůj názor na GNOME?
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    30.10.2008 23:30 freshmouse
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Ale proč ne i minule? :-)
    30.10.2008 23:45 freshmouse
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Nicméně tohle se podle mě projevuje spíš u článků o Ubuntu, neboť se stále najdou tací (a je jich dost), kteří se stále nesmířili s existencí a popularitou této distribuce. Články o GNOME nejsou tak "kontroverzní".

    Další záporné hodnocení pochází taky od lidí, kteří ke mně mají záporný vztah. :-)

    ... osobně by mě zajímalo, kolik lidí hodnotí samotný článek, a kdo mě, Ubuntu atd.
    31.10.2008 11:01 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Moc to řešíš. Mě se třeba článek líbil a to nepoužívám ani Gnome ani Ubuntu ;-)
    When your hammer is C++, everything begins to look like a thumb.
    31.10.2008 12:44 freshmouse
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Já tam ale nenepsal univerzání kvantifikátor! ;-) A ani to moc neřeším, napsal jsem: "jen jsem zvědavý". Fakt mě to zajímá.
    Grunt avatar 31.10.2008 14:16 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
    Moc to řešíš.
    Přesně tak. Já si myslím, že hodnocení toho s článkem nebude mít mnoho společného.
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.