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 14:55 | IT novinky

    Před 70 lety, 7. června 1954, ve věku 41 let, zemřel Alan Turing, britský matematik, logik, kryptoanalytik a zakladatel moderní informatiky.

    Ladislav Hagara | Komentářů: 0
    dnes 11:44 | Zajímavý software

    NiceGUI umožňuje používat webový prohlížeč jako frontend pro kód v Pythonu. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.

    Ladislav Hagara | Komentářů: 1
    dnes 10:55 | Nová verze

    Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána ve verzi 2024.6. Z novinek lze vypíchnout lepší integraci LLM (OpenAI, Google AI, Ollama) nebo podporu Matter 1.3.

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

    IKEA ve Spojeném království hledá zaměstnance do své nové pobočky. Do pobočky v počítačové hře Roblox. Nástupní mzda je 13,15 liber na hodinu.

    Ladislav Hagara | Komentářů: 0
    včera 10:44 | Zajímavý článek

    Alyssa Rosenzweig se v příspěvku na svém blogu Vulkan 1.3 na M1 za 1 měsíc rozepsala o novém Vulkan 1.3 ovladači Honeykrisp pro Apple M1 splňujícím specifikaci Khronosu. Vychází z ovladače NVK pro GPU od Nvidie. V plánu je dále rozchodit DXVK a vkd3d-proton a tím pádem Direct3D, aby na Apple M1 s Asahi Linuxem běžely hry pro Microsoft Windows.

    Ladislav Hagara | Komentářů: 30
    včera 01:00 | Nová verze

    Byla vydána (𝕏) květnová aktualizace aneb nová verze 1.90 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Ve verzi 1.90 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 0
    včera 00:44 | Nová verze

    Byla vydána (Mastodon, 𝕏) nová verze 2024.2 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem nových nástrojů v oficiálním oznámení.

    Ladislav Hagara | Komentářů: 0
    5.6. 16:44 | IT novinky

    Počítačová hra Tetris slaví 40 let. Alexej Pažitnov dokončil první hratelnou verzi 6. června 1984. Mezitím vznikla celá řada variant. Například Peklo nebo Nebe. Loni měl premiéru film Tetris.

    Ladislav Hagara | Komentářů: 10
    5.6. 10:44 | Nová verze

    MicroPython (Wikipedie), tj. implementace Pythonu 3 optimalizovaná pro jednočipové počítače, byl vydán ve verzi 1.23.0. V přehledu novinek je vypíchnuta podpora dynamických USB zařízení nebo nové moduly openamp, tls a vfs.

    Ladislav Hagara | Komentářů: 0
    5.6. 10:22 | Nová verze

    Canonical vydal Ubuntu Core 24. Představení na YouTube. Nová verze Ubuntu Core vychází z Ubuntu 24.04 LTS a podporována bude 12 let. Ubuntu Core je určeno pro IoT (internet věcí) a vestavěné systémy.

    Ladislav Hagara | Komentářů: 2
    Rozcestník

    Největší změny v C++0x

    Danny Kalev ve svém článku, který vyšel na webu softwarequalityconnection.com, představuje nejvýznamnější novinky v C++0x označovaném také jako C++11. V novém standardu známého programovacího jazyka jsou mimo jiné lambda výrazy, automatická detekce typu, sjednocení syntaxe pro inicializaci proměnných, klíčové slovo pro null pointer, delegující konstruktory a podobně. Změny jsou také ve standardní knihovně – jsou to například funkce fungující jako množinové kvantifikátory nebo knihovna pro práci s vlákny.

    24.6.2011 22:12 | Tomáš Heger (geckon) | Zajímavý článek


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

    Komentáře

    Vložit další komentář

    stativ avatar 25.6.2011 08:35 stativ | skóre: 54 | blog: SlaNé roury
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Jak já se na šiší podporu C++ 2011 těším. Je to mnohem lepší jazyk, než současná verze C++.
    Ať sežeru elfa i s chlupama!!! ljirkovsky.wordpress.com stativ.tk
    25.6.2011 10:05 Miloslav Ponkrác
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    A přitom stále zpětně kompatibilní se současným jazykem C++.

    C++ nešel cestou Pythonu či Perlu, že vše změní už jen pro ten pocit, že to překopal.

    Osobně si myslím, že nejlepší cesta by v budoucnu byla sjednocení jazyků C a C++ do jednoho jazyka.
    25.6.2011 12:35 ---- | skóre: 33 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Kdyby se to stalo, to už bych fakt kompletně přešel k D.
    25.6.2011 12:59 Miloslav Ponkrác
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    To můžete i dnes.

    I když si myslím, že D nakonec umře.

    Ostatně, stejně se pořád zvyšuje podíl C++. U velkých projektů dříve, nebo později zjistíte, že v C už je to neudržitelné.

    Osobně není jediná objektivní výhoda C vůči C++ – zatím mi nikdo takovou nedokázal vyjmenovat. Pokud mám k dispozici na dané platformě jak C tak i C++ kompilátor – není jediný důvod, proč něco psát v C.

    Výhrady C programátorů, kteří se rekrutují spíše podle stylu „co vzniklo v unixu je dobré, i když je to sračka“ – postupně historicky zmizí.

    Navíc C++ je jednotné. C už stihl třetí normu a připravuje čtvrtou – a žádný zázrak to stále není. Přičemž stále existují platformy, kde je k dispozici jen první verze – proto třeba vim autor píše v K&R C.

    Za takových 20 let tak jako tak C stejně de facto zanikne. Oproti C nemá žádnou výhodu, vývoj v C je chybovější, pomalejší a dražší, než v C++ aniž by nabídlo cokoli jako plus. Jen mínusy. Buďto se bude výhradně používat většinově C++, nebo se C a C++ sloučí. Je to jen otázkou času, kdy skalní Céčkaři vymřou, či zestárnou.
    25.6.2011 13:07 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Největší změny v C++0x

    Čím více a čím agresivněji se nějakému projektu předpovídá brzký zánik, tím déle obvykle přežije. Předpovídat zánik jazyku, který se pro účely systémového programování používá už 40 let a který po tu dobu své pozice (v této oblasti) stále posiluje, je poněkud odvážné…

    To, že tu někteří prezentují emocionální a argumentačně prázdné výpady proti C++, neznamená automaticky, že musíte reagovat stejným způsobem.

    25.6.2011 22:45 Miloslav Ponkrác
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    „Čím více a čím agresivněji se nějakému projektu předpovídá brzký zánik, tím déle obvykle přežije. Předpovídat zánik jazyku, který se pro účely systémového programování používá už 40 let a který po tu dobu své pozice (v této oblasti) stále posiluje, je poněkud odvážné…“

    Mimochodem, já tu i na abclinuxu předpovídal růst či pád různým technologiím i firmám. Roky nazpět je to tu jako důkaz v diskusích. Zatím jsem se ani jednou nespletl a nemám za sebou jediný omyl. Pohybuji se v IT už skoro 30 let a viděl jsem leccos. Pády nadějných technologií, stejně jako růst outsiderových. A viděl jsem i ty příčiny a celý děj.

    C rozhodně neposiluje.

    V poslední době čím dál více projektů z C přechází alespoň částečně na C++. Před časem to udělalo třeba i gcc.

    Ono de facto neexistuje C a C++, naprostá většina kompilátorů umí obojí, protože C je de facto velmi malou podmnožinou C++. Pokud dnes někdo udělá kompilátor, tak ho většinou nedělá jen pro C, ale umí skoro vždy oba jazyky.

    De facto C a C++ nejsou dva jazyky, ale jen ottéž na různém stupni vývoje. De facto existuje jen jeden jazyk – C/C++.

    Používání C postupně zaniká. Ten proces v minulosti nebyl, protože C++ je relativně mladé. Norma C++ přišla až v roce 1989, dalších několik let trvalo, než přišly kompilátory vyhovující normě. Následně se roky hledalo, jak efektivně implementovat v C++ výjimky – tedy natolik efektivně, aby rychlostí byl kód používající výjimky stejně rychlý jako ošetřování chyb jiným způsobem, což se nakonec podařilo. A pak byl rok někde kolem 1996 a C++ začínal startovat ve svém rozšíření. Zhruba až kolem roku 2000 si mnoho programátorů všimlo, že je to báječný jazyk pro úlohy, kde se dříve používalo C a dá se na něj rychle přejít.

    C++ dostalo do vínku začít jako extenze C. Takže C je jen dialektem maličké podmnožiny jazyka C++. Je zbytečné aby existovalo více dialektů téhož jazyka. Stejně jako mezi K&R dialektem a ANSI normou C postupně získalo vedení to druhé, pak současné C a C++ jsou jen dialekty a C++ začíná získávat pomalu vrch.

    Bohatě stačí, když někdo vezme velký projekt v C a překlopí ho do C++. Takový člověk po praktické ukázce už nikdy C upřednostňovat nebude – zejména pokud se předtím trápil s pokusy udržet velký projekt v C.

    „To, že tu někteří prezentují emocionální a argumentačně prázdné výpady proti C++, neznamená automaticky, že musíte reagovat stejným způsobem.“

    To je pravda.
    25.6.2011 22:59 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Obávám se, že asi každý žijeme v jiné realitě.
    25.6.2011 23:17 Miloslav Ponkrác
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    To zcela určitě.

    Jsme toho názoru, že přežije Cobol, Fortran, i další.

    Stejně tak jako přežije C, ale jeho používání bude klesat v prospěch C++.

    Když jsem začínal s C a dělal v něm řadu let a pak vznikl jazyk C++ a já ho vyzkoušel – už nikdy jsem v C nechtěl dělat. To se bavím o době tak 20 a více let zpátky.

    Přitom jsem všechny své C moduly nemusel měnit, prostě jen je přeložit C++ kompilátorem a pokračoval v C++.

    C se drží hlavně z historické perspektivy. Jsou v tom prostě nějaké projekty z minula. Ale nikdo soudný dnes nebude začínat velký projekt v C – byl by blázen a nic by nezískal.

    C a C++ nejsou de facto jiné jazyky. C++ přebírá celý jazyk C jako svou součást (kromě pár drobností). Tudíž přechod je naprosto minimální problém. Zato efektivita vývoje v C++ je o řád výše.

    Nevím jak Vy, ale já růst používání C nepozoruji.

    Naopak pozoruji, že se vyčistily věci. C a C++ přišlo o projekty, které nepotřebovaly rychlost a tyto projekty se píší třeba v Javě, Pythonu, či řadou dalších jazyků. Ve zbylých případech si to dělí v zásadě C a C++ a tím, že projekty začínají, nebo přecházejí na C++.

    Proto jsem psal, že stejně logicky splyne C a C++ v jedno. A pokud ne, C++ to postupně převálcuje. Není důvod držet dva dialekty od stejné věci.
    25.6.2011 23:27 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Cool story, bro...
    25.6.2011 23:30 Miloslav Ponkrác
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Taky se loučím, stejně jako končím s příspěvky do této debaty.
    pavlix avatar 27.6.2011 11:54 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Už zase?
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    26.6.2011 20:30 petris_ | skóre: 12
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    protože C je de facto velmi malou podmnožinou C++
    Toto neni pravda, pomerne dost v praxi pouzivanych konstrukci z C nen soucasti C++. Prikladem budiz variadicka makra, otevrena pole a pokrocile literaly. Navic nektere konstrukce znamenaji v obou jazycich neco jineho.
    25.6.2011 14:56 ---- | skóre: 33 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    C++ je relikt z doby, kdy kompilátory byly ještě v plenkách a programátoři potřebovali něco jednoduššího než C; nicméně postupně se to zvrhlo a dnes je C++ polovičaté rádoby high level řešení s otřesnou stále se nabalující standardní knihovnou a rostoucí tendencí přesouvat funkce z jazyka do knihovny a často duplikovat existující funkční C řešení (často i horší, např. streamy). Oproti tomu D nevypadá, že by mělo kdykoliv v blízké budoucnosti umřít a jeho použití roste; oproti C++ je daleko lépe navržený. Navíc předpovídat mu smrt, když finální specifikace verze 2 ještě ani není hotová - no comment.S C++ dělám, ale jen jako "C with classes" protože jinak je ten jazyk pro mě naprosto nepoužitelný.
    25.6.2011 17:03 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    25.6.2011 23:06 Miloslav Ponkrác
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    „C++ je relikt z doby, kdy kompilátory byly ještě v plenkách“

    Kdy prosím Vás byly kompilátory v plenkách?

    ---

    „a programátoři potřebovali něco jednoduššího než C“

    Jeden programátor potřeboval něco stejně rychlé jako C, jen na vyšší úrovni. A líbil se mu koncept Simuly, ale nelíbila její pomalost. Mimochodem, za svých studií jsem se se Simulou setkal také – je to úžasný a inspirující jazyk.

    ---

    „rostoucí tendencí přesouvat funkce z jazyka do knihovny a často duplikovat existující funkční C řešení“

    Což je zcela v pořádku. Existující C řešení je provedeno low level ve formě vhodné pro neobjektový jazyk strojové úrovně.

    Je třeba vybudovat knihovnu využívající možnosti jazyka C++, což C funkce nejsou.

    ---

    „Oproti tomu D nevypadá, že by mělo kdykoliv v blízké budoucnosti umřít a jeho použití roste; oproti C++ je daleko lépe navržený.“

    Jazyk D pravděpodobně bude jen krátkodobý.

    Koukejte, když Stroustrup koncipoval C++, dobře věděl, že kompatibilita s C a snadný přechod z C je naprostou nutností pro jeho rozšíření. C++ proto umí využívat C moduly na úrovni zkompilovaých modulů a přistupovat k nim.

    Jazyk D ovšem s C++ kompatibilní není. Aby mohl C++ nahradit, musel by mít nástroj, který by dokázal využít C++ moduly a snadno přejít. To je nutnost.

    Bohužel jazyk D nemá některé featury C++ a chybí mu nástroj pro automatickou konverzi C++ modulů do D.

    Z druhé strany, jazyk C++ bude existovat do té doby, dokud se nenajde vhodnější nástroj na niku, kde je králem. Jazyk D do ní příliš nezasahuje, ale spíše konkuruje vysokoúrovňovým funkcionálním jazykům, kde je D horším řešením oproti těmto jazykům.

    D také zrušil objektové pojetí C++ a dědičný styl přejal z Javy a funkcionálních jazyků.

    Sám jsem pečlivě studoval před lety manuál k D s tím, zda to bude lepší jazyk, než C++, ale neměl jsem ten pocit.

    Základní problém je, že C++ bylo navrženo pro řešení praktických úkolů. D je prostě navrženo aby se líbilo autorovi a byl „čistým jazykem“. A podle mých zkušeností jazyky navržené jako čisté a hlavně proto to prohrávají s časem.

    Něměl jsem pocit, že D řeší něco lépe, než řada existujících jazyků. Pokud budu potřebovat efektivitu a rychlost kódu, C++ poslouží lépe – kompilátory jsou optimalizovanější, než vše, co nabídne D. Featury C++ umožňují lépe optimalizovat a cílit. Když nebudu potřebovat rychlost a efektivitu kódu, pak nesáhnu ani po C++ ani po D, ale po vhodnějším vyšším jazyku.

    „Navíc předpovídat mu smrt, když finální specifikace verze 2 ještě ani není hotová - no comment.“

    Já mu nepředpovídám smrt, jen nezájem a zapomnění.

    „S C++ dělám, ale jen jako "C with classes" protože jinak je ten jazyk pro mě naprosto nepoužitelný.“

    C++ jako C s třídami neukáže ani 1% jeho efektivity. Ten jazyk umí daleko více.
    25.6.2011 23:10 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Co máte proti elementu blockquote?
    25.6.2011 23:19 Miloslav Ponkrác
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Jenom to, že když použiji jakýkoli element, musím pak nabouchat milióny dalších. Například poctivě označit odstavce elementem p – tudíž použitím jednoho elementu musím oelementovat všechno. Lenost vítězí.
    pavlix avatar 27.6.2011 11:56 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Jenom to, že když použiji jakýkoli element, musím pak nabouchat milióny dalších. Například poctivě označit odstavce elementem p – tudíž použitím jednoho elementu musím oelementovat všechno.
    Nojo, v předpovídání budoucnosti jste ještě neměl jediný omyl... ale blockquote používat neumíte a místo toho plácáte něco o odstavcích, než abyste to úplně normálně vyzkoušel a zjistil, že to co píšete, je nesmysl.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    25.6.2011 23:14 ---- | skóre: 33 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x

    "Jazyk D ovšem s C++ kompatibilní není. Aby mohl C++ nahradit, musel by mít nástroj, který by dokázal využít C++ moduly a snadno přejít. To je nutnost. "

    není vůbec potřeba konvertovat existující projekty, ale zajistit ABI kompatibilitu, což D má.

    "Bohužel jazyk D nemá některé featury C++"

    které?

    "D také zrušil objektové pojetí C++ a dědičný styl přejal z Javy a funkcionálních jazyků."

    to je naprosto v pořádku a správný krok.

    "Základní problém je, že C++ bylo navrženo pro řešení praktických úkolů."

    od kdy? Právě D je navrženo k praktickému použití, oproti C++, a proto netrpí některými mouchami C++ (píšu pro ábíčko seriál o D, vše bude popsáno)

    "Něměl jsem pocit, že D řeší něco lépe, než řada existujících jazyků."

    rozhodně lépe než C++, což je jeho cílem.

    "C++ jako C s třídami neukáže ani 1% jeho efektivity."

    možná ještě metaprogramming a operator overloading se občas hodí, ale stdlib, encapsulation, exceptions a spousta věcí z nové 0x specifikace je naprosto otřesných.

    25.6.2011 23:29 Miloslav Ponkrác
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    „není vůbec potřeba konvertovat existující projekty, ale zajistit ABI kompatibilitu, což D má.“

    Nemá. Musíte jí tvrdě naprogramovat – bavíme se o kompatibilitě s C++.

    ---

    „to je naprosto v pořádku a správný krok“

    Pak ale je lépe použít přímo tu Javu, ze které to bylo opsáno. Nebo funcionální jazyk s mixins, jako třeba Ruby.

    ---

    „od kdy? Právě D je navrženo k praktickému použití, oproti C++, a proto netrpí některými mouchami C++“

    Při čtení dokumentace D jsem získal pocit, že na praxi se zapomnělo. Že jazyk D je navržen jako soubor nesplněných přání autora kompilátoru. Nicméně je to další jazyk v řadě, kde předností byla teoretická čistota před praktičností. Autor se tím ani nijak zvlášť netají. A na jazyce je to znát.

    ---

    „rozhodně lépe než C++, což je jeho cílem“

    Nemám ten pocit. Ačkoli dokážu měnit jazyky jako ponožky, po seznámení se s D jsem velmi rád zůstal u C++ a D dále nerealizoval.

    Nicméně bavíme se teď na úrovni subjektivních pocitů.

    ---

    „možná ještě metaprogramming a operator overloading se občas hodí, ale stdlib, encapsulation, exceptions a spousta věcí z nové 0x specifikace je naprosto otřesných“

    Pokud nesnášíte C++, pak vám prostě ten jazyk bude otřesný. Více to nemá smysl rozebírat.

    25.6.2011 23:45 ---- | skóre: 33 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x

    vezměme v potaz třeba tohle: http://ideone.com/sdPBZ Tento malý test dokazuje, že encapsulation v C++ je defektivní, protože to lze naprosto snadno obejít (díky tomu, že class v C++ je stále obyčejná struktura ve které lze použít offset)

    nebo iostream - co je lepší?

    std::cout << foo << " bah " << meh << " blah " << std::endl;

    které je naprosto nepoužitelné při i18n/l10n, je delší a vypadá hnusně

    nebo

    printf("%i bah %f blah\n", foo, meh);

    který je naprosto bez problému?

    Argument "type safety" jsou kecy, buď je kód správně nebo blbě a to, že si někdo neumí správně ověřit parametry není můj problém.

    V porovnání s D:

    co je lepší?

    string a = "hello world";

    string b = a.substr(0, 5); // hello

    nebo

    char[] a = "hello world".dup;

    char[] b = a[0 .. 5]; // hello

    co je lepší?

    std::map<string, int> mymap;

    mymap.insert(std::pair<string, int>("foo", 5));

    nebo

    int[string] harr;

    harr["foo"] = 5;

    ?

    takhle by se dalo pokračovat do nekonečna..

    25.6.2011 23:54 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    U prvního příkladu jste taktně zamlčel, že zatímco C++ streamy a operátor << můžete rozšířit na libovolnou třídu, u printf() to nejde (o dalších lahůdkách jako např. automatické překódování škoda ztrácet řeč). U druhého příkladu mi ten rozdíl nepřipadá tak velký, aby to byl nějak relevantní argument. Třetí příklad je podvod, protože i v C++ můžete napsat mymap["foo"] = 5.
    25.6.2011 23:56 ---- | skóre: 33 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    ono stačí si pro svou třídu napsat metodu, která vyplivne výstup pro printf .. a zůstane i funkční i18n ;-)
    26.6.2011 13:42 ::: | skóre: 14 | blog: e_lama
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    vezměme v potaz třeba tohle: http://ideone.com/sdPBZ Tento malý test dokazuje, že encapsulation v C++ je defektivní, protože to lze naprosto snadno obejít (díky tomu, že class v C++ je stále obyčejná struktura ve které lze použít offset)
    tohle je ukazka naprosto pokrivenyho mysleni. Encapsulation by melo chranit proti chybam a spatnymu pouziti, ne proti lidem. To ze kdyz se nekdo bude umyslne snazit to porusit tak se mu to povede je spis vyhoda...
    26.6.2011 13:53 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    26.6.2011 14:19 ---- | skóre: 33 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    to je skoro stejně zvrhlá myšlenka jako type safety.
    andree avatar 26.6.2011 18:08 andree | skóre: 39 | blog: andreeeeelog
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    vtipny ten priklad... to autor cakal ze dostane segfault, ci co? alebo ze kompiler zrandomizuje pamat a/alebo rozhadze objekt cez cely heap?

    celkom by som sa pobavil, keby nastavil tu class na static, a kompilator mu vypisal 5, 10, 15... ako dlho by sa chytal za hlavu, co sa deje.. :)
    26.6.2011 19:40 ---- | skóre: 33 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    no comment .. "kdyby" a předpovídání - klasický argument C++ fanboys.
    26.6.2011 20:48 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Až na to, že předřečník má naprosto pravdu.
    Opravdu mi není jasný, čemu se divíš na tom, že na classes funguje offset.
    26.6.2011 21:31 ---- | skóre: 33 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    ale já se tomu přece nedivím :-) Class je přece furt jenom struct.
    andree avatar 27.6.2011 07:52 andree | skóre: 39 | blog: andreeeeelog
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    tak to si objavil ameriku, gratulace! .-)
    26.6.2011 00:00 dejvik | skóre: 12 | blog: vysatost
    Rozbalit Rozbalit vše Re: Největší změny v C++0x

    píšu pro ábíčko seriál o D, vše bude popsáno

    Skvělé! Už se těším:) Doufám, že to bude spíše o D2.

    26.6.2011 00:05 ---- | skóre: 33 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    ano, je o D2 :-) D1 se už vůbec nezabývám.. a samozřejmě s knihovnou Phobos.
    26.6.2011 00:32 Aminux
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Neni to ta dálnice. Jinak syntax c++ mi příde jako docela humáč. Jen můj osobní dojem.
    26.6.2011 00:43 ---- | skóre: 33 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    ona je humáč .. není to jen osobní dojem. :-D
    26.6.2011 01:49 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Že tě baví D ti neberu (mně se ten jazyk taky celkom zamlouvá), ale musíš tu furt trollovat C++? Tak když se ti to nelíbí tak to nepoužívej a nelez sem.
    26.6.2011 12:12 ---- | skóre: 33 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x

    to jsi mě asi trochu nepochopil :-) Já C++ netrolluju, já kritizuju jeho mouchy, sám C++ používám pro svůj projekt a ono se dá použít, ale jen jako "C with classes" .. ony ty "špatné" části jsou většinou jen volitelné, takže se dají "nepoužít" a C++ může být decentním jazykem.. :-)

    26.6.2011 15:28 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    No, tak jsem kouknul na github na octaforge, no a to je dost neuvěřitelné :-D Teda takhle, nechápej mě špatně, ten projekt celkem obdivuju, asi bych to neuměl napsat nebo se k tomu minimálně nedokopal, ale teda ten kód, to je docela humus :-D To už by asi bylo lepší to čistý C.

    A mimochodem co takhle boost, proti tomu taky něco máš, předpokládám...?
    26.6.2011 15:58 ---- | skóre: 33 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    většina kódu není moje :) resp. moje není src/engine, src/fpsgame, src/intensity a postupně ty části přepisuju. :-) Btw, po odstranění Boostu se 2x zkrátila kompilační doba a po odstranění Boost.Python dvakrát narostly FPS (díky odstranění Python actionqueue)
    26.6.2011 16:14 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Jo aha, tak já koukal do src/engine...
    No tak že boost zpomaluje kompilaci a python fps, to je celkem jasné ;-)
    26.6.2011 16:17 ---- | skóre: 33 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    mimochodem, i když se ti Cube 2 kód může zdát trochu takový zabordelený bez nějaký struktury, tak je oproti tomu velice efektivní a malý - je menší než většina ostatních enginů bez nějakých funkčních omezení. :-)
    26.6.2011 16:05 ---- | skóre: 33 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    jojo, uznávám že některý části Cube 2 jsou dost humus, jako třeba některý makra: https://github.com/quaker66/OF-Engine/blob/master/src/engine/octaedit.cpp#L1141
    26.6.2011 20:54 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Ale tak což o to, konkrétní podrobnosti v kódu jsem nezkoumal, spíš ta celková struktura kódu. C++ to rozhodně není, a ani "C with classes". Spíš "C with namespaces and constructors" :-D A proč máš takovýho kódu v hlavičkovejch souborech? Přijde mi, že tam prakticky nerozlišuješ mezi .h a .cpp.
    Bystroushaak avatar 27.6.2011 14:24 Bystroushaak | skóre: 36 | blog: Bystroushaakův blog | Praha
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    píšu pro ábíčko seriál o D, vše bude popsáno
    Wow, super :)
    26.6.2011 03:00 jas | skóre: 13 | blog: blag
    Rozbalit Rozbalit vše Re: Největší změny v C++0x

    A preto napr. toto ide v c++0x stale skompilovat, ze?

    int main(){ auto int x = 5; return x; }

    Videli ste vobec tie zmeny v pythone? Zmeny su aspon navonok relativne male a aspon velka cast z nich svoj vyznam urcite ma.

    Navyse s trochou snahy sa da pisat kod pre obe verzie pythonu.

    pavlix avatar 27.6.2011 11:53 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    C++ nešel cestou Pythonu či Perlu, že vše změní už jen pro ten pocit, že to překopal.

    Python naštěstí tou cestou šel, měl hodně restů, které nešly v 2.x verzi opravit.
    Osobně si myslím, že nejlepší cesta by v budoucnu byla sjednocení jazyků C a C++ do jednoho jazyka.
    Apage satanas. Naštěstí nám ale céčko zůstane :).
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    Josef Kufner avatar 25.6.2011 10:32 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Hmm... ta syntaxe je pěkně ošklivá. Trošku mi to připomíná hovniválovu kuličku.
    Hello world ! Segmentation fault (core dumped)
    25.6.2011 12:32 ---- | skóre: 33 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    ale vždyť to je C++ .. furt se na to nabalují nový věci i když to, co leží pod tím, stojí za h*vno, a kvůli tomu i ty nabalovaný věci jsou udělaný hnusně/polovičatě..
    25.6.2011 11:51 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Furt jen nevím jak si poradit s nullptr, když konečně existuje a nemusí se myslet na možné problémy spojené s NULL, protože je až v GCC 4.6 (používám 4.4), tak jak si to nachystat, udělat si vlastní NULL jako #define MyNULL NULL a v budoucnu to pak jen přehodit #define MyNULL nullptr a třeba si podivit co se stane :-).
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    25.6.2011 11:57 Miloslav Ponkrác
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    #undef NULL #define NULL nullptr

    Ale i ve starém C++ šlo udělat

    template<T> T* null_ptr() { return reinterpet_cast<T*>(0); }

    což se používá trochu hůře, ale je to navíc i typově bezpečné.
    26.6.2011 13:17 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    #undef NULL #define NULL nullptr - to mi přijde docela silné, raději bych nullptr viděl jen tam kde se s tím počítalo.
    template<T*> T* null_ptr() { return reinterpet_cast<T*>(0); }, to už je dál než jsem ochoten zajít :-).
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    25.6.2011 12:09 zeno
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Take nepodarene lambda expressions som este nevidel.
    25.6.2011 12:48 Miloslav Ponkrác
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Mě na tom nepřijde nic nepodařeného.

    Možná by bylo dobré si uvědomit, co je C++. Je to jazyk, jehož přední úlohou je zajistit rychlost + efektivitu výsledné binárky a rozsah možností programátora srovnatelné (tedy co nejvíce blízké) s přímým psaním ve strojovém kódu. Za současné vysoké efektivity psaní kódu a high level jazyka.

    Druhá věc je, že C++ – stejně jako všechny stálice v programovacích jazycích – nesleví ani čárku ve zpětné kompatibilitě s předchozí verzí. Pokud by se měla porušit zpětná kompatibilita – bylo by třeba pro to velmi vážného důvodu a vysvětlení a toto porušení by muselo vynést tak obrovský benefit, aby vůbec prošlo, že je to na hranici nemožnosti.

    Nakonec stejně většina vyšších jazyků je implementována pomocí C/C++, kde C je spíše historický sekundand z doby, kdy C++ nemělo standard. Stejně tak všechny virtuální mašiny pro běh virtuálního kódu se také skoro bez výjimky implementují v C++.

    Když nějaký vyšší jazyk nestačí svými možnostmi – ať už rychlostně, nebo proto, že v daném vyšším jazyce není vůbec možné danou funkcionalitu implementovat – zase se to napíše v C/C++. Většina vyšších jazyků stejně z 99% není nic jiného, než kompilovaný kód C/C++ a kolem toho něco málo lepidla z kódu vyššího jazyka – asi maximálně je to vidět u Pythonu.
    Josef Kufner avatar 25.6.2011 12:56 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    To však nemění nic na tom, že ten zápis je děsně ošklivej.
    Hello world ! Segmentation fault (core dumped)
    25.6.2011 13:00 Miloslav Ponkrác
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Jako subjektivní vnímání pro Vás. Když už nemůžete proti tomu nic věcného říci, začnete si pomáhat dojmy.
    Josef Kufner avatar 25.6.2011 13:23 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Já proti tomu neřekl nic než to, že je ta syntaxe děsně ošklivá. Jinak lambda samotná se mi líbí a považuju ji za jednu z nejužitečnějších konstrukcí vůbec. Ale tahle v C++ je ošklivá.
    Hello world ! Segmentation fault (core dumped)
    25.6.2011 14:19 ::: | skóre: 14 | blog: e_lama
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    sam ses osklivej...
    25.6.2011 14:57 ---- | skóre: 33 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    ale on má pravdu.
    25.6.2011 15:20 ::: | skóre: 14 | blog: e_lama
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    ne nema
    25.6.2011 15:30 ---- | skóre: 33 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    ale jo, má :-D
    belisarivs avatar 25.6.2011 18:22 belisarivs | skóre: 22 | blog: Psychobláboly
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Ja myslim, ze vsichni maji pravdu. Teda krome me. Takze zapomente, ze jsem neco rekl. :-D
    IRC is just multiplayer notepad.
    grubber avatar 25.6.2011 17:24 grubber | skóre: 6 | blog: grubber | Břeclav / Brno
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Domnívám se, že v této diskuzi publikuje největší množství subjektivních dojmů plných rádobyvěcné onanie nad svým oblíbeným jazykem někdo zcela jiný.
    25.6.2011 21:15 mnn | skóre: 1
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Neviem si pomôcť, ale čo sa týka lambda expressions, tak syntakticky je na tom lepšie C# 3.0, napriek tomu, že je od MS...
    25.6.2011 22:45 Freeman
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Rozumím tomu opravdu dobře, že v C++0x budu muset přizpůsobit názvy metod třídy abych ji mohl pohodlně iterovat? Tedy, budou to muset být begin() a end()?

    To je přece hrozné, že konstrukt jazyka foreach vyžaduje určité konkrétní pojmenování metody. Od toho jsou přece klíčová slova, ne? Sice to funguje se STL, ale kupodivu existují lidi, co STL nepoužívají. A nepoužívají ani STL konvenci pro pojmenování.

    Přijde mi to stejně ujeté jako by virtuální metody musely začínat písmenem v.
    25.6.2011 23:10 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Rozumím tomu opravdu dobře, že v C++0x budu muset přizpůsobit názvy metod třídy abych ji mohl pohodlně iterovat? Tedy, budou to muset být begin() a end()?
    Ne, neřekl bych, teda doufám.

    Jinak ale +1 k STL, imho koule na noze C++.
    25.6.2011 23:16 ---- | skóre: 33 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x

    stdlib/STL je jedním z hlavních problémů jazyka C++.

    26.6.2011 14:04 solca
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Protoze?
    26.6.2011 14:16 ---- | skóre: 33 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x

    pomalý kontejnery, streamy horší než v Cčku, pomalý stringy, nesourodý exceptions, debugování horší než v Cčku..

    26.6.2011 15:10 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Tu pomalost kontejnerů a stringů máš nějak podloženou, nebo to je subjektivní?

    Jinak s exceptions souhlasim a dodám, že jako hlavní problém stdlib/STL vidím nekompletnost / málo featur. A taky poněkud těžkopádné použití.
    26.6.2011 16:02 ---- | skóre: 33 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Porovnával jsem vector/hashtable ze sauerbratenu s vector/unordered_map z stdlib a vyšly asi o 10% pomalejší, porovnával jsem char* a std::string a std::string a std::string byl asi 2x-3x pomalejší (pouze v některých operacích, jindy se v podstatě rovnají) .. testovací kód už nemám, ale nemyslím si, že by byl problém jej znovu napsat.
    26.6.2011 17:03 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    To, že jedna konkrétní implementace má pomalé některé algoritmy, je chyba standardní C++ knihovny?
    26.6.2011 19:44 ---- | skóre: 33 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    to je pravda, i když GNU implementace je jedna z nejrozšířenějších :-)
    Luboš Doležel (Doli) avatar 25.6.2011 23:35 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    begin() a end() jsou docela dobře zavedené názvy. A osobně mi to připadá lepší, než komplikovat jazyk dalšími klíčovými slovy.
    27.6.2011 02:10 Erbureth | skóre: 21
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Ale vůbec, pro procházení přes for_each() stačí, když třída přetěžuje operátor ++; metody begin() ani end() se tam vůbec nevolají, počátek a konec zadáváte jako parametry.
    27.6.2011 10:44 Boris Dušek | skóre: 22 | blog: everything
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    On podle mě nemluvil o funkci std::for_each z hlavičky algorithm, ale o v C++0x novém klíčovém slově foreach.
    vim ~/.emacs
    27.6.2011 10:59 Erbureth | skóre: 21
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Mea culpa, v článku se o tom nepíše...

    (Každopádně upřesnění by se hodilo, zvlášť, když to klíčové slovo není foreach, ale for s jinou syntaxí [1])
    27.6.2011 14:28 Jirka P.
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Ne. Stačí, když poskytneš volné funkce begin(x) a end(x). Chtělo by to trochu číst ten draft.

    Jinak to není v programovacích jazycích nic nového ani divného, a že to někteří považují za "hrozné" je tak nějak jejich problém. Prostě nepoužívám danou konvenci => nemohu použít danou konstrukci. Rozhodně lepší, než zavádět jakákoli nová klíčová slova.

    Založit nové vláknoNahoru


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