• ú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: pokud importuju externí knihovnu podporovanou jen v jedné z cílových platforem (typicky C), tak po připojení téhle knihovny můžou ostatní cílové platformy jen zařvat, že to nepodporují - HAHAHAHAHAHAHA. Jo, jasne. "Tady mam uzasnej skvelej xJazyk, kterej vam umozni napsat kod jednou a pak mym genialnim prekladacem prelozit na x ruznejch platforem. Teda, uhm, pokud nahodou nepouzijete knihovnu, kterou na ty platforme nepodporuju" 8)))))

    napsat interfacy k existujícím populárním nástrojům by nemuselo být _tak_ složité - 8))) Jo, to je skvela argumentace. "Nemuselo by to byt _tak_ slozite". To je skoro datk dobry, jako tvoje legendarni "sazim na to, ze" nebo "tvrdim, ze".

    btw, uz sis nastudoval, jak to je s tema garbage collectorama a proc je tvoje predstava "proste tam vrazim pocitani referenci" ponekud... naivni?

    No a konecne: cela ta tvoje predstava "performance problem weboveho serveru vyresim tim, ze ho prelozim do C" jen krasne ukazuje, ze vubec netusis, kde jsou skutecne obtizny bottlenecky webovejch serveru. Coz asi nikoho neprekvapuje, ale je to peknej, dost vypovidajici detail...
    REDGUY
    REDGUY --- ---
    XCHAOS: mi spíš vysvětli, proč něco takového neudělali všichni, kteří se v posledních letech pokusili o nějaký vlastní interpreter - protoze nikdo, kdo psal vlastni jazyk, nemel takhle idiotskou, zamotanou a nesmyslnou motivaci.
    REDGUY
    REDGUY --- ---
    XCHAOS: lidí, kteří nejsou na web schopni deploynout binárku, nebo si jí tam přeložit, ale mohou někam hodit jen PHP kód, není zrovna málo. - "neni zrovna malo"? V dobe, kdy bud uplne zadarmo nebo za par drobnejch muzes nahodit instanci v AWS/Heroku/Google Cloud/ whatever a poustet si na ni co chces? No jasne 8))))

    přesto bych tedy radši vyvíjel v něčem, z čeho mám C mezikód do budoucna - Takze ty rikas, ze exituje "ne zrovna malo" lidi, kteri:

    - programujou v PHP
    - nejsou schopnit si spustit vlastni server
    - ale nekdy v budoucnu mozna z nejakyho duvodu budou potrebovat kompilovat do C (proc, proboha?)
    - a aby tohle splnili, tak zapomenou to PHP, zahodi vsechny jeho knihovny, nastroje a kod, kterej uz v nem napsali a nauci se xJazyk, ke kterymu neexistujou knihovny, nastroje, je zabugovanej a navic neexistuje. Jen proto, aby mozna nekdy mohli "kompilovat do C".

    Prosim, muzes nejak dolozit, ze takovych lidi existuje nejake nezanedbatelne mnozstvi? A ne "sazim na to, ze ano" nebo "ptal jsem se jednoho kamarada, a ten rekl, ze jo" 8)))
    REDGUY
    REDGUY --- ---
    XCHAOS: dost tu argumentaci překrucuješ. Hele, top jsou skoro doslovny citace toho, cos ty sam psal. Chces, abych ti nasel presny zpravy a doslova to z nich opsal, nebo mi honem das banana, abych nemohl? 8))
    XCHAOS
    XCHAOS --- ---
    REDGUY: ehm, dost tu argumentaci překrucuješ.

    mám konkrétní příklad, proč někdo může být demotivován programovat čistě v C - lidí, kteří nejsou na web schopni deploynout binárku, nebo si jí tam přeložit, ale mohou někam hodit jen PHP kód, není zrovna málo. přesto bych tedy radši vyvíjel v něčem, z čeho mám C mezikód do budoucna

    gerování C kódu je vzhledem k teoretické množství skutečně cílových platform neutrální, protože pro všechny další zamýšlené generované mezikódy pro další target platformy existují interpretery napsané v C, které se dají přeložit všude. motice pro paralelní generování do víc platforem je právě spíš možnost deploynout aplikaci někam, kde tě binárku buď pustit nenechají, nebo tě tam nenechají nakonfigurovat výkonostně efektivní uspořádání typu fastcgi.

    (tady se BTW rovnou nabízí generování i pro více dílčích variant platformy - čisté C, s možnosti použití stdout jako CGI, fastcgi, nebo i verze s http serverem zabudovaným jako součást runtime, jak to evidentně umí udělat třeba node.js. a když se nad tím zamyslíš, tak slinkování aplikace přímo s miniwebserverem bude mít zřejmě ještě menší režii, než sebesofistikovaněší API na webserver... a nic z toho já jako vývojář překladače nemusím řešit hned, ale můžu tyhle dodatečné dílčí "variace cílových platforem" dodat až časem... klíč k tomu se mi otevře ve chvíli, kdy budu mít ten C mezikód, a s tím, kam přesně přesměruju jeho I/O si můžu hrát až dodatečně...)

    místo teoretizování proč je to blbý nápad mi spíš vysvětli, proč něco takového neudělali všichni, kteří se v posledních letech pokusili o nějaký vlastní interpreter...

    strašně napadáš můj pokus umožnit jako jednu ze základních feature (místo všeho shánění se po sofistikovaných knihovnách) multitheading. ale když si projdeš cílové platformy, které jsem vyjmenoval (např. webové PHP, nodejs), tak jejichi interpretery skutečný multithreading nepodporují. paralelní překlad do C zde tedy může přinést výrazný nárůst výkonu, protože i když syntaxe threadů v ostatních jazycích může C připomínat, a vytvořit pro programátora iluzi, že něco se děje paralelně, tak pouze thready v C jsou skutečné thready, které se skutečně pokusí využít další jádra CPU (kdyby to totiž bylo tak jednoduché, tak by se asi v Googlu nepouště do psaní Go, že ano)

    zkráta, v hledání důvodů proč něco udělat jsi fakt dobrý - ale pokud je zadáním "umožním každému blbnout s programováním tak, aby mohl hned od začátku svoje výsledky deploynout do prostředí, na které je zvyklý, a přitom v budoucnu v případě potřeby navýšení výkonu nemusel nic přepisovat", tak prostě nemáš nic, co by se dalo nabídnout.

    navíc spoustě tvých výhrad lze při troše snahy oponovat: tak např. pokud importuju externí knihovnu podporovanou jen v jedné z cílových platforem (typicky C), tak po připojení téhle knihovny můžou ostatní cílové platformy jen zařvat, že to nepodporují (ale tím se neomezí možnosti core jazyka). nebo binding ke knihovnám může být implementovaný pro všechny 4 cílové platformy, protože většinou stejně jde jen o wrappery kolem té jediné knihovny, implementované v C. Příklad: pokud jde o knihovny typu ImageMagick, bude API u všech cílových platforem podobné. napsat interfacy k existujícím populárním nástrojům by nemuselo být _tak_ složité - nejsložitější mezikód se nakonec vždy bude generovat jen pro to C, pro ostatní platformy bude překlad triviální.

    ovšem proč se snažit argumentovat, když ty máš svojí zjevenou pravdu a předem víš, co všechno určitě nepotřebuješ a určitě to nepotřebuje ani nikdo jiný...
    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.
    REDGUY
    REDGUY --- ---
    XCHAOS: hele, je to už 10 let. No jasne. Takze to je fakt relevantni informace 8)))

    když byl napsaný v Djangu, zatímco po přepsání do nativního Pythonu - aha, ty jen nevis, co znamena slovo "nativni". Ok 8)))
    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)
    Kliknutím sem můžete změnit nastavení reklam