• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    XCHAOSANSI C/C99 (specifikace), GNU C (gcc, glibc), Tiny C (tcc) a POSIX - ne nutně C++,g++,libstdc++ nebo Win32 API
    XCHAOS
    XCHAOS --- ---
    DANIELSOFT: makro se může jmenovat $? wow...
    DANIELSOFT
    DANIELSOFT --- ---
    dneska někdo na Okounu nalinkoval zajímavou knihovnu, tak se o to podělím:

    Cello • High Level Programming C
    http://libcello.org/
    XCHAOS
    XCHAOS --- ---
    Trocha jarního optimismu, do tohohle diskuzního klubu :-)

    Damien Katz: Follow up to "The Unreasonable Effectiveness of C"
    http://damienkatz.net/2013/01/follow_up_to_the_unreasonable.html
    I've written a byte code VM in C++ that's been deployed on 100 million+ desktops and 100's of thousands of servers. I used C++ inheritance, templates, exceptions, custom memory allocation and a bunch of other features I thought were very cool at the time. Now I feel bad for the people who have to maintain it.
    ...
    My view of C has changed over the years, and I used to think the older guys who loved C were just behind the times. Now I see why many of them felt that way, they saw what is traded away when you stray from the simple and effective.


    Damien Katz: The Unreasonable Effectiveness of C
    http://damienkatz.net/2013/01/the_unreasonable_effectiveness_of_c.html
    C is a fantastic high level language. I'll repeat that. C is a fantastic high level language. It's not as high level as Java or C#, and certainly no where near as high level as Erlang, Python, or Javascript. But it's as high level as C++, and far far simpler. Sure C++ offers more abstraction, but it doesn't present a high level of abstraction away from C. With C++ you still have to know everything you knew in C, plus a bunch of other ridiculous shit.
    XCHAOS
    XCHAOS --- ---
    XCHAOS
    XCHAOS --- ---
    DAVIDOWITCH: neřekl jsem, že je to offtopic, jsem rád, že se tu řeší aspoň něco...
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    XCHAOS: Mozna bys mel upravit jmeno klubu, aby tam nebylo to C++, protoze "ne nutne C++" znamena ze se tu resi taky/prevazne Ccko, ne ze se tu neresi C++, plusplus to vypadne pri vyhledavani.
    XCHAOS
    XCHAOS --- ---
    MARVI: ačkoliv mi nevadí, že se ptáš v tomhle klubu, tak podotýkám , že je tu na NYXu separátní C++ klub... ačkoliv se s id REDGUY většinou hádám, tak dnes s ním vyjímečně souhlasím, že třeba C++ knihovna, kterou evidentně používáš, mě jako C/C99 programátorovi, zvyklého na POSIX API (GNU libc), neříká vůbec nic.
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    MARVI: #1, jednoznacne souhlas s redguyem.
    #2, predpokladam ze ten stringstream mas jako io, na to bych se vykaslal, udelal ho ciste input. Muzes ho nainicializovat stringem i bez <<.
    MARVI
    MARVI --- ---
    REDGUY: jelikož sem nechtěl postovat program ale jenom zlomek kodu, samozřejmě že mám proměné nadeklarované, string bude asi string, stringstream asi stringstream a znamka bude teda int, to sem nerekl... je to 13 radek, chtel sem ten problem soustredit do oblasti kde pravdepodobne je ne nechavat nekoho zkoumat muj program (pokud by nekdo moc chtel, tak proc ne), moje otazka teda zni muze nastat nejakej na prvni pohled nezrejmy problem kdyz pracuju s stringstreamem timto zpusobem?
    REDGUY
    REDGUY --- ---
    MARVI: http://www.catb.org/esr/faqs/smart-questions.html

    Nerikas co vubec to ma delat. Nenapsal jsi celej program, dokonce ani deklarace promennych. Nerikas ani jakej problem si myslis ze by tam mohl bejt. Otazka je velmi spatne polozena a pokud by se na ni nahodou nekdo rozhodl odpovedet, zcela zbytecne ho nutis hadat spoustu veci, ktere jsi mel specifikovat ty. To znamena jednak extra praci pro nej, jednak riziko ze neco uhodne blbe a odpoved bude proto spatne.
    MARVI
    MARVI --- ---
    Zdravim, nejakej napad proc by tohle na nejakejch systemech (progtest.fit.cvut, mozna nekteri znate ze) nemuselo fungovat? Mě to právě šlape jak má ale to právě neznamená že je to dobře napsaný, tak kdyby mi mohl někdo vytknout jestli tam neni nějakej háček, je to jenom malej uryvek v kterym si myslim že by mohl bejt ten problem
    http://pastebin.com/Yx1gj7b2
    vstupni data vypadaj treba takhle:

    novak 35
    novotny 134
    matousek 1354
    XCHAOS
    XCHAOS --- ---
    ... a ještě trocha programátorského folklóru:

    XCHAOS
    XCHAOS --- ---
    XCHAOS
    XCHAOS --- ---
    DAVIDOWITCH: tak já se snažím naučit používat C... ne že ne... já se spíš jen snažím odhadnout, jaký typ lidí by dnes mohl mít stejný zájem...
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    XCHAOS: Benchmark ti rekne, ze mas optimalizovat. Profiler ti rekne co mas optimalizovat.
    A fascinuje mne ze mne dokazes poucovat o grafice, furt cekam na ty pokroky kvuli kterym nema smysl se ucit C (a co se tedy ma smysl ucit). :-)
    XCHAOS
    XCHAOS --- ---
    DAVIDOWITCH: Profiler to zkusí odhadnout, benchmark ale má poslední slovo (nebo ty budeš věřit profileru i když benchmark dopadne nečekaně jinak? :-)
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    XCHAOS: Profiler.
    XCHAOS
    XCHAOS --- ---
    DAVIDOWITCH: to, co mělo či nemělo smysl optimalizovat, to rozhodně až benchmark. ne ty.
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    XCHAOS: Tos argument presunul z "dnes nekdo motivaci" na "jednou to tak bude". A ne, nemluvim o "blokovych" instrukcich, at je to co je to (predpokladam ze myslis SSE, asi).

    PS: Kvuli optimalizacim se ti smeju ne ze chces neco optimalizovat, ale ze naprosto nedokazes rozlisovat mezi tim co optimalizovat ma a nema smysl, jak to poznat a proc je to zajimavy.
    XCHAOS
    XCHAOS --- ---
    DAVIDOWITCH: s tím, že když jsem tu optimalizace obhajoval, tak byli všichni proti mě. teď jsou taky všichni proti mě :-)

    v podstatě ale to, o čem mluvíš ty, je použití speciálních, např. blokových instrukcí, ke kterým (obvykle) C nenabídne žádné API... (i když třeba předsdtava, že konkrétní implementace memcpy() na konkrétní platformě bude vždy rychlejší, než nějaká smyčka ne přesejpání bajtů, je taky zajímavá...)

    obecně ale k téhle speciální blokové instrukci ti může poskytnout API i vyšší jazyk... a jsme obloukem u toho: o C se v nějaký moment nebudou zajímat lidi se zájmem o optimalizaci výkonu, ale budou se o to zajímat lidi, které zajímá "jak to funguje uvnitř": samozřejmě tam bude velké procento hackerů, které budou zajímat hlavně nějaké ty buffer overruny a stack injectiony apod....
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    XCHAOS: Tenhle nazor:
    "Dnešní počítače jsou z hlediska výkonu obrovský overkill... a navíc třeba pro akaceleraci grafiky se už dávno používají naprosto jiné postupy... takže třeba já v první řadě nedokážu pochopit, jakou má dnes někdo motivaci učit se C."

    A o grafice (dneska) vis, i dle vlastnich slov, kulovy, takze s cim presne nesouhlasis?
    XCHAOS
    XCHAOS --- ---
    DAVIDOWITCH: jakej tohle hlásá názor? bez ohledu na to, jaký názor budu hlásat, se stejně najde někdo, kdo proti němu bude v opozici :-)

    já hlavně popírám, že bych o tom "věděl kulový": prostě něco jsem někdy naprogramoval, něco o programování tuším - a možná sem tam v něčem víc, než jen lidi, co se prostě naučili recyklovat už hotový knihovny, naučili se API a dál to neřeší. a podle mě opakem "vědět kulový" rozhodně není "vědět všechno" - ale právě ono "něco trochu tušit".
    XCHAOS
    XCHAOS --- ---
    DAVIDOWITCH: jakej tohle hlásá názor? bez ohledu na to, jaký názor budu hlásat, se stejně najde někdo, kdo proti němu bude v opozici :-)

    já hlavně popírám, že bych o tom "věděl kulový": prostě něco jsem někdy naprogramoval, něco o programování tuším - a možná sem tam v něčem víc, než jen lidi, co se prostě naučili recyklovat už hotový knihovny, naučili se API a dál to neřeší. a podle mě opakem "vědět kulový" rozhodně není "vědět všechno" - ale právě ono "něco trochu tušit".
    ANT_39
    ANT_39 --- ---
    ALMAD: Z podobneho soudku je Carmackova keynote z 2012 QuakeConu. Ma to pres tri hodiny, a tak polovina toho je specificky o VR. Doufal jsem, ze tam bude i neco o obecnem programovani (v drivejsich letech mluvil o funkcionalnim programovani a staticke analyze), ale moc toho nerekl.
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    XCHAOS: To je takova klasicka xchaosovska odpoved. Vis o tom kulovy, ale nazor hlasat budes. Bottom line, nemas pravdu.

    Mikrooptimalizace jsou nesmyslny pro tvoje weboviny, kde ti to Amdahl pozere.
    Maj smysl pro 3Dcko, ktery je v mnoha pripadech takrka na urovni kernel benchmarku.
    XCHAOS
    XCHAOS --- ---
    DAVIDOWITCH: hmm, asi jo. já už delší čas žádnou grafiku nedělal, protože jsem se zaměřil na Linux a webové aplikace. je pravda, že kdysi dávno jsem samozřejmě hry pro PC vyvíjet chtěl.

    spíš je to asi myšlené tak, že pokud se stejně ukazuje, že třeba rozsáhlou databázi 3D objektu je zřejmě stejně výhodnější mít v databázi než v nějaké nativní datové struktuře, a vykreslit je jí stejně lepší přes akcelerované OpenGL než nějaký framebuffer obsluhovaný v assembleru... tak co z těch optimalizací vlastně pak ještě zbývá? divíš se, že někdo radši programuje FPGA pole aby mu interpretovalo Brainfuck? :-)

    KEYMASTER: to je zajímavý... i když začnu tvrdit přesně něco opačnýho, než třeba před 3-5 lety, tak se mnou stejně všichni začnou hádat :-) jste ve svých názorech hrozně nekonzistentní, řekl bych: hádám se tu 5 let s lidmi, kteří tvrdí, že mikrooptimalizace jsou při dnešním výkonu PC buď zbytečné, nebo dokonce s nepředvídatelnými důsledky a kontraproduktivní.. a teď tohle.

    PIGSTER: tak já 10 let programoval spíš servery a routery... jinak taky jsem svého času spolupracoval s bastlíři, kteří programovali v C pro Atmel jednočipy, apod.

    mě to vysvětlovat nemusíš.... vždyť já jsem klub o C založil :-)
    KEYMASTER
    KEYMASTER --- ---
    XCHAOS: Dnešní počítače jsou z hlediska výkonu obrovský overkill. - Prý ti mám za všechny 3D grafiky vyřídit tohle: BWAHAHAHAHA ;)
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    XCHAOS: Chmm.. novy postupy pro akceleraci grafiky? Jako treba?
    Grafika je zrovna jeden z fakt dobrejch duvodu se ucit C/C++, alespon mi to tak doted prislo.
    PIGSTER
    PIGSTER --- ---
    XCHAOS: staci se jenom konecne odpoutat od konceptu osobniho pocitace jako jedine programovatelne veci (mobil nepocita, nektere mobily jsou vukonnejsi nez rada osobnich pocitacu)

    Tenhle svet je plnej procesoru, ktery se v nicem jinym, nez v C (a nizsich jazycich) programovat nedaj. Tenhle svet je i docela plnej procesoru, ktery se nedaj programovat ani v C (v elektrickym kartacku na zuby od brauna je 4bitovy MCU).

    Takze pokud ma nekdo nezbytnou potrebu obhajovat pouzitelnost C nebo ASM tak rozumnejch moznosti ma dost a imho se neni nutny uchylovat k jakejmkoliv obskurnostem.
    Kliknutím sem můžete změnit nastavení reklam