• ú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
    /* Toto je klub především pro lidi, pro které je programování jednou z mnoha massive multiplayer online počítačových her, které lze hrát.
        V tomto klubu hrozí sémantická hereze a nezdravě vysoký obsah syntaktického cukru. Nevhodné pro algoritmické diabetiky.
        Od účastníků debaty se předpokládá automaticky přístup k instalovanému GNU C: sudo apt-get install build-essential
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    C (programovací jazyk)#C99 Heslo na české Wikipedii
    Jazyk C - Základy praktického programování V Praze 2oo7 pro SSPŠ Tomáš Harvie Mudruňka a kolektiv - jak si programování v C představuje většina lidí
    http://stevenkobes.com/ctest.html C Programming Puzzlers - nepouštějte se do flamewars v tomhle klubu, pokud neuhodnete aspoň polovinu správně!
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    http://en.wikipedia.org/wiki/C99 C99 is a modern dialect of the C programming language.
    http://cprogramminglanguage.net/ C programming language
    http://cprogramminglanguage.net/c-programming-language-tutorial.aspx C programming language - úvod
    http://en.wikipedia.org/wiki/Criticism_of_the_C_programming_language C makes it easy to shoot yourself in the foot. (ještě že ne do hlavy...)
    http://en.wikipedia.org/wiki/C_preprocessor
    http://gcc.gnu.org/onlinedocs/gcc/Variadic-Macros.html C99 makra s proměnným počtem argumentů - __VA_ARGS__
    http://gcc.gnu.org/onlinedocs/gcc/ GNU C Compiler
    http://gcc.gnu.org/onlinedocs/gcc-4.2.2/gcc/Optimize-Options.html
    http://bellard.org/tcc/ Tiny C Compiler - prý C99 compliant (min. umí __VA_ARGS__) - vhodný pro skriptování v C - umí #!/usr/bin/tcc -run
    http://en.wikipedia.org/wiki/International_Obfuscated_C_Code_Contest - pokud jste neviděli tohle, tak jste ještě neviděli opravdu nečitelný C zdroják
    http://bellard.org/otcc/ Obfuscated Tiny C Compiler - z tohohle vtípku vznikl Tiny C compiler
    http://en.wikipedia.org/wiki/ANSI_C Jak se střelit do nohy standardizovaným způsobem.
    http://eli-project.sourceforge.net/c_html/c.html ANSI C Specification
    http://www.lysator.liu.se/c/ Různý ANSI C bordel
    http://www.cs.rit.edu/~ats/books/ooc.pdf Object Oriented Programming with ANSI-C - a pak že to nejde
    http://en.wikipedia.org/wiki/Longjmp co jsou to setjmp()/longjmp() knihovní funkce (pro všechny, podle kterých to bez C++ try { } catch() ... nejde)
    http://groups.google.com/group/comp.lang.c++.moderated/browse_thread/thread/dcdc710c27f47c72 C neumí správně počítat (?)
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    http://www.fastcgi.com/ FastCGI is simple because it is actually CGI with only a few extensions.
    http://www.metalshell.com/source_code/18/Mysql_Select.html How to do a simple connection and select with mysql
    http://xmlsoft.org/ The XML C parser and toolkit of Gnome
    http://curl.haxx.se/libcurl/ libcurl - the multiprotocol file transfer library
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    https://dev.arachne.cz/svn/cll1h SVN/Trac jazyka C<<1 (user-friendly nadstavba nad ANSI C99 - ve stylu JQuery vs. JavaScript)
    Benchmark iterace a serializace stringů v různých jazycích vs. v C
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        moderátor se velice zhruba řídí zvyklostmi moderace, která kdysi platila v řadě konferencí sítě FidoNet ... C != 0xdead */
    rozbalit záhlaví
    REDGUY
    REDGUY --- ---
    XCHAOS: Ty si napsal asi 10 příspěvků podrobně rozebírajících, jak je to celé nesmysl - nesmyslny jsou tvoje zduvodneni o tom, jak se lidi budou ucit programovat ctenim tveho generovaneho kodu, jak je potreba vyresit "problem" s konfiguraci tim, ze "platoforma" automaticky vsechno "zkonfiguruje" sama, jak programovat v C znamena "platoform lock-in" a tak dale a tak dale. Tohle jso konkretni nesmysly a pitomosti. "Chci si hrat" je jedinej rozumnej duvod a nikdy jsem ho nepopiral. Nelzi o tom.
    XCHAOS
    XCHAOS --- ---
    REDGUY: ehm, kdyby si napsal jen "hraj si a předveď výsledek", tak bych vůbec nic nerozporoval. Ty si napsal asi 10 příspěvků podrobně rozebírajících, jak je to celé nesmysl... a když ti došly argumenty, tak se zase zoufale snažíš dosáhnout zabanování.

    což asi udělám.. je fakt nelogické mít lidi, které mám na ignorelistu, ve svých klubech nezabanové...
    XCHAOS
    XCHAOS --- ---
    REDGUY: hele, je to už 10 let. Ale stejný web (dost primitivní,co si budeme povídat - měl vybrat v podstatě nejnovější položky z jediné tabulky) tehdy zvládal asi 3 requesty za sekundu, když byl napsaný v Djangu, zatímco po přepsání do nativního Pythonu jich zvládal asi 30 :-)

    Připouštím, že tehdy možná někdo jen použil to Django špatně (moje práce to tehdy nebyla...). V Pythonu ale pořád občas programuju.. zrovna teď nějakou kombinatoristiku pro plánování naší bezdrátové sítě. V Pythonu se mi výborně pracuje s datovými strukurami - i když zrovna tenhle konkrétní algoritmus bych asi v C napsat dokázal, tak samozřejmě, když píšu něco jednorázově a jen pro sebe, tak dnes automaticky sáhnu po Pythonu.
    REDGUY
    REDGUY --- ---
    XCHAOS: dostanu tuny odpovědí "ne, s tímhle si opovoaž hrát" - hmmm. Takze ja napisu doslova "Jo, hraj si a pak predved vysledek" nebo "napis konkretni specifikaci, nebo jeste lepe, naprogramuj to" ... a xchaos najednou tvrdi, ze "opovaz si s tim hrat"? A pak se divis, o tobe rikam, ze jsi bezostysnej zmrd a lhar 8))
    REDGUY
    REDGUY --- ---
    XCHAOS: výkonnost Djanga mi, dejme tomu, neohromila (srovnáváno s nativní Python webovou aplikací) - Django neni "nativni Python webova aplikace"? A jakpak jsi to meril a srovnaval? Muzes to prosim nejak rozvest, jen tak, at se pobavime?
    XCHAOS
    XCHAOS --- ---
    AXTHEB: takhle... přímo programovat jsem se v tom neučil, ale výkonnost Djanga mi, dejme tomu, neohromila (srovnáváno s nativní Python webovou aplikací)

    nápad, že bych můj code generátor měl i ORM vlastnosti je popravdě jenom nápad. Ale bude staticky typovaný, tedy bude mít např. ekvivalent datové struktury struct, jako Céčko - v té na rozdíl od Python slovníku (dict) nebude moci být libovolný náhodný bordel...

    jinak samozřejmě si cením konstruktivní kritiky, ale ta zdejší debata, kdy já víceméně nastíním, že si s něčím chci a dostanu tuny odpovědí "ne, s tímhle si opovoaž hrát".. no nevím.
    AXTHEB
    AXTHEB --- ---
    AXTHEB: A samozřejmě, že to jde i obráceně, máš tabulku/pohled v databázi tu si necháš popsat Python kódem. Ale uděláš to jednou, a pokud ti někdo změní databázi tak na to přijdeš hned a tedy snadno zjistíš, komu máš jít naplivat do klávesnice.
    AXTHEB
    AXTHEB --- ---
    XCHAOS: Kdybys ses místo vymýšlení metaplatforem naučil Python a nějaké dobré ORM pro něj (třeba to, co je v Djangu). Žádné změny syntaxe, prostě si uděláš objekt a on se magicky umí ukládat do databáze a všechny ty užitečné věci okolo.
    Mezi kód vytvářející silně typovanou strukturu je mizérie která tě zachvíli sežere nějakou magickou chybou. Nadefinovat si objekt/strukturu a pro ní odraz v databázi bude vždy bezpečnější.
    REDGUY
    REDGUY --- ---
    XCHAOS: co takhle představa, že by mezikód pro jakýkoliv výsledek složitější SQL operace dokázal vybudovat lokální silně typovanou strukturu? - No a? V cem je vyhoda? Proc je kvuli tomu potreba psat vlastni jazyk? Co to vlastne znamena a jak by to vlastne fungovalo? Vi sam XChaos, o cem mluvi, nebo zase jen mota dohromady nejaky odporny termity a citi se pritom hrozne cool? Otazky, otazky, otazky 8)))
    REDGUY
    REDGUY --- ---
    XCHAOS: jde zdůvodnit třeba i jen tím, že si prostě chci hrát (a opravdu by mi zajímalo, co najdeš špatném na tomhle nic, na tom pochopitelne nic spatneho neni. Akorat ze tvoje prefoukly ego ti nedovoli v ten moment prestat a skutecne si zacit hrat, ale musis pak mit plnou hubu kecu o tom, jak vyresis neexistujici nebo marginalni problemy, jak se lidi budou ucit programovat ctenim tveho generovaneho kodu, jak implementujes genialni "design patterny" tak skvele, ze se sebehnou lidi a zacnou na tebe pracovat a tak dale a tak dale. Jo, hraj si a pak predved vysledek. Temahle nafoukanejma recickama se ztrapnujes hned dvakrat: jednou ted, podruhy az je srovname s vysledkem 8))

    REDGUY
    REDGUY --- ---
    XCHAOS: tímhle si zase dokazuješ co? - protoze ses ani po vsech tech letech nenaucil citovat to, na co reagujes, tak fakt netusim na co ptas.
    XCHAOS
    XCHAOS --- ---
    REDGUY: ad browserový javascript: jediný jazyk, který je dnes reálně nativně instalovaný kdekoliv, je jazyk, ve kterém ani nejde ukládat do lokálního filesystému (a to je prostě fakt...). k zdůvodnění vývoje nové platformy to nestačí, to je fakt.

    moje meta-platforma, co bude od začátku cílit na více cílových platforem, jde zdůvodnit třeba i jen tím, že si prostě chci hrát (a opravdu by mi zajímalo, co najdeš špatném na tomhle :-)

    (jinak co takhle představa, že by mezikód pro jakýkoliv výsledek složitější SQL operace dokázal vybudovat lokální silně typovanou strukturu? připouštím, že nevím, jestli chci zacházet tak daleko... ale v zásadě, pokud bych opravdu chtěl programovat tak, že nebudu přemýšlet, ve které z 5 různých syntaxí se zrovna nacházím, tak bych se touhle cestou vydal...)
    XCHAOS
    XCHAOS --- ---
    REDGUY: tímhle si zase dokazuješ co? (BTW, to už je intuitivnější generický mysql connect než tohle :-))
    REDGUY
    REDGUY --- ---
    XCHAOS: když se z Pythonu připojuješ do databáze, jsi nucený importovat nějaký modul a přijmout design-pattern jakékoliv jiné databázové aplikace - proboha, a tohle ti prijde jako problem?

    import psycopg2
    db = psycopg2.connect("dbname=xchaos user=je password=idiot")
    


    Tohle je pro tebe zasadni programatorskej problem, kterej vyzaduje reseni napsanim novyho jazyka? Podivej se, to ze to je problem pro _tebe_, neznamena, ze to nejak vadi lidem, co maj IQ vyssi nez prumerna denni teplota 8))

    ještě intuitivnější by třeba bylo, kdyby se řádkem v databázi dalo pracovat úplně stejně, jako s nativní datovou strukturou (objektem, C strukturou). - ne, nebylo. Databaze je databaze, pole je pole. Kdyz se budu k databazi chovat uplne stejne jako k poli, tak to v lepsim pripade bude zoufale neefektivni, v horsim rozbity.

    Pochopitelne, pokud jedina operace, kterou zvladas, je "sekvencne projizdim pres vsechny radky tabulky a vypisuju je" tak ti muze pripadat, ze neni rozdil mezi sql a nativnim polem. Akorat ze to je samozrejme velmi naivni predstava. Zacne se rozpadat uz v okamziku aktualizaci a je komplet mimo u slozitejsich operaci. Cela pointa sql databazi je, ze spoustu prace muze delat server za tebe a vyrazne efektivnejc. A v tu chvili se tvoje predstava "tabulka je pole" uplne katastrofalne mimo.

    Jo, jasne, existujou nejaky ORM systemy, ale ani u nich se k databazi nechovas stejne, jako k nativnim objektum.

    i když jsou prostředí, která je fakt složitá inicializovat A proc si myslis, ze to tak je? Protoze autori jsou hajzlove, kteri schvalne skodi uzivatelum? Samozrejme ze ne. Protoze ti to dava flexibilitu. Rekneme ze xJazyk se nejak automaticky pripojit k databazi, takze usetris ty straslivy dva radky kodu. A co kdyz potrebujes jinou databazi, nez tam xchaos naprogramoval? A co kdyz potrebujes dve databaze soucasne? Co kdyz se k databazi chces pripojit az nekdy uprostred behu programu? Co kdyz se k ni potrebujes pripojit s nejakejma nestandardnima parametrama? Bravo, usetril jsi dva radku... ale rozbil sis zbytek.

    je tu pořád šance, že nějaký konkrétní design-pattern podchytím tak chytře - BUAHAHAHAHAHAHAHAHA. No tak jo. "Planuju neco udelat a doufam, ze neco, nevim co, udelam tak chytre, nevim jak, ze mi ostatni padnou k noham a zacnou resit veci za me." 8)))

    Nne, fakt nepletu - no, mluvil jsi u ukladani do lokalniho systemu v kontextu browseroveho javascriptu. Coz je dost fail. Ale urcite se z toho vykecas, ja vim 8))


    jakou máš vlastně ty message - ze jsi nafoukanej, neschopnej trouba, kterej placa nahodny nesmysly, mota buzzwordy kterejm nerozumi, casto odporuje sam sobe, neni schopnej drzet konzistentni argumenty a hrozne rad machruje o tom, jaky uzasny veci z nej vypadnou, akorat ze nakonec zustane jen u toho machrovani. Ja myslel, ze to uz jsi za ty roky pochopil, nebo ne?

    Hele, existuje pro tebe privialni reseni: prestan mlzit a blabolit o tom, jak uzasna vec to bude a napis konkretni specifikaci, nebo jeste lepe, naprogramuj to. Uz ti to rikam ponekolikaty a porad nic. Skoro jako bych mel pravdu 8)
    XCHAOS
    XCHAOS --- ---
    REDGUY: ano, Python je fajn. ale už když se z Pythonu připojuješ do databáze, jsi nucený importovat nějaký modul a přijmout design-pattern jakékoliv jiné databázové aplikace... není to složité odněkud opsat, ale je to určitý příklad. Python i PHP pracují s daty přinesenými s SQL jako s asociativními poli, to vypadá pěkně a intuitivně - proti všemu, co bylo k dispozici v minulosti - ale ještě intuitivnější by třeba bylo, kdyby se řádkem v databázi dalo pracovat úplně stejně, jako s nativní datovou strukturou (objektem, C strukturou).

    Pak by si třeba SQL tabulku deklaroval stejně, jako deklaruješ datovou strukturu/objekt. A tabulka by byla jen požadavek na to, aby byla sestavená ze struktur tohoto typu - stejně, jako když chceš v programu udělat pole ze struktur daného typu.

    Musíš uznat, že by minimálně z typického webového kódu zpracovávajícího výsledky SQL dotazu ubylo velké množství úvozovek :-) A jakmile jednou pracuju s codegeneratorem, může stejně tak přímo do definice jazyka zahrnout šablonovací systém pro serializace jakéhokoliv druhu (opět velké LOL nad vývojem PHP, které v podstatě bylo původně _jenom_ šablonovacím systémem, ale postupně začalo být využívané k tak komplexním věcem, že se začaly používat šablonovací systémy externí...)

    Nejde tedy jen o inicializaci, i když jsou prostředí, která je fakt složitá inicializovat (nevím jestli si někdy psal třeba nějakou aplikaci s rozhraním Gtk). Jakmile se rozhodnu pro code generátor, můžu generovat i zdrojové kódy pro SQL tabulky (resp. ALTER TABLE kódy pro prostředí, kde už tabulky existují). Je to totiž přesně operace, kterou jako vývojář aplikace spolupracující s databází budeš dělat nejčastěji.

    Samozřejmě existují, že frameworky, které tohle nabízí - ale nevím o tom, že by nějaký existoval pro C. Stejně tak ty frameworky přichází většinou z nějakou vlastní syntaxí, odlišnou od samotného jazyka, ve kterém píšeš zbytek kódu, i od SQL... viděl jsem to nedávno pro PHP, a prostě zápis tabulky tam není ani SQL, ani v PHP syntaxi deklarace objektu - ale je to vlastně nový další dialekt, který se chceš naučit (tedy: codeři stále rostoucím počtem dialektů sdělují, že neumí doopravdy programovat, neumí ani přijít s žádným inovativním algoritmem - ale pořád dělají něco, co min. trvá dlouho a jejich šéf to neumí nebo je líný dělat sám :-)

    takže i když nepřibalím takovou sbírku samozřejmých knihovních funkcí, kterými se chlubí rozvinutější platformy a frameworky, tak je tu pořád šance, že nějaký konkrétní design-pattern podchytím tak chytře, že mi dobrovolníci pak ty "bells & whistles" přibastlí sami a rádi. (vezmi si jen, že code generator může třeba jako součást šablonovacího systému generovat třeba i browser-side javascript, který bude kontrolovat validitu vyplněného formuláře přesně v souladu s tím, jak máš na jednom jediném místě deklarovanou proměnnou... do toho jde zabudovat s výhodou enumerační typy, které jsou v SQL i v céčku, ale třeba i zapomenuté konstrukce z Pascalu - třeba proměnné nabývajících hodnot pouze z daného intervalu, apod...

    komentáře typu jak si nodejs pletu s browserovým javascriptem bych nejradši dělal, že nevidím. Nne, fakt nepletu - ojednoduchén bastlení je možné mluvit jen u toho browserového). že je důvodem ta bezpečnost, to samozřejmě vím... ale současně je javascript asi jediná platforma, která je dnes díky implementaci v browserech všude k dispozici k okamžitému hraní si.

    Otázkou je, jakou máš vlastně ty message, kromě snah o polemiku s každým ASCII nebo UTF-8 znakem, který postnu kamkoliv na nyx...
    REDGUY
    REDGUY --- ---
    XCHAOS: každý, kdo demonstroval schopnost implementovat objektový polymorfismus v čistém C (například já :-), by za předpokladu, že by na to měl dost času, mohl implementovat compiler Pythonu do do C - no tak s chuti do toho! Tu tvoji "schoponost implementovat" jsem videl na vlastni oci, takze se nemuzu dockat 8))))

    Moje ambice jsou daleko nižší. - aha. Takze ne. Hmmmm, proc asi 8)))

    určitým specifikem "Basiců" bylo, že nabízely prostředí, ve kterém si mohl začít rovnou pracovat a nemusel si nic incializovat. - ale pitomost. V Pythonu to mas presne stejne, taky nemusis nic "inicializovat". A pripojeni do databaze jsi v Basicu nemusel inicializovat jen proto, ze tam zadny nebylo 8)))

    v javascriptu v browseru je sice možné začít bastlit slušně from scratch, ale vyrostla díky tomu celá jedna generace progrmátorů, pro kterou je jednodušší uložit data někam na server, než do souborového systému svého vlastního PC - a co je tohle za blabol? Ze ty si tak trochu pletes node.js s browserovym javascriptem? A ze nemas moc predstavu o bezpecnosti js na browseru? Jen tak hadam 8)))
    XCHAOS
    XCHAOS --- ---
    REDGUY: já jsem ti ale neříkal, že v dílčích bodech nemáš pravdu. já se bránil proti osobnostním útokům (což je taky to, za co máš ban v jiných mých klubech...)

    Ono "mít pravdu" není zas takový kumšt, jako si myslíš.

    Překladače z Pythonu do už C existují - většinou ale vyžadují rozšířit zdroják o statické typování. Některé se používají pro generování rychlejších implementací funkčnosti modulů, které pak můžeš importovat a používat v pythoních skriptech.

    V podstatě každý, kdo demonstroval schopnost implementovat objektový polymorfismus v čistém C (například já :-), by za předpokladu, že by na to měl dost času, mohl implementovat compiler Pythonu do do C mezikódu (ale ovšem i do C++ mezikódu nebo každého dalšího jazyka, nabízejícího podobný framework.. objektově programovat lze nakonec i v ASM, že ano..) Já to dělat nehodlám, ale třeba se o to nějaká "komunita" časem pokusí... kdo ví.

    Moje ambice jsou daleko nižší. Podoba s Pyhonem u mě bude vycházet spíš z toho, že zápis datových struktur v Pythonu je vlastně identický s formátem JSONu. Ale jinak daleko radši mluvím o podobnosti s Basicem :-) ostatně, z větvení pomocí "goto" akademikům vstávaly vlasy hrůzou na hlavě ze stejného důvodu, z podobného důvodu, z jakého je dodnes těžké používat thready - třeba přístup ke všem proměnným programu a možnost nečekaně pozměnit hodnoty, se kterými se pracuje na jiné místě (jen ta hrozba byla sekvenční a ne paralelizovaná :-)

    zase mi špatně chápeš - určitým specifikem "Basiců" bylo, že nabízely prostředí, ve kterém si mohl začít rovnou pracovat a nemusel si nic incializovat. Dovedeno do důsledků, mohl si začít kreslit po obrovce a dokonce jí ani nemusel vymazat! Samozřejmě to byla znouzecnost - ale byl to pravý opak složitostí, kterým čelí uživatelé jakéhokoliv prostředí kdykoliv od té doby. (námatkou - v javascriptu v browseru je sice možné začít bastlit slušně from scratch, ale vyrostla díky tomu celá jedna generace progrmátorů, pro kterou je jednodušší uložit data někam na server, než do souborového systému svého vlastního PC :-)
    REDGUY
    REDGUY --- ---
    XCHAOS: vlastně skutečně nejčistší by bylo vykašlat se na "vlastní jazyk" - hmmmm, ze by nakonec ten odpornej troll Redguy mel prece jen pravdu? 8))

    python kompilátoru a runtime knihoven, které dohromady budou výkonější, než nativní interpretery - No urcite. Uz to vidim, jak XChaos napise prekladac z Pythonu do C. Uz jenom predstava, ze by to fungovalo a bylo to po jazykove strance plne kompatibilni je dost komicka. A ze by to bylo rychlejsi? 8)))))

    programátoři, co ovládají C a bude se jim líbit, že nový nástroj generuje mezikód, který je pro ně srozumitelný a ze kterého třeba můžou čerpat inspiraci pro svoje vlastní aplikace v C - ??????? Cili lidi, co umi C a umi Python, ale to C vlastne neumi zas tak dobre, takze budou psat v Pythonu a pak analyzovat generovanej kod, kterej bude obsahovat nejaky uzasny chytry veci, ktery jsi vymyslel ty, a ty lidi se tyhle veci nauci z toho generovanyho kodu, MISTO ABY SI PRECETLI NEJAKOU PORADNOU UCEBNICI PROGRAMOVANI? 8)))))

    zaujme je platforma, která generuje jak PHP tak node.js mezikód - wait, what? Takze ty se porad drzis toho generovani do vic jazyku? Takze budes mit prekladac z Pythonu do PHP? 8))))))

    programátoři, kteří si pamatují Basic na 8bitech, ale od té doby v podstatě neprogramují. 8)))))) No urcite. Protoze clovek, kterej pred triceti lety naposled neco napsal na ZX Spectrum a od ty doby nic, to je "programator" a nejlepsi zpusob, jak se vratit k programovani, pro nej je prekladac z Pythonu do PHP 8))))


    Hele, ze ty sis dneska nevzal prasky? Tohle je dost soda i na tebe 8)))
    REDGUY
    REDGUY --- ---
    XCHAOS: radíte mi thready v LISPu. můžeš mi říct, co je na tom za jakoukoliv výhodu proti tomu, dělat je přímo v C - zase kecas. Bud schvalne lzes, nebo proste neumis cist. Nikdo ti neradi "thready v lispu", radime ti "lisp, jako vyborny prostredek pro obecne experimentovani s novejma rysama programovacich jazyku". To za prve. Za druhe, alternativa neni "delat primo v C", protoze to neni to, co hlasas. To co hlasas je "napsat vlastni jazyk, kompilovany do C". Dalsi argumentacni faul z tvoji strany, coz pochopitelne nestaci, protoze hned pokracujes:

    strach, že kolem něčeho nevznikne dostatečná "komunita", mi popravdě štve. - no jasne, zase klasicka XChasovska ucelova argumentace. Nejdriv se ptas, kolik lidi programuje v LISPI (tedy, jak velka je komunita) a kdyz ti pripomenu, ze pro xJazyk je to presne nula, tak najednou na "dostatecnosti komunity" nezalezi. Jak korouhvicka, reknes cokoliv, u ceho mas pocit ze ti pomuze, ale kdyz se ukaze, ze to je pitomost, tak najednou zcela bezostysne otocis uplne do protismeru.

    Nicmene, jestli te zajima, jak skvely jsou lisp-base jazyk na experimentovani s multithreadingem, podivej se na Clojure a ClojureScript, kde mas knihovny core.async pro asynchroni programovani a komunikaci, ciste jako knihovnu, jejiz pouziti je +- plne prenositelny mezi JVM a JavaScript backendem. S ohledem na to, ze JS thready vubec nepodporuje, je to uzasny.
    XCHAOS
    XCHAOS --- ---
    SPIRALI:
    REDGUY: fajn, radíte mi thready v LISPu. můžeš mi říct, co je na tom za jakoukoliv výhodu proti tomu, dělat je přímo v C?
    lisp threading example
    https://lbolla.info/lisp-threading-example

    strach, že kolem něčeho nevznikne dostatečná "komunita", mi popravdě štve. prošel jsem si v životě X komunitama všech možných směrů a začínám mít pocit, že opravdu efektivní projekty dokáží vést spíš jednotlivci s jasným cílem, kteří se na komunitu až tolik neohlíží... spousta kompromisů, které jsem v životě udělal s ohledem na nějakou "komunitu", se mi nakonec vymstila.

    pokud bych udělal nástroj, kteří nebude používat "komunita", ale prostě lidi, co hledají nástroj co nabídne nejvíc muziky za co nejmíň peněz, tak budu spokojený. komunita teprve může začít vznikat nějak samovolně, pokud se lidé začnou zajímat o další lidi, kteří přišli na to samé... pokud "charismatický vůdce" vytvoří uzavřenou sektu, jejíž členové všechny začne přesvědčovat, že mají nějak "konvertovat" k jeho projektu. Myslím, že možnosti přístupu "sekta" se vyčerpaly u projektů GNU a zejména linuxového jádra - výsledek je obdivuhodný, ale o moc dál si myslím, že už zajít nelze (i když jestli se někdo pokusil o založení prvního českého "linuxového kláštera", tak jsem to byl v podstatě já se svojí původní podobou Arachne Labs :-))

    Python skutečně zůstává největší inspirací, protože prostě stále znova kdykoliv zagooglím, tak zjistím, že konstrukce co potřebuju, v tom už dávno jsou připravené - naposledy zrovna včera "import itertools" a funkce jako combinations(), permutations()... takže ano, velmi dobře si uvědomuju, že jazyk musí být obklopený sadou nástrojů, a že dostat se tak daleko jako třeba Python by bylo šíleně těžké...

    vlastně skutečně nejčistší by bylo vykašlat se na "vlastní jazyk" a třeba se rozhodnout, že se chci pustit do vývoje Python kompilátoru a runtime knihoven, které dohromady budou výkonější, než nativní interpretery (s tím, že napsat to jako code generator generující C je ale pořád cesta nejmenšího odporu pro někoho, kdo nikdy pořádně neovládal assembler). Jenže právě problém je, že v tom jazyku je už tolik nativních a hodně sofistikovaných features, která právě extenzivně využívají všechny ty moduly, že bych byl nucený buď napodobit features oficiálního interpreturu do té míry, že by na to člověkohodiny jednoho života nestačily - nebo se smířit s tím, že některé moduly se zavedou a jiné ne, apod.

    Takže, sakra, zase už to po sobotním raním kafi píšu moc dlouhý, podle mě není možná jiná cesta, než:

    1) hračka (jako Linusův první multitasking na i386, kdy mu poprvé dvě vlákna psaly po obrazovce... nebo můj zárodek browseru pro DOS, kdy jsem byl okouzlen možností, že je možné slinkovat dohromady TCP/IP knihovnu Wattcp, na kterou jsem narazil skrze prohlížeč DOSLynx s grafickou knihovnu, kterou vyvíjela skupina programátorů ve které působil můj otec, a kterou jsem upirátil za účlem vývoje nějaké DOSovské hry - to, jak těžké bylo pod DOSem programovat hry oproti 8bitům, mě frustrovalo řadu let)

    2) releasnu nějakou marginálně užitečnou aplikaci na bázi hračky

    3) buď to zaujme, nebo ne. Pokud to zaujme, skutečně by se mohla vytvořit komunita, která mi začne dodávat nástroje, jako jsou v Pythonu itertools - je přitom jasné, že takový nástroj mi nejspíš dodá někdo, kdo se hrozně nudí, vede semináře kombinatoriky na vysoké, a v itertools mu třeba něco chybí.

    4) pokud vůbec vznikne nějaká "komunita", tak vznikne posbíráním odpadlíků z existujících sekt či zcela nepřizpůsobivých jedinců: nemám vůbec ambice pythonisty přesvědčovat, ať se vykašlou na python, protože by to bylo marný. Pokud vůbec cílím na někoho konkrétního, tak na naprosto marginální skupiny, většinou dokonce starší 40ti, možná i 50ti let:

    - programátoři, co ovládají C a bude se jim líbit, že nový nástroj generuje mezikód, který je pro ně srozumitelný a ze kterého třeba můžou čerpat inspiraci pro svoje vlastní aplikace v C (ovšem ambice překladu pro více platforem znemožní konstrukce typu "inline C" - teda neznemožní, ale aplikace rázem přestane být multiplatformní...)

    - programátoři, kteří bastlili webové aplikace v PHP a už jsou si vědomi, že to tolik nefrčí, ví, že by měli přejít na node.js, ale zaujme je platforma, která generuje jak PHP tak node.js mezikód (opět - zaujme je možnost podívat se, jak konstrukce jednoduchého vyššího rozexpandují to mezikódu)

    - programátoři, kteří si pamatují Basic na 8bitech, ale od té doby v podstatě neprogramují. tihle lidé nebyli zvyklí nic iniciovat - tedy prostředí, ve kterém bude existovat něco jako "implicitní databáze", ke které se každá vygenerovaná aplikace připojí bez nutnosti cokoliv inicializovat, pro ně bude mimořádně pohodlné.

    - programátoři, kteří ovládají Python, ale narazí u nějakého svého projektu na výkonnostní limity a budou hledat, jak něco napsat tak, aby jim to neběželo celou noc

    Jestli z těhle příkladů může někdy vzniknout něco jako "komunita", to se dá těžko předvídat, a samozřejmě, že nejspíš vytvořím jenom další "obskuranto" (po vzoru "esperanto").

    Dokonce si ani nemyslím, že chci tenhle klub zasrat jen nekonečným flamewarem na tohle téma. Spíš, než abych tu vytvořil nadšence pro svůj vyšší pseudojazyk, bych čekal, že tu lidi zaujme právě to hledání způsobů, jak pro nějaké konkrétní moderní datové typy a pattern designy vygenerovat ten mezikód v C...
    REDGUY
    REDGUY --- ---
    XCHAOS: kolik lidí umí programovat v jazycích vycházejících z LISPu Mlzis a vykrucujes se. Nicmene, i pritom se zvladnes bezchybne strelit do vlastni nohy: a kolik lidi umi programovat v neexistujicim xJazyku? 8))))

    Pointa je nekdo uplne jinde: mas plnou hubu toho, jak chces bejt "linguista programovacich jazyku", jak "hledas ten spravnej jazyk, ve kterym se ti bude dobre myslet" - ale kdyz ti ukazu konkretni priklad jazyka, kterej se hodi pro to, co te zajima, tak najednou vymluvy a mlzeni. Hmmm 8)))
    Kliknutím sem můžete změnit nastavení reklam