• ú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
    REDGUY
    REDGUY --- ---
    XCHAOS: cca první rok existence tohoto klubu byl především o tom čelit argumentům "kdo by dnes ještě chtěl programovat v C ??" - ja si to spis pamatuju "Proc chces pouzivat C (nebo dokonce tu hruzu co z nej delas v Cll1) na veci na ktere se nehodi?" Ale to je asi subjektivni 8)

    někteří z těch tehdy aktivních to dnes dělají takovou skrytější podobou. - LOL. Temne sily konspiruji 8)

    předveďte ekvivalent v C ve stylu "pod kapotou se ve skutečnosti děje tohle". Ať už jde o pole indexovaná textovými či zcela obecnými klíči - wut? Ty chces aby ti lidi predvadeli jak implementovat dictionary v C? Fakt?
    XCHAOS
    XCHAOS --- ---
    ANT_39: no, vidělo to dost lidí (a zděsilo se :).

    Když se to ještě jmenovalo cll1.h tak to vyděsilo opravdu hodně lidí a i v tom šlo přeložit řadu příkladů. ale od těch počátků se teď sám dost distancuju... zvlášť verze 0.6 byla mimo (ale jediná byla reálně použitá... ale ta zase ještě nebyla tak extra vzdálená jiným makro-praktikám v GNU světě...)

    přejmenování na crl1.h má být taková "tlustá čára" za těmi trochu hektickými začátky, kdy jsem měl pocit, že předělat přece musím úplně všechno. od té doby uplynulo pár let, seznámil jsem se s pár novými programátorskými technikami (i celými programovacími jazyky) - a taky se trochu posunuly měřítka toho, co mi ještě přijde vtipné a co už ne.

    dnešní commit vypadá pro zajímavost takhle:
    https://dev.arachne.cz/svn/cll1h/changeset/133

    přesunul jsem se od milionů maker k tomu, aby to bylo víc v "Céčkovském duchu" - čisté C má jen několik málo klíčových slov, a mělo by to asi tak zůstat i u jeho nadstavby. víceméně se chci soustředit na makra for_each() {} a count() pro co největší množství primitivních typů. Ostatní vychytávky asi dost zredukuju - určitě tam nechám ošetření vyjímek ve stylu vyšších jazků - tedy try {} a except() implementované pomocí setjmp()/longjmp(). a samozřejmě to bude mít vlastní správu paměti. ale celkový počet maker co bude opravdu nutné si zapamatovat bych rád snížil třeba na 10.

    taky to celé bude podporovat jen C99 compilery (tím se sice vzdám kompatibility s Tiny C compilerem - ale zato si zachovám zdravý rozum, vyhnu se #ifdef;m... a možná přispěju k většímu akceptování této normy, která mi jako člověku, co C zná celkem už skoro 20 let přijde rozumná).

    (proboha, nezkoušejte s tím nic přeložit - adresář "demos/" je teď úmyslně prázdný - a budu tam postupně portovat jen ty věci z branches/fork-07 , které mě budou připadat elegentní..)
    XCHAOS
    XCHAOS --- ---
    DAVIDOWITCH: tedy "refcounty dělané ručně" jsou přesně to, o čem píšu v [ XCHAOS @ ANSI C/C99 (specifikace), GNU C (gcc, glibc), Tiny C (tcc) a POSIX - ne nutně C++,g++,libstdc++ nebo Win32 API ] - je možné samozřejmě předvést, jak to celé funguje, jenže nemůžeš současně tvrdit, že do C je možné refcounty dát jako nativní metodu správu paměti.

    fakticky je úžasné, jak vám záleží na každém jednotlivém slovíčku a jeho přesné definici - ale nezajímá vás širší smysl nějakého výroku, který přitom může mít třeba z 80-90% smysl i bez toho slovíčkaření...
    XCHAOS
    XCHAOS --- ---
    REDGUY: budiž... ale cca první rok existence tohoto klubu byl především o tom čelit argumentům "kdo by dnes ještě chtěl programovat v C ??". no a někteří z těch tehdy aktivních to dnes dělají takovou skrytější podobou.

    přitom je tady strašně jednoduchá věc, kterou můžou udělat: vemte všichni ekvivalent vaší oblíbené "vyšší abstrakce" - a pokud to lze, tak předveďte ekvivalent v C ve stylu "pod kapotou se ve skutečnosti děje tohle". Ať už jde o pole indexovaná textovými či zcela obecnými klíči (asociativní pole v PHP, slovníky v Pythonu), nebo třeba o obyčejnou metodou .append() u pole proměnné délky (zase - viz Python): každý takovýhle postup tady má svoje místo, pokud ho člověk pojme "a tohleto je ve skutečnosti implementované takhle a takhle"... na což je C dost ideální nástroj (na to předvedení..)
    ANT_39
    ANT_39 --- ---
    Ostatne ad to CRL1, jaky s tim mas tak nejak dlouhodoby plany? trunk je ted nejakej zcela nehotovej, a ten for_each2, ktery jsi linkoval, je jen na nejake z branchi. Nevim, jestli ma cenu ti rejpat do branche, kdyz to asi cely budes prepisovat, zda se.

    XCHAOS: Hm, a videl ho i nekdo jiny? :)
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    XCHAOS: Konkretne binarni B+ tree a jeho neoddiskutovatelnou podobnost se standardnim B+ tree, a refcounty co potrebujou operator=, protoze se preci budem bavit v intencich konkretniho jazyka a praktickyho pouziti. Oboji mi prijde jako pouziti zavedenyho terminu (refcount) nebo terminu velmi podobneho zavedenemu (binarni B+ tree) na neco co neodpovida beznemu chapani terminu. A ze sem na tohle alergickej sme si uz nekde dole vyrikali.

    Kdybys tu strukturu od zacatku pojmenoval ChaosX nebo MNS (moje nova struktura) nebo tak, tak tu nebude ani zdaleka tolik bordelu.
    REDGUY
    REDGUY --- ---
    XCHAOS: takže tady asi 10 lidí kolem dokola vykřikuje "ale C++ je lepší", "Java je lepší", "COM API je lepší než POSIX API", apod. - hele, kdyz porad tak vytahujes to strawman fallacy: ukaz mi prosim kde tady opakovane nekdo _tohle_ rikal? A podotykam ze rada "Podivej se jak je to v COM/Obj-C" _neni_ "vykrikovani ze COM/Obj-C je lepsi".
    XCHAOS
    XCHAOS --- ---
    ANT_39: když odhlédnu od toho, že to není maruška: tedy, já jsem rozhodně od binárně prohledávatelného spojového seznamu viděl kus kódu - a dokonce i přeložitelného, ne pseudo. problém byl jen v tom, že nedělal to, co jsem chtěl :-)
    ANT_39
    ANT_39 --- ---
    XCHAOS: Mnojo, k CRL1 tu a tam jo. Bohuzel treba maruska nevidela myslim ani radek pseudokodu, coz je to, co mi vadi. Treba u te posledni iterace mas navrzeny pouziti barev, ale nepises k cemu a jak.

    Ostatne CRL1 jsem nedavno testoval, ze.
    _BENNY
    _BENNY --- ---
    XCHAOS: zdokumentovana jsou velice dobre, ale ty ty dokumentace cist nechces, cim se, ku tvemu neprospechu, casto pred lidmi ktere je nacteny maji, ukazes jako vynalezce hranateho kola. pritom uplne zbytecne, stacilo by si nejdriv nez zacnes neco vymyslet i neco nastudovat, spoustu slepych ulicek si odpustit a diskuze pak treba bude mit i vyssi uroven.
    XCHAOS
    XCHAOS --- ---
    (pokud přicházím s herezí, tak rozhodně na úrovni sémantiky, možná i na úrovni pro diabetiky nevhodných syntaktických vymyšleností... ale ABECEDU tedy fakt přejímám i s chlupama...)
    XCHAOS
    XCHAOS --- ---
    DAVIDOWITCH: jakou já vymýšlím abecedu, prosímtě ? (mj. právě jsem připoměl, že tady proběhl odkaz na makro, které hezky parsuje utf-8, tedy jsem docela standards-compliant :-) dokonce moje makro count(str,...) vrátí správné číslo - zatímco kanonický a kodifikovaný strlen() vrátí ovšem bohužel špatné...)
    XCHAOS
    XCHAOS --- ---
    _BENNY: ano, ale když se debata úplně zasere tím, jak všichni ostatním říkají, že mají špatné názory, tak je to pak nanic.

    a když jsme u toho... nemyslím, že "všechny existující kola na světě" byla už objevena... natož pak srozumitelně zdokumentována.
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    XCHAOS: Jop, ale tam je vetsinou warning "bacha, tohle ma za ucel vas zmast". Abych rozvedl tvoji paralelu s gramotnost. Ja sem moc rad ze spousta lidi programuje mimo akademickou pudu, vesmes veskery programovani se deje mimo akademickou pudu. Tam se akorat vymejslej vice ci mene zhuleny datovy struktury a algoritmy, typicky s tim ze nejakou realnou pouzitelnost budou mit az za dlouho (a nebo vubec).
    Ale je vyslovene kontraproduktivni, kdyz svet open source (v teto konkretni instanci predstavovany tebou, protoze priznam se bez muceni, druhyho takovyho neznam) nejenze nechce prebrat abecedu akademie a vymejsli vlastni, ale vymejsli vlastni kde jsou pismenka velmi podobnych tvaru a pritom vyrazne jineho vyznamu. Neprijde mi ze by to prakticky pomohlo kolikoliv. Takze ac ti nikdo nemuze obecne, a v tvem klubu obzvlast, zakazat rikat cerne bila a hlasku a psat jako d, tak se nediv ze v ramci diskuze ti to budou lidi vytykat.
    _BENNY
    _BENNY --- ---
    XCHAOS: zkus proste nekdy v diskuzi vynechat vizionarstvi a fantastiku a zamer se vic na hola stroha nerozporna fakta, verim ze si toho rozdilu v pristupu ostatnich hned vsimnes. to ze ma kazdy pravo na svuj nazor neznamena, ze mu nekdo nemuze rict, ze ten nazor neodpovida realite ;)

    nejde o to ze by mela byt nejaka Java lepsi, jde o to ze uplne zbytecne znovuvynalezas kolo, kdyz existuji cele encyklopedie a manualy ke vsem existujicim kolum na svete. a pokud jde jen o mentalni trenink, tak na ten prece nepotrebujes ostatni. nepotrebujes prece od ostatnich slyset, ze tohle hranaty kolo je super ;)
    XCHAOS
    XCHAOS --- ---
    ad kompilovatelné fragmenty: asi nejvíc jsem hrdej na
    [ XCHAOS @ ANSI C/C99 (specifikace), GNU C (gcc, glibc), Tiny C (tcc) a POSIX - ne nutně C++,g++,libstdc++ nebo Win32 API ]
    a
    [ XCHAOS @ ANSI C/C99 (specifikace), GNU C (gcc, glibc), Tiny C (tcc) a POSIX - ne nutně C++,g++,libstdc++ nebo Win32 API ]

    ... umět pracovat s nativními utf-8 stringy mě přijde užitečné (sakra, nějaký tool na tohle jsem si před časem dělal i v Pythonu... bylo nutné konvertovat to do unicode stringu, třeba i jen aby člověk spočítal kolik je v tom skutečně samostatných znaků a tak)
    XCHAOS
    XCHAOS --- ---
    ANT_39: mno, občas zveřejňuju fragmenty v dialetku C<<1 :) popravdě, zveřejnil jsem tu několikrát commity do SVN (zkus hledat /svn/ )
    ANT_39
    ANT_39 --- ---
    XCHAOS: tuším jsem tu přeložitelného kódu (i pseudokódu, vysvětlujícího nějaký obecný princip) určitě zveřejnil nejvíc
    Soude podle filtru na "include", "main", "long" a "for" (nahodne vytazeny klicovy slova, ktery nemaji velkou incidenci v cestine) tu ostatni poslali priblizne 5 kusu zkompilovatelneho kodu, aby neco demonstrovali, kdezto ty 0. Pseudokod jsi trochu nejaky posilal, ale tak nejlepsi to bylo to cos tu mel nedavno s remember a forget, coz je spis nastin pouziti, nez pseudokod algoritmu. Jako lepsi by bylo to C, no.
    XCHAOS
    XCHAOS --- ---
    DAVIDOWITCH: klub má v topicu mj. Obfuscated C Code contest :-)
    XCHAOS
    XCHAOS --- ---
    _BENNY: to je samozřejmě pravda - takže ať si tady lidi nehrajou na kompilátor.

    v podstatě se ty myslím ani nikomu v C moc programovat nechce (je to přece "složité a pracné"), takže tady asi 10 lidí kolem dokola vykřikuje "ale C++ je lepší", "Java je lepší", "COM API je lepší než POSIX API", apod.

    v podstatě málokdo tady diskutuje _aspoň trochu_ ontopic... aspoň si to přiznejte.
    Kliknutím sem můžete změnit nastavení reklam