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 04:44 | Nová verze

    Nová čísla časopisů od nakladatelství Raspberry Pi: MagPi 140 (pdf) a HackSpace 77 (pdf).

    Ladislav Hagara | Komentářů: 0
    dnes 01:00 | Nová verze

    ESPHome, tj. open source systém umožňující nastavovat zařízení s čipy ESP (i dalšími) pomocí konfiguračních souborů a připojit je do domácí automatizace, například do Home Assistantu, byl vydán ve verzi 2024.4.0.

    Ladislav Hagara | Komentářů: 0
    včera 22:11 | IT novinky Ladislav Hagara | Komentářů: 0
    včera 20:55 | Nová verze

    Neziskové průmyslové konsorcium Khronos Group vydalo verzi 1.1 specifikace OpenXR (Wikipedie), tj. standardu specifikujícího přístup k platformám a zařízením pro XR, tj. platformám a zařízením pro AR (rozšířenou realitu) a VR (virtuální realitu). Do základu se z rozšíření dostalo XR_EXT_local_floor. Společnost Collabora implementuje novou verzi specifikace do platformy Monado, tj. open source implementace OpenXR.

    Ladislav Hagara | Komentářů: 2
    včera 17:22 | Nová verze

    Byla vydána nová verze 0.38.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 4.4 nebo novější a také libplacebo 6.338.2 nebo novější.

    Ladislav Hagara | Komentářů: 1
    včera 17:11 | Nová verze

    ClamAV (Wikipedie), tj. multiplatformní antivirový engine s otevřeným zdrojovým kódem pro detekci trojských koní, virů, malwaru a dalších škodlivých hrozeb, byl vydán ve verzích 1.3.1, 1.2.3 a 1.0.6. Ve verzi 1.3.1 je mimo jiné řešena bezpečnostní chyba CVE-2024-20380.

    Ladislav Hagara | Komentářů: 1
    včera 12:11 | IT novinky

    Digitální a informační agentura (DIA) oznámila (PDF, X a Facebook), že mobilní aplikace Portál občana je ode dneška oficiálně venku.

    Ladislav Hagara | Komentářů: 7
    včera 05:11 | Komunita

    #HACKUJBRNO 2024, byly zveřejněny výsledky a výstupy hackathonu města Brna nad otevřenými městskými daty, který se konal 13. a 14. dubna 2024.

    Ladislav Hagara | Komentářů: 2
    17.4. 17:55 | IT novinky

    Společnost Volla Systeme stojící za telefony Volla spustila na Kickstarteru kampaň na podporu tabletu Volla Tablet s Volla OS nebo Ubuntu Touch.

    Ladislav Hagara | Komentářů: 3
    17.4. 17:44 | IT novinky

    Společnost Boston Dynamics oznámila, že humanoidní hydraulický robot HD Atlas šel do důchodu (YouTube). Nastupuje nová vylepšená elektrická varianta (YouTube).

    Ladislav Hagara | Komentářů: 1
    KDE Plasma 6
     (68%)
     (10%)
     (2%)
     (19%)
    Celkem 556 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Dotaz: C++ vs Objective C

    6.6.2009 18:23 tina
    C++ vs Objective C
    Přečteno: 3020×

    Ahoj, chcem sa spytat na nazory na tieto dva jazyky, v com sa lisia, ktory z nich je z hladisa vykonu na tom lepsie a podobne veci. Dakujem.


    Řešení dotazu:


    Odpovědi

    6.6.2009 19:30 NN
    Rozbalit Rozbalit vše Re: C++ vs Objective C

    Takze, co jsem zjistoval oba jsou objektove a rozsirenim jazyka C. Obejctive C se v soucasnosti pouziva na MacOS projektu GNUstep..C++ je oproti tomu velice rozsireny. Takze pokud nebudes programovat pro MacOS tak C++, jinak osobne C++..

    NN

    7.6.2009 20:06 pozortucnak | skóre: 21 | blog: vecny_windowsar
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    8.6.2009 18:51 tina
    Rozbalit Rozbalit vše Re: C++ vs Objective C

    Nikto nema skusenosti?

    8.6.2009 20:48 pozortucnak | skóre: 21 | blog: vecny_windowsar
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Zeptejte se na nějakëm mac fóru...

    Dokonce i nejaký tutoriál v češtině o objective-C vyšel...

    V objective-C++ lze oba jazyky tak nějak kombinovat...
    Jsem mimořádně obtížný případ
    Fuky avatar 8.6.2009 21:02 Fuky | skóre: 52 | blog: 4u
    Rozbalit Rozbalit vše Re: C++ vs Objective C

    v com sa lisia, ktory z nich je z hladisa vykonu na tom lepsie a podobne veci

    Přijde mi to jako celkem zbytečná otázka, protože odpověď Ti stejně nic nedá, jelikož žádná jednoznačná odpověď neexistuje, stejně tak jako svět není binární tj. neexistuje jen absolutní dobro versus absolutní zlo. Záleží totiž na více faktorech:

    • co v tom chceš psát
    • jsou dostupné potřebné knihovny
    • na jaké platformě to má běžet
    • chystá se do budoucna port na další platformu
    • záleží jak dobrý překladač pro dané železo použiješ
    • co si představuješ pod pojmem výkon

    Jak již bylo řečeno Objective C je ryze Mac OS X záležitost. Co se týče Unixů, tak tam je to zase o čistém C, případně C++, záleží o jaký SW jde. Třeba takový Blender, to jsou mraky kódu v čistém C a "trošku" v C++.

    Jinak objektivní názor Ti nikdo většinou neřekne, protože každý je zastáncem toho "svého" jazyka. Ovšem na jazyku vůbec nezáleží, ten je třeba vybrat s ohledem na to jaký problém se řeší a s čím už má člověk zkušenost. Třeba v C jde vyřešit úplně všechno, byť to může být formou napsání dalšího "jazyka" specifického pro vyřešení daného problému. ;-))

    Mě se třeba moc nelíbí zbytečné obalování. Příklad: Mám železo se kterým se komunikuje na low-level úrovni. Tak borec komunikaci v C obalí C++, to obalí Javou a v ní napíše GUI. Opravdu úžasné řešení, s velice "potřebnými" mezivrstvami navíc. Jsou z toho pak desítky tisíc řádků, i když se řešení problému dá narvat do ani ne 10 000 řádků hezky přehledně v čistém C včetně multiplatformního GUI, které může být ostatně klidně v čemkoliv jiném pokud se problém rozdělí na dvě části a to klient + server.

    Takže případně popiš jaký problém chceš řešit, a určitě se najde někdo kdo Tě nasměruje k tomu "nejvhodnějšímu" nástroji.

    Pokud se ptáš zda-li použít na multiplatformní vývoj, případně na vývoj v Linuxu, Objective C nebo C++, tak jednoznačná odpověď je C++, má mnohem větší zázemí a např. ve spojení s Qt může dost zpříjemnit multiplatformní vývoj.

    8.6.2009 23:30 tina
    Rozbalit Rozbalit vše Re: C++ vs Objective C

    No ja som cital take veci, ze C++ je dost nepodarene objektove rozsirenie c-cka, kdez to Objective C je objektove rozsirenie ako ma byt. K Objective C som sa este nedostal, tak sa pytam, ludi ktory maju skusenosti z oboma jazykmi o ich nazor. Nejde mi o riesenie ziadneho problemu, iba ma to zaujima. Uvediem priklad: napisem kod v C++ bude mat ovela viac riadkov ako kod v Jave, ale v Jave pobezi pomalsie.

    Fuky avatar 9.6.2009 08:09 Fuky | skóre: 52 | blog: 4u
    Rozbalit Rozbalit vše Re: C++ vs Objective C

    Podívej se do Umeni_programovani_v_Unixu_EN.pdf, konkrétně by Tě mohla zajímat zmíňka o C++ na straně 249.

    No ja som cital take veci, ze C++ je dost nepodarene objektove rozsirenie c-cka

    Na tom názoru se mi nelíbí slovní spojení nepodarene objektove rozsirenie, protože to pak vypadá jako kdyby se Bjarne Stroustrup's snažil o to, aby C++ bylo "OO jazyk se vším všudy". Kdyby mu o to šlo, tak C++ dnes vypadá úplně jinak.

    Pak je také podle mě třeba rozlišovat "akademické" debaty od praxe. Protože právě praxe ukazuje co je životaschopné i mimo akademickou půdu. Hodně se mluví o tom jak jsou OO jazyky úžasné, moderní, šetřící práci, všechno v nich jde "samo" atp. To je, ale jen taková módní vlna, ve skutečnosti vůbec nezáleží na tom zda-li je jazyk OO nebo čistě funkcionální, protože o jeho kvalitách a použitelnosti rozhodují jiné faktory. Zkrátka to, že je jazyk OO != "kladná vlastnost a důvod pro jeho použití".

    ale v Jave pobezi pomalsie

    Podle mě to nejde říct takhle katerogicky, protože ne vždy musí být kód v Javě pomalejší.

    Zkrátka jazyk není vpodstatě důležitý, důležité je především množství kvalitních knihoven a okruh problémů, které dokáží řešit.

    Řešení 1× (Vykook)
    Vykook avatar 9.6.2009 17:08 Vykook | skóre: 23 | blog: Tomas
    Rozbalit Rozbalit vše Re: C++ vs Objective C

     No Java je IMHO pomala akorat na desktopu diky Swingu. Mimochodem za behu analyzuje kod a vypocetne narocne casti preklada primo do strojoveho kodu. V nekterych pripadech muze proto byt i rychlejsi nez C++.  Jestli se pletu, tak mne nekdo opravte ;-)

    Nejde nám o dobro druhých. Nejde nám o bohatství. Jde o čisté opojení mocí.
    9.6.2009 22:28 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Ano silne optimalizovana Java muze byt v nekterych pripadech rychlejsi nez neoptimalizovany C++ kod.
    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.
    10.6.2009 08:51 ivan | skóre: 17 | blog: ivan
    Rozbalit Rozbalit vše Re: C++ vs Objective C

    Hypopeticky dokaze v nejkterych pripadech JAVA za behu(ne behem kompilace) vyloucit lookup do tabulky virtualnich metod a provadek kod metody inline. V takovych syntetickych pripadech je JAVA rychlejsi nez optimalizovany C++ kod.

     

    10.6.2009 10:40 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Nejaky konkretni priklad ve kterem neni pozdni vazba pouzita zcela nesmyslne a kde Java provede optimalizaci a C++ kompilator ne?
    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.
    11.6.2009 10:37 cronin | skóre: 49
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Staticky C kompilator musi ponechat virtualnu vazbu vsade, kde nevie pocas prekladu rozhodnut, ktora konkretna implementacia sa puzije. Napr. preto, lebo sa jedna o kod kniznice a konkretna implementacia bude v klientskom kode. Java vie za behu zistit, ze sa pouziva konkretna finalna implementacia a moze virtualnu vazbu nahradit priamym volanim.

    Staticky C kompilator nevie robit Dead Code Elimination zalozeny na podmienkach, ktore nie je mozne vyhodnotit v case kompilacie; Java ano.

    Staticky C kompilator nevie robit Escape Analysis; Java ano.

    Staticky C kompilator nevie robit dynamicky inlajning a loop unfolding; Java ano.

    Tvrdenie "C je rychle, Java je pomala" per-se je FUD; dynamicky optimalizator moze vzdy optimalizovat kod ovela ucinnejsie ako akykolvek dobry staticky kompilator. A HotSpot v modernej Jave je velmi dobry.
    11.6.2009 11:19 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Staticky C kompilator musi ponechat virtualnu vazbu vsade, kde nevie pocas prekladu rozhodnut, ktora konkretna implementacia sa puzije. Napr. preto, lebo sa jedna o kod kniznice a konkretna implementacia bude v klientskom kode. Java vie za behu zistit, ze sa pouziva konkretna finalna implementacia a moze virtualnu vazbu nahradit priamym volanim.
    To je pekna blbost. V mnoha pripadech je zrejme ktera metoda se bude volat a toto rozhodnuti je mozne provest v dobe kompilace.
    Staticky C kompilator nevie robit Dead Code Elimination zalozeny na podmienkach, ktore nie je mozne vyhodnotit v case kompilacie; Java ano.
    Ano, tohle jsem uz videl. Kdyz budeme v C++ dynamicky detekovat informace, ktere jsou dostupne staticky, tak Java provede lepsi optimalizace. Veskery Dead Code Elimination (ktery je smysluplny) dokaze C++ kompilator provest v dobe kompilace. Komplexnejsi vyhazovani mrtveho kodu je absolutne nesmyslne.
    Staticky C kompilator nevie robit Escape Analysis; Java ano.
    Tohle mi pripada jako dost Java-only zalezitost, resp. zalezitost pro jazyky s nejakym typem spravy pameti. Klidne se necham vyvest z omylu. Pokud jde o ztotozneni pametoveho mista promenne do ktere se uklada navratova hodnota volani a promenne, ktera se predava jako navratova hodnota, tak to je pomerne bezna optimalizace (C++0x pro to ma myslim podporu primo v jazyku).
    Staticky C kompilator nevie robit dynamicky inlajning a loop unfolding; Java ano.
    OK, dobre, tady uznam ze to je jedina optimalizace, ktera by mohla ciste hypoteticky zvednout rychlost vykonavani programu. Ted je otazka jestli to ma nejaky meritelny dopad a zda budou vubec tyto optimalizace kodu trvat kratsi dobu nez je cas, ktery usetri. (v porovnani se statickym inlajningem samozrejme)
    Tvrdenie "C je rychle, Java je pomala" per-se je FUD; dynamicky optimalizator moze vzdy optimalizovat kod ovela ucinnejsie ako akykolvek dobry staticky kompilator. A HotSpot v modernej Jave je velmi dobry.
    Ano, ale jaky kod. A kolik ty optimalizace stoji? To ze Java muze provest jiste typy optimalizaci ktere jsou pro C++ kompilatory nedostupne je pomerne jasne. Problem je v tom, ze tyto optimalizace vetsinou jenom castecne eliminuji vynucenou neoptimalitu kodu.

    Ano na vecech jako jsou matematicke vypocty, kde se provadi 1:1 mapovani na instrukce procesoru je Java stejne rychla jako C nebo C++ (ale tam jaksi nema proc by neoptimalni zadny jazyk ktery se nejakym zpusobem kompiluje).

    Jediny rozumny benchmark jazyku mi dava za pravdu: http://shootout.alioth.debian.org
    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.
    11.6.2009 12:03 cronin | skóre: 49
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Podla Teba su vsetci architekti v Sun-e blbci a do Javy implementovali uplne zbytocne veci, ktore robia viac skody ako uzitku? Nejdem Ti viac vyvracat Tvoje argumenty. Do buducnosti si aspon zapamataj, ze kym sa zacnes k niecomu vyjadrovat, uzrejmi si aspon, ze rozumies pojmom. S Tvojej odpovede je zrejme, ze o Jave nevies nic: s virtualnymi vazbami si mimo, DCE si znacne podcenil a o Escape Analysis si dnes pocul prvykrat. No a ten inlining a loop unfolding je prave tak optimalizacia, ktora rovnako pravdepodobne rychlost zvysi ako aj znizi; skus vygooglit "cupmemory.pdf".
    11.6.2009 12:13 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Podla Teba su vsetci architekti v Sun-e blbci a do Javy implementovali uplne zbytocne veci, ktore robia viac skody ako uzitku?
    WTF? Co ma tohle proboha spolecneho s rychlosti vysledneho binarniho kodu? Podle tehle logiky jsou blbci snad uplne vsichni.
    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.
    11.6.2009 12:50 cronin | skóre: 49
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Komplexnejsi vyhazovani mrtveho kodu je absolutne nesmyslne.
    DCE v Jave je ovela komlexnejsia ako ta, ktoru je mozne vykonat staticky v case prekladu. Takze podla Teba v Sun-e implementovali absolutne nezmysly.
    11.6.2009 13:09 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Viz. paticka, tohle nema cenu.

    To ze Java je pomala a ze C++ spolu s Fortranem generuji nejrychlejsi binarky (v zavesu za nimi Cecko) je fakt. Nechces ho prijmout, fajn. Hazej si sem dal FUDy o tom ze Java muze byt rychlejsi nez 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.
    11.6.2009 11:23 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Staticky C kompilator musi ponechat virtualnu vazbu vsade, kde nevie pocas prekladu rozhodnut, ktora konkretna implementacia sa puzije. Napr. preto, lebo sa jedna o kod kniznice a konkretna implementacia bude v klientskom kode. Java vie za behu zistit, ze sa pouziva konkretna finalna implementacia a moze virtualnu vazbu nahradit priamym volanim.
    Nemluve o tom, ze po zjisteni realne adresy nema duvod (pokud neni dana promenna volatile) zjistovat adresu znovu, dokud nedojde k prepsani promenne.
    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.
    11.6.2009 13:38 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    No ja som cital take veci, ze C++ je dost nepodarene objektove rozsirenie c-cka, kdez to Objective C je objektove rozsirenie ako ma byt. K Objective C som sa este nedostal, tak sa pytam, ludi ktory maju skusenosti z oboma jazykmi o ich nazor.
    Tak zkuste k tomu čtení navíc něco dělat prakticky a brzo poznáte co Vám sedne a co ne. Názor někoho jiného je tady platný jak boty ušité na cizí nohu.
    Uvediem priklad: napisem kod v C++ bude mat ovela viac riadkov ako kod v Jave, ale v Jave pobezi pomalsie.
    Kritériem pro použitelnost jazyka by v žádném případě neměl být počet řádků. Rychlost výsledného programu nemá s jazykem nic společného, spíše s případným překladačem nebo interpretem.
    In Ada the typical infinite loop would normally be terminated by detonation.
    11.6.2009 17:33 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Rychlost výsledného programu nemá s jazykem nic společného, spíše s případným překladačem nebo interpretem.

    Jazyk ovšem implikuje množinu používaných překladačů a interpretrů, i když se jistě najdou nějaké obskurní kombinace :)
    11.6.2009 23:46 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Jazyk ovšem implikuje množinu používaných překladačů a interpretrů, i když se jistě najdou nějaké obskurní kombinace :)

    Ne, to je právě mylný pohled. Kvalitu překladače / interpretu především implikuje poptávka. Jazyk maximálně usměrňuje způsob implementace a to nikoliv ve stylu lepší-horší ale ve stylu "tak nebo jinak".
    In Ada the typical infinite loop would normally be terminated by detonation.
    12.6.2009 00:16 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Kvalitu překladače / interpretu především implikuje poptávka.

    No dobře, a teď se pane ekonomický teoretiku vraťte zpět na zem a podívejte se na konkrétní používané produkty (interpretry jazyků) a jejich rychlosti :) Nehodlám řešit obecné věci jako že teoreticky by šlo zdroják v javě přeložit do zdrojáku v C++ a ten překompilovat, protože teorie je zbytečná v momentě, kdy mám něco, na co si mohu sáhnout a změřit to. Tak na mne nechoďte s "kvalitu implikuje poptávka", na to serepes! protože stejně nebudete rychlost překladače změřit na základě výpočtu jak moc je poptávaný :) Takže: stávající stav věcí ve vesmíru je takový (bez ohledu na to co k tomu vedlo, jestli poptávka nebo skvrny na slunci), že rychlosti interpretrů jsou dány jazykem, který interpretují. Interpretry bashe jsou pomalejší než interpretry přeloženého C a ty jsou rychlejší než interpretry PHPčka. Opakuji, je úplně irelevantní co k tomu vedlo, jestli poptávka, fakt že něco je interpretované a něco kompilované, nebo tlak vzduchu.
    12.6.2009 00:50 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Hm.. nechtěl jsem být tak ofenzivní, držme se věci.

    Napsal jsem že jazyk implikuje množinu překladačů/interpretrů pro jeho překlad/interpretaci. Tím jsem myslel, že jazyk tuto množinu VYMEZUJE, tedy stanoví, určuje, jako že když řeknu C++ (jazyk) tak vy řeknete g++ (překladač).

    Asi jsem to pochopil jako že jsem řekl že jazyk tuto množinu OMEZUJE (tedy že omezuje interpretry co do rychlosti a kvality), jako že když já řeknu java tak vy řeknete "java musí být nutně pomalu interpretována (interpretovaný bytecode)". Tak to jsem neřekl ani nemyslel.

    Měl jsem na mysli že lze hovořit o jazyku jako o něčem co zastupuje množinu překladačů, a že co do srovnání rychlosti je to dostatečné (i když se jistě najdou výjimky v podobě několika konkrétních programů a interpretrů kde bude výsledek opačný), nikoliv že musíme mluvit o konkrétních implementacích překladačů z konkrétní univerzity konkrétní verze konkrétního data. Uf.
    12.6.2009 00:51 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    sed -e "s/Asi jsem to/Asi jste to/" post
    sleep(21600)
    12.6.2009 07:42 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    podívejte se na konkrétní používané produkty
    vs.
    nikoliv že musíme mluvit o konkrétních implementacích překladačů
    ???

    Každopádně tohle není o ekonomice (i když někde v pozadí asi ano), ale o prostém počtu a kvalitě lidí, kteří se věnují nějakému konkrétnímu překladači. Řešit překlad z javy do c++ asi nemá smysl (nikdo to nechce), ale existují svižné imlementace jvm i dobré překladače c++.
    In Ada the typical infinite loop would normally be terminated by detonation.
    12.6.2009 09:25 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Jistě, to se přece nevylučuje, naopak!

    a) Podívejte se na konkrétní používané produkty (např. suní java vs g++, pokud chcete srovnávat rychlost překladačů) a dostanete výsledek

    b) Nemusíme mluvit o konkrétních překladačích ale stačí mluvit o jazyku, protože 9 z 10 testů dle bodu a) dopane ve prospěch toho překladače, který je pro jazyk C, a v neprospěch toho, který je pro jazyk java.

    Ten desátý test je to pro lidi jako vy, aby mohli říct "podívejte, i pro javu existuje překladač a vm které dají dohromady rychlý program". No, výborně. Jeden se našel. Haleluja.
    13.6.2009 10:53 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    No a ten jeden nestačí nebo co? :-)
    In Ada the typical infinite loop would normally be terminated by detonation.
    13.6.2009 14:15 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Kdyby stačil, tak by programy v javě nebyly tak pomalé :) Takže zjevně stačí jen jako argument pro javisty.
    13.6.2009 15:39 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Ale já nejsem javista. Nechápu, proč nestačí, že existuje jedna svižná implementace překladače + vm javy? Na co jich chcete deset?
    In Ada the typical infinite loop would normally be terminated by detonation.
    13.6.2009 16:15 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    pokud to "svižná" znamená "rychlejší než nejpomalejší C" tak by to leccos vysvětlovalo
    13.6.2009 21:22 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Koně za céčkaře, který nemá komplexy z Javy!
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    13.6.2009 21:52 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Kralovstvi za Javistu ktery nema komplexy z toho, ze Java je pomala.
    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.
    13.6.2009 22:01 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Na tenhle mýtus už dneska nikoho nedostanete :-) Java je pořád ještě o nějaké to procento pomalejší než C/C++, ale pomalá, to sotva. U Swingu bych to bral, tam se asi musí opravdu umět, aby rychlost GUI za něco stála, ale zbytek už pro téměř všechna použití naprosto nepředstavuje výkonnostní problémy.
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    13.6.2009 22:07 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Ne, na tenhle mytus nikoho nedostanete. O nejake procenta samozrejme jde, bohuzel pro Javu dost velke procenta.

    http://shootout.alioth.debian.org/
    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.
    14.6.2009 10:34 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Za prvé, první řádky toho Vašeho Svatého benchmarku™ říkají
    How can we benchmark a programming language? We can't - we benchmark programming language implementations.

    How can we benchmark language implementations? We can't - we measure particular programs.
    Což znamená přesně to co to znamená a nic jiného. Pro nechápavé: benchmarkujeme konkrétní programy na konkrétním překladači, nikoliv jazyky. Pokud se na to podíváte podrobně, tak u různých programů jsou pořadí velmi různá a to i v rámci různých implementací v témže jazyce. Mimochodem, některé ty implementace jsou dokonce paralelní.

    Za druhé, nevím jak jste na základě toho došel k názoru, že nejrychlejší kód produkují překladače Fortranu :D Pokud něco, tak Fortran se používá pro matematické úkoly zejména z historických důvodů: většina dobrých implementací (např. LAPACK) tu totiž je již 20-30 let a pouze se optimalizují.

    Za třetí, kdybyste si přečetl ty benchmarky a i ty zdrojové programy pořádně, tak dojdete k názoru, že v závislosti na tom, co skutečně ve výsledku dělají s hardwarem naprosto odpovídají očekávání. Je stěží překvapující, že Java zaostává v programech, kde používá dynamickou alokaci nebo řetězce pomocí třídy místo statické alokace a char*; nebo že Ada zaostává v programech, kde intenzivně kontroluje výsledky aritmetických operací vůči rozsahu jejich typu. Pokud by použité implementace tyto vlastnosti nevyužívaly (nebo některé jiné je využívaly), jistě by to dopadlo jinak. Na druhou stranu se zamyslete nad tím, zda Vaše účetní aplikace skutečně vyžaduje, aby výsledek byl o 10% času (typicky pár sekund) dříve, nebo aby neudělal z -1 na něčí faktuře něco jako dvě miliardy.

    Jinými slovy, Vaše kydání hnoje na Javu je naprosto mimo... né že bych se zastával Javy, ale Váš přístup má víc děr než ten nejlepší ementál...
    In Ada the typical infinite loop would normally be terminated by detonation.
    14.6.2009 18:46 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Ono to pro Javu není zas tak špatné, pořád z toho benchmarku vychází (Sun Java 1.6.0_13 Server) jako třetí nejlepší, hned po C++ a C (obojí z GCC 4.3.3). Pak bychom si mohli hrát s čísly, o kolik procent to tedy je (Wikipedie tvrdí, že podle výsledků z března byla Java pomalejší o 5 až 15 procent, což pravda z těch čísel, která vidím teď, asi nevydyndám :-) ), mohli bychom se ptát, jak moc průkazný ten benchmark je, a tak dál. Mně ten výsledek prostě přijde dobrý. Plain C tam má například výrazně větší rozptyl než Java.
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    15.6.2009 00:37 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Na to ze jde v podstate o ciste algoritmy (coz je prave oblast kde nema java proc byt pomala) to je docela dost. Nemluve o tom ze to je spis o 60-100% (zalezi na ktery procesor koukas).

    Ten benchmark je otevreny, takze kdyz mas pocit ze je vuci nejakemu jazyku nefer, muzes navrhnout dalsi testovaci program, nebo dodat jinou implementaci pro konkretni jazyk (nic prumernejsiho ani ferovejsiho nenajdes).
    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.
    15.6.2009 00:34 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Což znamená přesně to co to znamená a nic jiného. Pro nechápavé: benchmarkujeme konkrétní programy na konkrétním překladači, nikoliv jazyky. Pokud se na to podíváte podrobně, tak u různých programů jsou pořadí velmi různá a to i v rámci různých implementací v témže jazyce. Mimochodem, některé ty implementace jsou dokonce paralelní.
    Coz je ale presne to o cem se tady bavime. Co je jazyk? Jazyk sam o sobe neni nic, to je jenom specifikace. Celou dobu se tady bavime o implementacich jazyka, protoze o nicem jinem se nema smysl bavit.
    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.
    14.6.2009 00:30 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Teď jste mne odhalil. Ano, koupil jsem si Mercedes, taky drahý mobil, a programuji v C, abych si vyléčil komplexy z lidí, kteří jezdí v Citroenu, mají Alcatel a programují v javě :)
    default avatar 14.6.2009 09:42 default | skóre: 22 | Madrid
    Rozbalit Rozbalit vše Re: C++ vs Objective C

    A pomohlo to? :-D

    14.6.2009 10:10 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Skoro jo, akorát ti majitelé Alcatelů mě ještě trápí :)
    default avatar 14.6.2009 11:06 default | skóre: 22 | Madrid
    Rozbalit Rozbalit vše Re: C++ vs Objective C

    To bude ten problém. Spíš bys měl pracovat na sobě než na majitelích Alcatelů. :-D

    Mně třeba jsou Mercedesy a Alcately úplně volný. :-)

    14.6.2009 11:17 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    No tak hlavně že Tvůj smysl pro ironii je v pořádku. Zdraví především.
    default avatar 14.6.2009 11:25 default | skóre: 22 | Madrid
    Rozbalit Rozbalit vše Re: C++ vs Objective C

    Z toho nic. Já jsem jen blbeček. Nic víc. :-D

    14.6.2009 17:40 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Tak pak pro vás mám v rámci celoevropského projektu podpory blbečků speciální odhlení. Můj příspěvek výše byla jen zvrhlá a zavrženíhodná ironie. Kam jinam by se také měla dobrat diskuse "programovací jazyk A vs programovací jazyk B", když fakta jsou dávno na stole, no ne? :)
    14.6.2009 17:44 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Mimochodem, koukám že dotaz se jmenuje C++ vs Objective C, takže kdo sem přišel s tou "pomalou javou"? :D
    default avatar 14.6.2009 19:29 default | skóre: 22 | Madrid
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Můj příspěvek výše byla jen zvrhlá a zavrženíhodná ironie.

    Proto jsem napsal tu kravinu. :-D

    14.6.2009 10:13 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Jenže céčko není Mercedes. Céčko je motor a čtyři kola a volant. Zbytek, včetně předního skla, chybí a nikdo se neobtěžuje si ho dodělat. Pokud chcete porovnat výkon (překladače) Javy a C, tak to udělejte na programu, který využívá pouze tyto komponenty, přeložte je oba do téhož strojového kódu (tedy nikoliv jedno pro x86 a druhé pro jvm) a uvidíte, že rozdíl v rychlosti bude nula nula nic. Jinými slovy, nesrovnávejte jabka a hrušky a stejné kritérium bude platit i pro ostatní jazyky.
    In Ada the typical infinite loop would normally be terminated by detonation.
    14.6.2009 10:34 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Aha. V tom pripade je ale Java auto s obytnym privesem, ktery nejde odpojit.
    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.
    14.6.2009 10:43 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Jistě, budu srovnávat Mercedes a Citroen tak, že oběma dám stejná kola, stejné volanty, stejný motor a stejnou karosérii. Na hlavu tu někdo neupadl?
    frEon avatar 16.6.2009 15:11 frEon | skóre: 40 | Praha
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    hehe, ty auta a programovaci jazyky mi pripominaji toto. :-D
    Talking about music is like dancing to architecture.
    9.6.2009 16:37 Lojza
    Rozbalit Rozbalit vše Re: C++ vs Objective C

    "rešení problému dá narvat do ani ne 10 000 řádků"

    tohle je teda úchylka na n-tou. Frameworkách či jiných jazycích než C jste neslyšel?  S největší pravděpodobností váš problém půjde vyřešit na méně než sto řádek, pokud použijete odpovídající nástroje.

    O multiplatformním software si nechte klidně dál zdát. Právě na jednom pracuji (od z/Linuxu až po Windows). Většina zdrojáku se skládá z #ifdef  ....

    9.6.2009 17:32 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Frameworky... to bude něco co negeneruje zdorjový kód, jo? :)
    9.6.2009 21:19 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    To bude něco, co je v naprosté většině případů mnohem lépe naprogramováno, odladěno a optimalizováno než vlastní kód. Doplněk: platí zejména pro "programátorské narcisty", kteří mají vrozený odpor k cizímu kódu.
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    9.6.2009 21:58 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Ale to jsme tam kde jsme byli, takový framework mimo uvedeného také přináší mnoho řádek kódu, z nichž jen část je pro řešení úlohy nezbytná. Tím se úloha ve výsledné velikosti nezmenší, často naopak! Samozřejmě množství NOVÉHO kódu je menší, ale nevím jestli zrovna tohle je to, o čem tu byla řeč?
    9.6.2009 22:36 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Jasně že úloha se zvětší, musíte toho naprogramovat víc (a uděláte víc chyb a tak dále). Nadávat na abstrakční vrstvy je sice paráda, ale jak praví přísloví, je jen jeden problém, který abstrakce nevyřeší :-)
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    Fuky avatar 9.6.2009 18:42 Fuky | skóre: 52 | blog: 4u
    Rozbalit Rozbalit vše Re: C++ vs Objective C

    a) Ne vždy jsou na danou činost k dispozici odpovídající nástroje, a ne vždy se vyplatí použít "univerzální řešení". Dost často je výhodnější "řešení na míru", vše má pak člověk pod kontrolou a těch 10 000 řádků je to sakumprásk se vším všudy.

    b) Ono když #ifdef ... přesuneš na nejnižší vrstvu a nad ní vystavíš vrstvu platformě nezávislou, tak se velice brzy dopracuješ do stavu, kdy tuto nenižší platformě závislou vrstvu odladíš tak, že do ní nemusíš zasahovat a používáš jen multiplatformní vrstvu nad tím. ;-)

    Zkrátka svět není čenobílý a problémy jsou někdy dost specifické...

    default avatar 14.6.2009 21:28 default | skóre: 22 | Madrid
    Rozbalit Rozbalit vše Re: C++ vs Objective C

    Objective-C: já si s tím hrál. Pokud nemáš Mac OS X, tak si ho buď pořiď, nebo na něj zapomeň.

    Objective-C je blíž Javě než C++, takže pokud nemáš rád Javu, tento jazyk si nezamiluješ.

    Jo — a bez těch Applích frameworků to nemá smysl. Maximálně tak na konzolový Hello World. A možná ani to nebude fungovat. Nevím, na zkoušení Open Source a Objective-C jsem neměl odvahu.

    Vykook avatar 15.6.2009 10:01 Vykook | skóre: 23 | blog: Tomas
    Rozbalit Rozbalit vše Re: C++ vs Objective C

     Tak to mas spis hodne spolecnyho Java s C++, nez Java s Objective-C :) Pokud nemas OS X, tak muzes pouzit GNUStep, Cocotron a X opensource knihoven. Navic jde Objective-C michat s C++.

    Nejde nám o dobro druhých. Nejde nám o bohatství. Jde o čisté opojení mocí.
    default avatar 16.6.2009 16:03 default | skóre: 22 | Madrid
    Rozbalit Rozbalit vše Re: C++ vs Objective C

    Tak to mas spis hodne spolecnyho Java s C++, nez Java s Objective-C :)

    Jen pár otázek:

    • Jak udělám v Objective-C mnohonásobnou dědičnost (nechci pattern, chci stejné řešení, jaké má C++)?
    • Jak v C++ udělám Javí Interface (v Objective-C se to jmenuje Protocol)?
    Vykook avatar 16.6.2009 19:22 Vykook | skóre: 23 | blog: Tomas
    Rozbalit Rozbalit vše Re: C++ vs Objective C

     Na to ti neodpovim, v C++ nedelam a v Objective-C jen par dni. Beztak jsem myslel hlavne podobnou syntaxi, u niz je podobnost Javy a C++ pomerne dost nepopiratelna.

    Nejde nám o dobro druhých. Nejde nám o bohatství. Jde o čisté opojení mocí.
    default avatar 16.6.2009 19:30 default | skóre: 22 | Madrid
    Rozbalit Rozbalit vše Re: C++ vs Objective C

    V pohodě. Já měl na mysli objektový model. Java (a Objective-C) používá model Interface—třída s "jednoduchou" dědičností, zatímco C++ interfacy nemá a má mnohonásobnou dědičnost.

    Přeji hodně štěstí s Objective-C.

    Mimochodem: zkoušel jsi ty free frameworky? Jaká je jejich kvalita? Co vše uměj?

    16.6.2009 22:08 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Tak protože má C++ vícenásobnou virtuální dědičnost, můžeš v něm rozhraní jednoduše nahradit čistě virtuálními (pure virtual) předky. Opačným směrem to asi moc dobře nepůjde :-) Teda ne že bych neměl rád javovská rozhraní (typ versus třída… :-) ), naopak.
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    Vykook avatar 17.6.2009 17:22 Vykook | skóre: 23 | blog: Tomas
    Rozbalit Rozbalit vše Re: C++ vs Objective C

     Vzhledem k tomu ze jedu na OS X, tak zatim nebyla potreba. Z Cocotronich stranek sem vycetl ze minulej rok pridali castecnou podporu Objective-C 2.0, vic sem z jejich stranek bohuzel nevycetl. Podle meho nazoru se bude clovek muset hodne krotit a kontrolovat aby s tim clovek v Xcode udelal aplikaci co pojede i jinde...

    Nejde nám o dobro druhých. Nejde nám o bohatství. Jde o čisté opojení mocí.
    17.6.2009 13:10 Tomáš
    Rozbalit Rozbalit vše Re: C++ vs Objective C

    Vícenásobná dědičnost z C++ je v jistém smyslu ekvivalent pro ObjC protocol. Problém je ve vícenásobné dědičnosti a je znám pod jménem diamantový problém en.wikipedia.org/wiki/Diamond_problem. V objektovém programování má potomek schopnost hrát roli předka. V obrázku na odkazu ve wikipedii třída D nemůže plnohodnotně roli C protože přepsané metody z A se budou vyhledávat ve třídě B nikoliv v C. V C++ je problém ještě složitější, protože veřejné attributy  jsou identifikovány jako relativní pointer vůdči počátku třídy a metody jsou pak indentifikovány jako číselný index do tabulky virtuálních metod (VMT). Při vícenásobné dědičnosti dochází ke konfliktům mezi těmito offsetty resp. indexy. Vícenásobná dědičnost prostě přináší spoustu problémů. Řešením problému pro attributy je zákázání vícenásobné dědičnosti. Řešením problému pro metody je opuštění identifikace metod pomocí číselných indexů ve VMT a nahrazením celé VMT hash tabulkou s klíčem typu string [jméno metody + typový seznam parametrů]. Tento klíč se jmenuje selector. Takovýto přístup Vám dá úplnou volnost pro dědění, ale jen pro metody. Dokonce můžete v ObjC implementovat metodu se stejným selektorem nezávisle ve dvou různých objektech a tyto objekty se pak budou chovat jako potomci jednoho (virtuálního) objektu, ze kterého dědí tuto metodu. Koncept protokolů v ObjC je pak jen pomocnou berličkou nad tímto mechanismem selektorů ( protokol = sada selektorů/metod ). Řešení se selektory přináší zase jiné problémy. Např. jak řešit kolize stejných selektorů pocházejících z různých protokolů a další.

    Nyní se můžeme vrátit k Vaší otázce.

    • Na úrovni method vícenásobnou dědičnost v ObjC uděláte pomocí prosté implementace method. Nebo aby jste si ušetřil práci uděláte tvz method forwarding en.wikipedia.org/wiki/Objective-C#Forwarding. (Java forwarding neumí - musíte pro každou metodu protokolu forward implementovat) V metodě forward budte pak explicitně řešit problém vícenásobné dědičnosti, kdy budete hledat kterému z přímých předků zprávu poslat. Na úrovni public/protected attributů to v ObjC nejde. BTW public attributy se příliš neslučují s principy OOP.
    • Protocol implementovaný v C++ by byla abstraktní třída bez jakýchkoli attributů. A tato třída by ve všech potomcích musela být děděna jako virtual aby se vám ve VMT objevovala jen jednou. ( class A : public virtual Protocol : public virtual Protocol ... versus class A : public Protocol : public Protocol ... )www.cprogramming.com/tutorial/virtual_inheritance.html

     

    17.6.2009 14:19 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Protocol implementovaný v C++ by byla abstraktní třída bez jakýchkoli attributů. A tato třída by ve všech potomcích musela být děděna jako virtual aby se vám ve VMT objevovala jen jednou. ( class A : public virtual Protocol : public virtual Protocol ... versus class A : public Protocol : public Protocol ... )www.cprogramming.com/tutorial/virtual_inheritance.html
    Brr no fuj. Interface, ktery je implementovan castecne ve dvou ruznych tridach, ktere jsou pak podedene do spolecne tridy. Vetsi humus jsem uz dlouho nevidel.
    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.
    17.6.2009 14:42 Ivan
    Rozbalit Rozbalit vše Re: C++ vs Objective C

    Dalsi moznosti jak implementovat protokol/interface je pomoci sablon. Viz Andrei Alexandrescu:  Modern C++ programing

    Akorat to buhuzel ze zdrojaku neni nijak zrejmy ze se jedna to tento design pattern.

     

    9.6.2009 08:55 pozortucnak | skóre: 21 | blog: vecny_windowsar
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    9.6.2009 09:55 Lojza
    Rozbalit Rozbalit vše Re: C++ vs Objective C

    Ta zásadní informace je - Objective-C je sice podporován gcc, ale (!!!) libobjc, tj. ta nejzákladnější knihovna je pevně v rukou Apple, který vypouští pouze Mac OS verzi. Existuje sice GNU verze, která je ale hóóódně pozadu za specifikací a lepší to nejspíše nebude.

    Takže - pokud máš Mac OS, tak rozhodně doporučuji. Jako objektová nadstavba + frameworky okolo je to neskutečně vymakané. Pokud nemáš Mac OS a chceš programovat na linuxu, tak se připrav na životní strádání a útrapy. Pokud chceš programovat na Windows, tak na to zapomeň.

    9.6.2009 10:18 nigol
    Rozbalit Rozbalit vše Re: C++ vs Objective C

    Existuje nějaký Cocotron, ale v praxi jsem to nezkoušel www.cocotron.org/

    Jinak ale souhlas s tím, že to má Apple fakt dobře vymakané.

    9.6.2009 12:28 peter
    Rozbalit Rozbalit vše Re: C++ vs Objective C

    A existuju v Mac OS X aj nieake vymakane frameworky pre C++ nieco podobne ako cocoa?

    9.6.2009 16:30 Lojza
    Rozbalit Rozbalit vše Re: C++ vs Objective C

     Cocoa můžeš používat i z C++. Přímých wrapperů je tam podporováno několik. 

    Vykook avatar 9.6.2009 16:58 Vykook | skóre: 23 | blog: Tomas
    Rozbalit Rozbalit vše Re: C++ vs Objective C

     Carbon, jenze jeho vyvoj uz nepokracuje a za par let uz v OS X vubec byt nemusi...

    Nejde nám o dobro druhých. Nejde nám o bohatství. Jde o čisté opojení mocí.
    9.6.2009 20:35 pozortucnak | skóre: 21 | blog: vecny_windowsar
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    omfg ještě tu máme jazyk D... :-)
    Jsem mimořádně obtížný případ
    9.6.2009 20:40 pozortucnak | skóre: 21 | blog: vecny_windowsar
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Příloha:
    • D.7z (535311 bytů)
    Něco o jazyku D - příloha
    Jsem mimořádně obtížný případ
    9.6.2009 22:35 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Reknu ti to takhle. Ten kdo se v tom vyzna, ti tady nebude odpovidat, vsechno co se tady dozvis jsou naprosto FUDy.

    Jinak obecne Objective-C je pomerne cisty objektovy, vyrazne dynamicky jazyk. Od Cecka i C++ je dost daleko, spis ma bliz k Javascriptu.

    C++ je snad jediny zcela univerzalni programovaci jazyk. Obvykle zapasi s Ceckem a Fortranem v oblasti vykonu vysledne binarky (i kdyz Cecko obcas zustava dost pozadu). Ostatni jazyky se k nim vykonnostne priblizuji pouze ve velice specialnich pripadech.
    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.
    Vykook avatar 10.6.2009 06:20 Vykook | skóre: 23 | blog: Tomas
    Rozbalit Rozbalit vše Re: C++ vs Objective C

     No od Cecka rozhodne daleko neni a uz vubec nic nema spolecnyho s JavaScriptem. Jedna se v podstate o cisty C s  objektovou omackou ze SmallTalku. Jde to dokonce tak daleko, ze zdrojak napsanej v cistym C jde zkompilovat Objective-C kompilatorem.

    Nejde nám o dobro druhých. Nejde nám o bohatství. Jde o čisté opojení mocí.
    10.6.2009 10:38 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Vlastnostmi jazyka (trochu mi to v tom predeslem prispevku vypadlo).
    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.
    10.6.2009 10:14 Lojza
    Rozbalit Rozbalit vše Re: C++ vs Objective C

     Jestli je teda něco FUD a slátanina, tak je to váš příspěvek. Na tohle nemá ani cenu odpovídat

    10.6.2009 10:38 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Zajimave, ze ti to za tu odpoved stalo.
    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.
    11.6.2009 10:24 Lojza
    Rozbalit Rozbalit vše Re: C++ vs Objective C

     Nestálo. nerozebíral jsem ani jednu z těch kravin.

    11.6.2009 13:36 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Jo, taky mi to přijde že si autor ušil na sebe bič. :-)
    In Ada the typical infinite loop would normally be terminated by detonation.
    11.6.2009 16:16 podlesh | skóre: 38 | Freiburg im Breisgau
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Reknu ti to takhle. Ten kdo se v tom vyzna, ti tady nebude odpovidat, vsechno co se tady dozvis jsou naprosto FUDy.
    Souhlas. Například že Objective C má něco společného s Javascriptem. Dva dny jsem o tom přemýšlel a nepřišel jsem na nic. Oba jazyky používají složené závorky, ale to C a C++ také.
    Jinak obecne Objective-C je pomerne cisty objektovy, vyrazne dynamicky jazyk. Od Cecka i C++ je dost daleko, spis ma bliz k Javascriptu.
    11.6.2009 16:36 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    http://www.abclinuxu.cz/poradna/programovani/show/267732#26
    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.
    11.6.2009 17:48 podlesh | skóre: 38 | Freiburg im Breisgau
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    No jistě že vlastnostmi jazyka. Podobnosti jako že většina uživatelů obou jazyků jsou muži jsem ani neuvažoval.

    Ale pořád mě nic nenapadá. Asi je to tím, že mám s oběma jazyky praktické zkušenosti.
    11.6.2009 17:50 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Rozuměj, je to dynamicky typované (teda objekty v ObjeCu)! To běžnému C++kaři jako podobnost docela postačuje :-)
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    11.6.2009 18:41 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    OK, tak jinak. Kdyz se vam nelibi javascript, tak co takhle Smalltalk?
    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.
    12.6.2009 00:20 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    ...kdybyste mohli případně nějak stručně shrnout o čem se tu vlastně bavíte... Nějak se to v tom vlákně ztratilo tak že bychom se zase chytli... :D
    16.6.2009 07:50 podlesh | skóre: 38 | Freiburg im Breisgau
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    No to je právě něco úplně jiného. ObjectiveC je děláno tak aby se v mnohém podobalo Smalltalku. Javascript je ale úplně jiný jazyk s velmi odlišnými vlastnostmi.
    15.6.2009 22:34 KS | skóre: 10 | blog: blg | Horní polní u západní dolní
    Rozbalit Rozbalit vše Re: C++ vs Objective C

    S objective-c mám nějaké zkušenosti. Jazyk ma zajímavé fičury, ale přijde mi dost neohrabaný. Napsat v objective-c pitomý singleton je k posrání. Samozřejmě člověk ho napíše jendnou a potom jenom kopíruje, případně si udělá makro, ale v porovnání s luxusem v Jave to je utrpení. Dlouho jsem si zvykal na syntaxi a nemyslím si, že bych si úplně zvykl.

    Frameworky od Applu v tomto jazyce napsané jsou ale výborné, to vidím jako jediný důvod proč tenhle jazyk používat.

    Pochybnost, nejistota - základ poznání
    16.6.2009 07:51 podlesh | skóre: 38 | Freiburg im Breisgau
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Co je na tom k posrání a v čem spočívá ten luxus v Javě?
    16.6.2009 08:58 KS | skóre: 10 | blog: blg | Horní polní u západní dolní
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Pochybnost, nejistota - základ poznání
    16.6.2009 09:57 podlesh | skóre: 38 | Freiburg im Breisgau
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Aha, takže jasně definovaný vícevláknový memory model a garbage collector v Javě? To je docela velká výhoda, odstraňuje spoustu problémů (lépe řečeno přenáší je na bedra toho kdo implementuje JVM).

    Jinak mi přijde luxusnější Objective C, protože má metody třídy. Plus další feature, které se v Javě řeší reflexivní magií.
    16.6.2009 10:04 KS | skóre: 10 | blog: blg | Horní polní u západní dolní
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Aha, takže jasně definovaný vícevláknový memory model a garbage collector v Javě? To je docela velká výhoda, odstraňuje spoustu problémů (lépe řečeno přenáší je na bedra toho kdo implementuje JVM).

    Jo, je přece lepší když se udělá pořádně JVM, ušetří se tak práce mnoha programátorů. Programátor rád přenese své problémy na bedra někoho jiného :).
    Jinak mi přijde luxusnější Objective C, protože má metody třídy. Plus další feature, které se v Javě řeší reflexivní magií.

    Metody třídy jsou snad i v Javě, třeba v tom singletonu metoda getInstance.
    Pochybnost, nejistota - základ poznání
    16.6.2009 12:31 podlesh | skóre: 38 | Freiburg im Breisgau
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Metody třídy jsou snad i v Javě, třeba v tom singletonu metoda getInstance.
    V Javě existují tzv. "statické metody", které skutečně na první pohled vypadají jako metody třídy. Ve skutečnosti jsou to ale jen obyčejné funkce (procedury) v namespace patřičné třídy. "Pravé" metody třídy jsou skutečné metody, které má objekt té třídy - instance metatřídy (tady by to asi chtělo obrázek).

    Prakticky řečeno: metody třídy se dají dědit a přetěžovat, stejně jako normální metody. Statické metody se dědit nedají (je možné v potomkovi definovat metodu znovu, ale jsou to pak zcela nezávislé procedury).

    Teď jenom doufám, že mě nešálí nespolehlivá paměť a všechno toto prakticky platí i o Objective C (přeci jen, je to už deset let).
    16.6.2009 12:58 KS | skóre: 10 | blog: blg | Horní polní u západní dolní
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Otázkou pořád zůstává, k čemu je to dobré? Třeba v případě implementace toho singletonu podle Applu se používá metoda třídy allocWithZone aby se zabránilo vytvoření více instancí. V porovnání s řešením v Javě to je opravdu k posrání.
    Pochybnost, nejistota - základ poznání
    16.6.2009 13:24 podlesh | skóre: 38 | Freiburg im Breisgau
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    No že se to, na rozdíl od Javy, nemusí všude kopírovat copy+paste. TO je pak k posrání.
    19.6.2009 01:30 Tomáš
    Rozbalit Rozbalit vše Re: C++ vs Objective C

    Zkuste se na to podívat z pohledu volání metody. Buď v době překladu přesně víte jakou funkci zavolat. Pak se jedná o statickou metodu / metodu třídy. Typickým příkladem jsou konstruktory objektů. Pokuď nejste schopen určit jakou funkci volat (nevíte na ní ukazatel), pak musíte jít hledat do prototypu objektu (= třída) a jedná se o tvz. virtuální metodu/metodu objektu.

    Z ohledem na tento pragmatický pohled se mi jeví konstrukce "pravé metody třídy"  s možností dědičnosti a přetížení poněkud nesmyslná. Funkcionalita "pravé metody třídy" se totiž úpně překrývá s druhým uvedeným modelem volání a jednalo by se pak o běžnou virtuální metodu.

    19.6.2009 12:20 podlesh | skóre: 38 | Freiburg im Breisgau
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Ano, metoda třídy je skutečně běžná virtuální metoda. Ale ne objetu, ale třídy. Samozřejmě to znamená že k té třídě musí existovat onen "prototyp" - metatřída.

    Nesmyslné to určitě není. I když, to je věc názoru - jsou lidé kteří celou koncepci virtuálních metod považují za nesmyslnou, že.
    16.6.2009 10:34 Lojza
    Rozbalit Rozbalit vše Re: C++ vs Objective C

     A _současný_ Objective-C snad nemá garbage collector?

    16.6.2009 11:32 podlesh | skóre: 38 | Freiburg im Breisgau
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    Tak to dopadá když jednou zapomenu napsat upřesňující poznámku :-) Ano, Objective C může mít garbage collector, právě proto ten rozdíl nepovažuji za tak markantní.
    16.6.2009 12:24 Tomáš
    Rozbalit Rozbalit vše Re: C++ vs Objective C

    I Java má metody třídy. Říká jim statické metody. Viz např. java.sun.com/docs/books/tutorial/java/javaOO/classvars.html.

    To co mi v Javě oproti ObjC chybí je možnost akceptovat vpodstatě libovolnou zprávu (= libovolné volání metody). Příklad en.wikipedia.org/wiki/Objective-C#Forwarding

    V ObjC mi zase chybí jmenné prostory.

    16.6.2009 12:38 podlesh | skóre: 38 | Freiburg im Breisgau
    Rozbalit Rozbalit vše Re: C++ vs Objective C
    I Java má metody třídy. Říká jim statické metody.
    To bych přirovnal k vepřovým špekáčkům z Lidlu za 20Kč/kg.

    Něco jsem napsal výše, něco je také zde.
    To co mi v Javě oproti ObjC chybí je možnost akceptovat vpodstatě libovolnou zprávu (= libovolné volání metody). Příklad en.wikipedia.org/wiki/Objective-C#Forwarding
    Ano, od toho bylo vytvořeno invokeDynamic. I když, pravda, ne do Javy jako jazyka.

    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.