• ú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: 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)))
    SPIRALI
    SPIRALI --- ---
    XCHAOS: Overit si zivotaschopnost temer libovolne programovaci konstrukce na prototypu v LISPu je vyrazne jednodussi nez vyvinout libovolny prekladac, k nemu standardni knihovnu, pokryt to testy a napsat k tomu dokumentaci a vyukove materialy a toto udrzovat dostatecne dlouho nez vznikne dostatecne velka komunita, ktera bude jazyk dale rozvijet. Urcite bych zvazil tu prvni moznost nez se clovek pusti do te druhe.
    XCHAOS
    XCHAOS --- ---
    REDGUY: kolik lidí umí programovat v jazycích vycházejících z LISPu... natož v nich něco modifikovat?
    REDGUY
    REDGUY --- ---
    XCHAOS: Kreativita neni zbytecna. Problem je v tom, ze to co predvadis, neni kreativita, proste jen plany chvastani, jak vyresis problemy, ktery bud neexistujou ("platforma, kterou za pet let vsichni vyhodej"), nikdo je nepotrebuje resit ("lock-in v Cecku"), pripadne "reseni" ktery "resi" jen jednu supermarginalni cast ("problem nevyuzivani multijader vyresim tak, ze budu poradne podporovat pouze nezavisly paralelni zpracovani prvku pole").

    Ale hlavne, zcela zjevne z tohohle nic nebude. Tohle neni solarni kolo, kde muzes nekomu zaplatit, aby svaril par trubek podle tvyho obrazku, privazat na to nekym jinym dodanou elektroniku a pak na tom silou vule s velkou bolesti a usilim dojet do Ciny. Prekladac silou vule nenapises. Tady nejs "kreativni", jsi proste ukecanej. Pletu se? Tak se predved. Napis to, dokaz jak hrozne jsem te podcenil 8))))

    pokud objevím nějakou novou zajímavou feature, tak do vlastního jazyka si jí prostě můžu přidat, u jazyka vyvíjeného někým jiným musím počkat, až jí někdo přidá. - a znovu a znovi ukazujes, ze nevis, o cem mluvis. Tohle taky samozrejme neni pravda. Treba jazyky vychazejici z LISPu jsou prosluly tim, ze je trivialni v nich experimentovat s novejma pristupama aniz bys musel modifikovat vlastni jadro jazyka. Ale jasne, k cemu nejaky vedomosti, hlavne ze jsi "kreativni". Protoze nejdriv si neco nastudovat, tyhle veci vedet a umet pouzit, to vubec neni uzitecny. Hlavni je chvastani, ehm, vlastne "kreativita" 8)))
    XCHAOS
    XCHAOS --- ---
    REDGUY: tak jistě o spoustě problémů netuším, na druhou stranu: pokud objevím nějakou novou zajímavou feature, tak do vlastního jazyka si jí prostě můžu přidat, u jazyka vyvíjeného někým jiným musím počkat, až jí někdo přidá. stejně, tak code generator můžu optimalizovat, když chápu co a proč v něm funguje.

    každopádně, gratuluju ti k tvému životnímu rozhodnutí "buď radši nedělat nic, nebo dělat to, co všichni kolem". chápu, že kreativita je úplně zbytečná, až nežádoucí, tak si to užívej (optimálně ovšem někde jinde, než v tomhle klubu)
    REDGUY
    REDGUY --- ---
    XCHAOS: ale třeba ten Python... rozdělení na 2.0 a 3.0 tam není úplně něco, co bych chtěl řešit - a proc myslis, ze vznikl Python 3? Ze si van Rossum a spol rekli "A ted jen tak vydame zpetne nekompatibilni verzi Python, protoze LOL"? Samozrejme ne. Proste ve dvojce byly nejaky spatny rozhodnuti, omezeni, ten jazyk se zacal pouzivat zpusobem, s kterym puvodne nepocitali, objevili se novy smery a myslenky a uz ten jazyk poradne neslo zpetne kompatibilne rozvijet. Takze udelali trojku, aby meli volny ruce k potrebnejm zmenam. Jo, jasne, je to komplikace, ale holt to jinak neslo.

    A ty si myslis, ze jen tak sednes a na prvni dobrou vyfrknes uzasnej xJazyk, kterej bude uplne skvelej a pristich deset let na kod v nem napsanej ani nesahnes a vsechny zmeny budou v tom generatoru, protoze se objevi "php s threadama"? Ty, s tvejma schopnostma a zkusenostma, kterej primo tady demonstrujes, ze o spouste problemu fakt ani netusis? BUAHAHAHA! Zase klasickej XChaos, u kterejo se jeho nafoukanosti vyrovna jen jeho omezenost 8)))

    pak hledám jazyk, ve kterém se mi daným způsobem dobře myslí. - pokud vim, tak vsechno, co trochu umis, je Cecko a mozna Python. A kdyz jsem naposled videl tvuj C kod... no, bez komentare 8)) Bez a nauc se nejaky vyrazne jiny high-level moderni jazyky a neco v nich napis. Oh, wait... to vyzaduje nejakou skutecnou praci a usili. Takze zustanes u chvastani o tom, jakej napises skvelej jazyk, jaky "keywordy" v nem budes mit (protoze to je to nejpodstatnejsi 8))) ) - a pak to usne a vysumi. Jako obvykle 8))
    XCHAOS
    XCHAOS --- ---
    REDGUY: budiž... ale třeba ten Python... rozdělení na 2.0 a 3.0 tam není úplně něco, co bych chtěl řešit... před 10 lety mi to přišlo jako dobrý nápad, ale evidentně, ani po 10 letech nebyly všechny 2.0 aplikace portované do 3.0 (?)

    mě jako odstrašující případ přijde PHP, kde se v podstatě paralelně vyskytuje kód pro 4,5 a 6. pokud půjdu cestou code-generátoru a dejme tomu se objeví nějaká mutace cílové platformy s novou feature (think "PHP with threads", který BTW existuje, a můžu tedy generovat aplikace pro commandline i pro web), tak si prostě jen přidám nový target do code generatoru a na svoje vlastní zdrojáky vůbec nešáhnu.

    uznávám, že je to trochu koncept z 19.století, ale nakonec... to jak člověk myslí, je ovlivňováno jazykem, který používá (ať už lidským, nebo programovacím). takže já nejdřív řeším, "jak chci myslet" - a pak hledám jazyk, ve kterém se mi daným způsobem dobře myslí. (C v tomhle kontextu je "jazyk, který je uvnitř toho myšlení" - ať už je to dobře nebo ne, vzhledem k tvým vlastním postřehům, jak je dnes ASM někde hodně jinde, než byl v době vzniku C, kdy se každá C instrukce či operátor mapoval na nejvýše dvě strojové instrukce na PDP...)
    REDGUY
    REDGUY --- ---
    XCHAOS: já jsem ochotný přemýšlet maximálně jednou a dost - ver mi, to pro vetsinu lidi, co te znaji, neni zadna novinka 8)))
    REDGUY
    REDGUY --- ---
    XCHAOS: nebaví mi programovat na platformě,kterou všichni za 5 let zahoděj - a timhle chces rict co? Jako kdybysme se bavili o javascript frameworkach na klienta, tak ok, tak je polocas rozpadu tak dva roky. Ale normalni jazyky? Namatkou: Python 2.0, 2000, Python 3.0 2008, Perl5 1994, PHP5 2004, Erlang 1986, Clojure 2007 (a pokud ji budu brat jako dialekt Lispu, tak motherfucking 1958 8)) ). Dokonce i ten Node.js je skoro deset let starej: 2009. Takze prosim, vysvetli mi, o jake "platforme, kterou vsichni za 5 let zahodej" mluvis?

    REDGUY
    REDGUY --- ---
    XCHAOS: Tobe to bizarni neprijde? Nekolikrat jsi rikal, ze chces udelat neco, co bude plne vyuzivat vicejadrovy procesory. Fakt ti prijde naprosto v poradku, ze se pak omezujes jen na ten uplne nejtrivialnejsi zpusob multithreadingu (s tim, ze zjevne nechapes, ze i ten je slozitejsi, nez si myslis)? Opravdu opravdu opravdu ti to prijde normalni a v poradku? Nebo jsi proste zase jen tak nahodne neco placnul a kdyz jsem ti zacal ukazovat, ze to je blbost, tak ses proste sprajcnul a napises cokoliv, abysto nemusel uznat?
    XCHAOS
    XCHAOS --- ---
    REDGUY: já jsem ochotný přemýšlet maximálně jednou a dost :-)
    XCHAOS
    XCHAOS --- ---
    REDGUY: podívej, tebe by neuspokojilo nic...

    já fakt nevím, jak to napsat, aby ti to nepřipadalo "bizarní". co takhle "nebaví mi programovat na platformě,kterou všichni za 5 let zahoděj... ale odhodlat se programovat přímo v čistým C jsem se mi nepodařilo ani po 15 letech snahy, takže hledám nějaký kompromis" ?
    XCHAOS
    XCHAOS --- ---
    GIANT: přiznávám se, že je to částečně offtopic :-)
    GIANT
    GIANT --- ---
    v mezicase si asi fakt prectu celou ANSI C specifikaci, jak mi tu kdosi kdysi doporucil :-D
    GIANT
    GIANT --- ---
    ciwe dalsich 30 kilometrovejch postu. to nedam. az se na necem dohodnete, tak sepiste zavery, jestli k nejakm spolecnejm teda dojdete :-D
    Kliknutím sem můžete změnit nastavení reklam