• ú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 --- ---
    DAVIDOWITCH: šmarjá, to taky byl úplně offtopic flejm, tohleto...

    z jakékoliv C konstrukce nemůžeš vyskočit, pokud ručně ne-deinicializuješ všechno, co si tam inicializoval (myěleno všechno, kromě místa na stacku): musíš ručně pozavírat soubory, ručně dealokovat paměť, apod.

    pokud přijdu s několika dalšími konstrukcemi, ze kterých není bezpečné kdykoliv udělat return, nebude to z hlediska programování v C prsotě nic nového.
    XCHAOS
    XCHAOS --- ---
    REDGUY: já ale nevím, jestli to bude výhodnější. jak to mám vědět, dokud to nemám (aspoň trochu) hotové ?

    prostě něco zkouším, a až to bude hotové, tak má cenu hledat pro-příklady a proti-příklady a srovnávat. až bude aspoň nějaký pre-release. je to tak těžké pochopit ?

    mimochodem - k jakékoliv nové datové struktuře, kterou bych nedej bože vymyslel, by měla jít vymyslet deklarace v C++ ... stejně tak k jakémukoliv preprocesorovému makru, by mělo jít napsat čistší a efektivnější C++ template... takže kde je problém ? pokud někdo předvede, že stejnou cestou se dá jít i v C++ akorát tam všechno pak bude hezčí a bezpečnější a tak, tak mu držím palce.
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    XCHAOS: Noo.. tak treba nejaky kontexty a nemoznost returnu ze smycky a forget/remember s tim co sem popsal nemaj (v mem svete) zadnou spojitost. Tak omluv zmateni.
    XCHAOS
    XCHAOS --- ---
    DAVIDOWITCH: v podstatě mě nikdy nenapadlo, že to co dělám, by někdo mohl vnímat nějak jinak
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    XCHAOS: Ano, a vetsinou za tim jinym pristupem a jinou syntaxi stoji nejaky duvody.

    Takze chces Cckovy wrappery tehle typu, nejaky kolekce nad nima a iterator/for_each nad tim?
    REDGUY
    REDGUY --- ---
    XCHAOS: Ja ti uz fakt nevim. Polozim jednoduchou otazku, ktera je ovsem klicova jako motivace proc to vlastne delas. Primo napisu ze "bude to rychlejsi" neni spravna odpoved. A co odpovis? V podstate "Bude to rychlejsi (az na specialni pripady)". Ach jo. Tak znovu: proc bude _vyhodnejsi_ psat v tvem bastlu? Opravdu musim podrobne vysvetlovat ze rychlost behu vysledneho systemu neni zdaleka jedinou a dokonce ani nejdulezitejsi metrikou pro posuzovani nejakeho frameworku?
    XCHAOS
    XCHAOS --- ---
    DAVIDOWITCH: no tak pro začátek: existují sice rozumné systémové knihovny pro psaní webových aplikací - ale každá má úplně jiný přístup, jinou syntax...

    i kdybych v tom svém frameworku nakonec neudělal nic jiného, než to for_each() makro pro různé primitivní iterovatelné datové typy (SQL dotaz, soubor, CURL request, string, pole, apod.), tak je to obrovský krok dopředu. (a troufám si říct... zejména pro začátečníky...)
    XCHAOS
    XCHAOS --- ---
    REDGUY: tak rychlejší než čisté C budu určitě jen v hodně speciálních případech a k C++ se nemůžu vyjadřovat.

    Perl je docela optimalizovaný, jde o to, jak v něm kdo píše. Ale konkrétně PHP je to, co bych rád trumfnul, ano.
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    XCHAOS: ja si myslim ze tim vic pokud jde o framework. Potrebujes si udelat jasno v tom jaky nedostatky jazyka resi, jestli se zcela zbytecne neperes s necim co dela uplne identickou vec (pokud ji to dela hur tak klidne vylepsuj, ale pokud uz neco dela tvuj vysneny idealni stav, sel bych vylepsovat neco jinyho).

    Ok, to zni rozumne. Zkusils prvni krok, vzit nejakou cilovou aplikaci a nakodovat v Ccku jako takovym?
    Jednak ti to da vyrazne predstavu jaky vlastne ficury budes potrebovat nez kdyz o tom budes meditovat od stolu. Muzes v klidu naprototypovat marusku linearnim seznamem, a kdyz uvidis ze na tom realne ztracis spoustu casu, tak vylepsit to co se schovava za interfacem.

    Druhak se muze stat ze zjistis ze to PHP tou pameti neplejtva az tak moc jak sis puvodne myslel, protoze proste to co je v nem napsany je pamet-zerouci svinstvo, nebo to musi delat mrak veci na ktery si puvodne nepomyslel.

    Mne prijde vzdycky dulezity, pro moje vlastni projekty (jiny vlastne nedelam) abych mel relativne jasny kde sem, kam se chci dostat a tudiz co je tak cca dalsi rozumnej krok. Nactrnout cestu nahrubo a pak vylepsovat kousky co se mi nelibej. Jinak se placam na miste a nikam se nedostanu. A to "kam se chci dostat" muze bejt uplne zhuleny, ale chci vedet ze se "snazim vyrobit nejakou variantu tohohle single-threaded algoritmu na GPUcko."
    REDGUY
    REDGUY --- ---
    XCHAOS: ale RFC v původním významu těch slov ja vim jak to myslis. Ptal jsem se, jestli tim RFC v puvodnim vyznamu tech slov myslis [ XCHAOS @ ANSI C/C99 (specifikace), GNU C (gcc, glibc), Tiny C (tcc) a POSIX - ne nutně C++,g++,libstdc++ nebo Win32 API ] , nebo jestli jsi psal jeste nejake jine RFC (v puvodnim vyznamu tech slov) nekam jinam, protoze v tom pripade by me fakt zajimalo co ti na to rekli jini 8)



    první aplikace toho frameworku bude fastcgi webová aplikace, schopná velmi rychle reagovat např. na Ajaxové HTTP requesty - a jako obvykle: proc by tvuj framework mel na to byt vhodnejsi nez ciste C nebo nejaka podmnozina C++? Proc bude vyhodnejsi psat v nem nez v Perlu/PHP? (hint: spravna odpoved _neni_ jen "protoze to bude rychlejsi", uz proto ze to zdaleka neni nutne automaticky pravda)
    XCHAOS
    XCHAOS --- ---
    REDGUY: myslím RFC ne jako hotové RFC dokumenty/specifikace, ale RFC v původním významu těch slov: mám nějaký nápad, a zeptám se co si myslí jiní. asi jsem se dozvěděl už fakt dost :-)

    DAVIDOWITCH: i pokud jde o framework ? typicky, framework je něco, co by mělo umožnit udělat více různých věcí...

    ale ano, v hrubých rysech jsem naznačil, že první aplikace toho frameworku bude fastcgi webová aplikace, schopná velmi rychle reagovat např. na Ajaxové HTTP requesty, a požadavek je, abych stihl obsluhovat na průměrném serveru více klientů současně, než třeba kdyby to bylo řešené tradičně v PHP.

    Spustit např. 100 paralelních kopí Apache není problém - pokud tyto Apache v sobě nemají mod_php, který naroste při každém načtení PHP frameworku třeba na 30+ MB. (30x100 už může na průměrném serveru být trochu problém). Tedy, jsou zhruba dvě cesty, jak umožnit paralení přístup více lidem: jednak snižování množství alokované paměti - ale především zkrácení času, který trvá vyřízení jednoho requestu. víceméně: mám po letech v oboru alespoň mlhavou představu o režii webových aplikací napsaných v PHP, Perlu a Pythonu. a chci zkusit něco jiného.

    stačí - nebo je to pořád málo ?
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    XCHAOS: No, typicky nejdriv chces vedet co planujes udelat, alespon v hrubych rysech a az pak zacit bastlit kod...
    REDGUY
    REDGUY --- ---
    XCHAOS: jak mám někoho přesvědčovat, aby používal něco, co ještě není hotové ani v betaverzi ? Ach jo. Takze dalsi, jeste o neco explicitnejsi preformulovani: az bude tvuj bastl hotovy a bude umet to co si ted predstavujes ze ma umet, jak bys nalakal jine programatory aby ho zacali pouzivat? Cim cekas ze je nadchnes pro svuj bastl?

    Tim RFC myslis to co jsi psal tady?
    XCHAOS
    XCHAOS --- ---
    REDGUY: jak mám někoho přesvědčovat, aby používal něco, co ještě není hotové ani v betaverzi ? víceméně - vyslal jsem do světa jsem jakési "request for comments"... tyto komentáře dorazily, a nyní se tato etapa chýlí už víceméně ke konci.

    a kromě toho - není to samostatný jazyk, ale jen dialekt jazyka. (C++ naproti tomu není dialekt, ale samostatný, odlišný jazyk).
    XCHAOS
    XCHAOS --- ---
    ANT_39: ano, připouštím, že lepší komunikace mezi programátory může být mým cílem.

    cíle komunikace v komunitě open-source jsou podle mě aspoň částečně jiné, než cíle komunikace v komunitě zaměstnanců nějaké firmy: tam je cílem podle mě vytvoření nějaké funkční hierarchie, nastolení autority, efektivní organizace a dělba práce... nechci tady nějak dávat najevo, co z toho myslím pozitivně, nebo negativně... ale smyslem programování v zaměstnaneckém poměru je především udržet si to místo a brát mzdu, že.

    existují samozřejmě i programátoři placení za vývoj open source aplikací... ale svým způsobem, cílem mých hypotetických open source projektů by teoreticky mělo být, abych nadchnul ostatní, aby se na mém projektu podíleli zadarmo, a já bych se pak živil jen prodejem triček :-) to je ovšem právě záležitost komunikace mezi lidmi.
    REDGUY
    REDGUY --- ---
    XCHAOS: Budiz. Doufam ze se ale shodneme ze "Jsem tak liny (nebo, chces-li, linny) naucit se C++ nebo jeho cast, ze radsi udelam vlastni programovaci jazyk" je velmi specifickym druhem lenosti. Prima, preju ti ji. Psal jsi ale ze chces svuj jazyk pouzivat ve vetsich projektech. Jak bys presvedcil pripadne prispevatele, ze misto vseobecne rozsireneho a tim i uzitecneho C++ se maji ucit tvuj bastl?
    ANT_39
    ANT_39 --- ---
    Ja si osobne myslim, ze cll1 je proste _conlang_: http://dedalvs.conlang.org/notes/manifesto.php
    Conlangem se nazyvaji umele vytvorene "prirozene" jazyky. Jejich smyslem muze a nemusi byt komunikace mezi lidmi: pruzkum nejake gramaticke charakteristiky je stejne validnim cilem, stejne tak muze byt cilem proste jen tvorba toho jazyka. Je to zkratka umelecka zalezitost. Coz je fajn, ale musi se to rict, aby pak ostatni zmatene nerozhazovali rukama, ze dane reseni nedava smysl z toho, nebo onoho duvodu :)
    XCHAOS
    XCHAOS --- ---
    no ale neučit se C++ není ideologie... to je lennost. ovšem já pokládám lennost za svého druhu ctnost... spousta dobrých objevů, které lidstvo učinilo, vzešlo v podstatě z lennosti...
    REDGUY
    REDGUY --- ---
    XCHAOS: tak si neumím představit, že bych lidi hecoval k něčemu takovému pomocí plakátů ach boze. Nechci po tobe abys namaloval plakat. Snazim se te dotlacit k tomu, abys napsal jake skutecne, prakticke vyhody jazyka ktery se snazis navrhnout. Aniz bych se te ted snazil urazit, to co jsi zatim napsal zadne skutecne vyhody nejsou, to je jen ideologie nekoho, kdo se nechce ucit C++ ani jeho nejakou cast (a ani nedokaze rict proc) - a to proste neni duvod ktery muze vest k necemu rozumnemu. Ma to byt rychlejsi? Spolehlivejsi? Prehlednejsi? Snazsi na nauceni? Levnejsi? Jestli si nedokazes formulovat cile ani na takhle obecne urovni, tak proste nemuzes cekat prijatelny vysledek (pro vsechny definice slova 'prijatelny').


    XCHAOS: file=open(...) OR die(-1) je roztomile na prvni pohled a pro pouziti v bastlech. Ale v okamziku kdy zjistis ze pred tim die potrebujes udelat jeste neco jineho to stejne musis prepsat na normalni if.

    die(-1) IF NOT file=open(...) je zlo, protoze hlavni operaci (otevreni souboru) schovava nekam daleko doprava kde neni na prvni pohled videt a misto toho cpe do popredi osetreni vyjimecne situace. Pro citelnost kodu dost destruktivni.
    XCHAOS
    XCHAOS --- ---
    ještě k tomu vyhodnocování operátorů - vlastně spíš AND, než OR, pravda :-) ale zprava doleva jo.

    file=open(...) OR die(-1)

    die(-1) IF NOT file=open(...)

    to jsou oboje moc hezké zápisy. nevím, jestli jsou vhodné pro začátečník, mě se každopádně líbí. ale v C to napsat nejde (zvlášť to druhé... na to první by stačilo potlačit nějaké warningy)
    Kliknutím sem můžete změnit nastavení reklam