• ú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 --- ---
    na tomhle je krásně vidět to snížení nákladů na vývojáře nasazením LISPu:
    99 Bottles of Beer | Language LISP
    http://www.99-bottles-of-beer.net/language-lisp-361.html

    už vidím, jak to vysvětluju kolegům ve firmě, kterří protestují i proti plaintextovému konfiguráku s velmi volnou rozšiřitelnou syntaxí a radši by nějakou klikací pomstu...
    XCHAOS
    XCHAOS --- ---
    REDGUY: and because Lisp was so high-level, we wouldn't need a big development team, so our costs would be lower.

    ... snížili ceny, protože americké univerzity stále ještě produkují tolik absolventů, co ovládají LISP, že tržní cena této práce je nižší, než cena východoasijských coderů v PHPku? :-)
    REDGUY
    REDGUY --- ---
    XCHAOS: Mimochodem, co rika o Lispu na webovym serveru Paul Graham?

    So you could say that using Lisp was an experiment. Our hypothesis was that if we wrote our software in Lisp, we'd be able to get features done faster than our competitors, and also to do things in our software that they couldn't do. And because Lisp was so high-level, we wouldn't need a big development team, so our costs would be lower. If this were so, we could offer a better product for less money, and still make a profit. We would end up getting all the users, and our competitors would get none, and eventually go out of business. That was what we hoped would happen, anyway.

    What were the results of this experiment? Somewhat surprisingly, it worked. We eventually had many competitors, on the order of twenty to thirty of them, but none of their software could compete with ours. We had a wysiwyg online store builder that ran on the server and yet felt like a desktop application. Our competitors had cgi scripts. And we were always far ahead of them in features. Sometimes, in desperation, competitors would try to introduce features that we didn't have. But with Lisp our development cycle was so fast that we could sometimes duplicate a new feature within a day or two of a competitor announcing it in a press release. By the time journalists covering the press release got round to calling us, we would have the new feature too.


    Ale co ten o tom muze vedet. Jenom na Lispu postavil webovej produkt, kterej pak prodal za padesat mega dolaru. Kdyz XChaos rika, ze Lisp se na webovy programovani nehodi, tak to musi bejt pravda 8)
    REDGUY
    REDGUY --- ---
    XCHAOS: funkcionální jazyky jsou celkově určené k něčemu úplně jinému, než co potřebuju já - Coz vubec nesouvisi s tim, co jsem rikal. Nerikam "nauc se funkcionalni jazyky a pouzivej je", ale "nauc se je, abys videl novy veci a poucil se z nich". A radsi nebudeme mluvit o tom, ze tvuj vlastni link na stackoverflow ukazuje rady prikladu toho, jak se funkcionalni jazyky na web dost hodej. Cili jsme zase u toho, ze sice funkcionalni jazyky neznas, presto ale nejak magicky vis, ze se nehodi na to, co potrebujes... jako obvykle 8))

    když si prohlédneš typickou webovou aplikaci, tak zjistíš, že tak 1% strojového času spotřebuje (vysoce optimalizovaný) databázový engine, a 99% neefektivní PHPka - HAHAHAHA. No tak jo 8)
    XCHAOS
    XCHAOS --- ---
    (if dotaz je 7 let starý kolik webu za tu dobu bylo přepsáno do funkcionálních jazyků)
    Is functional programming relevant to web development? - Stack Overflow
    http://stackoverflow.com/questions/292033/is-functional-programming-relevant-to-web-development
    XCHAOS
    XCHAOS --- ---
    REDGUY: funkcionální jazyky jsou celkově určené k něčemu úplně jinému, než co potřebuju já. já nemám moc jiné ambinace, než původní Perl.. akorát že dnes většina dat, které je potřeba zpracovat, už dávno není v parsovatelných textových souborech, ale je potřeba se napojovat na nejrůznější zdroje.

    jak jsem psal dříve: když si prohlédneš typickou webovou aplikaci, tak zjistíš, že tak 1% strojového času spotřebuje (vysoce optimalizovaný) databázový engine, a 99% neefektivní PHPka, kde se primitivně naplňují výsledky dotazů neefektivní datové struktury a s nimi se dělají různá kouzla. I po dalších cca 10 letech, co se tímhle zabývám, pořád web existuje, jen prostředí se ještě víc zkomplikovalo a nedá se už čekat, že jednoduchá slátaná dynamická stránka uspokojí všechny typu interfaců k aplikaci.

    problém je, že tohle moje jaksi "celoživotní téma" (zdá se) prostě nijak zvlášť nevede k funkcionálním jazykům. lazy evaluation je pro lidi, kteří uměj zařídit, aby vlastně překladač tak nějak sestavil algoritmus za ně, když se dostatečně rafinovaně zeptají. tohle není můj případ: já budu mít v paměti vždycky nějaká data, načtená odněkud, a budu nad nima dělat nějaké kupecké počty. je to hloupé, ale prostě zatím většina toho, čím se zabývám, směřuje přesně k tomuto. (akorát jednou to má webové rozhraní, jednou se to volá z cronu, tzn. "skript" bez GUI... a potřetí by se mi třeba hodilo tomu dát rozhraní, na které se zase napojí úplně jiný skript na jiném serveru....). prostě prostor mezi židlí/monitorem a databází dnes nabízí obrovské množství příležitostí, protože prostě lidi se nenaučili SQL, ale klikat a po cestě jsou ještě dráty/packety... a od toho se toho odvíjí celkem dost...

    a kdykoliv něco zmiňuju "dialekt basicu", tak si dělám srandu hned z několika věcí současně - jednak se tím dotčení většinou urazí, ale fakticky jde i o to, že Basic měl nakonec tolik (nekompatibilních) dialektů, že by se dnes každý dávno pokládal za zcela odlišný jazyk...
    REDGUY
    REDGUY --- ---
    XCHAOS: Co je to syntakticky cukr vim. A bohuzel vim i to, jak vypada tvuj "makrojazyk" a ver mi, "hnedym trtinovym cukrem" bych ho nenazval 8) Schvalne jestli te napadne nejaka jina hneda vec ke ktere by se dal prirovnat 8)

    jenom, že pro mě nejsou - a to je prave problem, ta neochota ucit se nove veci. Podivej se, ruzny jazyky maji ruzny cile, kterejch se snazi dosahnout ruznejma prostredkama. Naucit se jaky cile a jaky prostredky to jsou, porovnat je a zhodnotit podle vlastnich meritek je ta nejlepsi mozna priprava na design vlastniho jazyka. Ale klidne na to kasli a zustan u povrchniho placnani typu "pouziva to "let", takze je to dialekt basicu" 8)))

    jaké cesty existují v imperativních jazycích, to se ode mě asi časem dozvíš - aha, takze stejna story jako s poznavamim coderskeho kodu a dalsima xchaosovinama, coz? "Casem uvidis" 8))) Ok 8)
    XCHAOS
    XCHAOS --- ---
    myslím, že ta vandalizace wiki už fakt přesahuje všechny meze...
    Syntactic sugar - Wikipedia, the free encyclopedia
    https://en.wikipedia.org/wiki/Syntactic_sugar#Syntactic_saccharin
    XCHAOS
    XCHAOS --- ---
    REDGUY: syntaktický cukr je definován zde: https://en.wikipedia.org/wiki/Syntactic_sugar
    (např. jsem si zkusil nadefinovat then (které by nedělalo absolutně nic), protože mi to připomínalo starý dobrý Basic, jenže pak jsem byl líný to psát.. takže syntaktický cukr, který jsem líný používat i sám, asi proškrtám :-)

    neřekl jsem, že funkcionální jazyky jsou zbytečnost - jenom, že pro mě nejsou. (btw v poměrně raném věku jsem se setkal s Prologem, který ovlivnil můj přístup k seznamům...)

    a jaké cesty existují v imperativních jazycích, to se ode mě asi časem dozvíš :-)) (ale mám na mysli i věci, které do C bez spolupráce s compilerem fakt propašovat nepůjdou...)
    REDGUY
    REDGUY --- ---
    XCHAOS: nevíš, co bys k tomu dodal, ale nedá ti to, abys nemlčel, co - no ja ti nevim. Kdyz ty pises "něco jiného by potřeba být mohlo" aniz bys ukazal nejakej konkretni priklad, tak to je neco zasadne jineho? Jen tak pro kontrolu 8)))

    ůj (léta) chystaný makrojazyk bude hnědým třtinovým cukrem mezi syntaktickými cukry - no, hnedy to urcite bude. Jestli cukr... no, co se pamatuju, tak spis ne 8))

    Ty funkcionální pro mě moc nejsou, to je marné. - ach jo. Jo, jasne, proc se ucit novy veci, takova zbytecnost...

    v těch procedurálních/imperativních existují cesty, kterými se moc nechodí - bojim se zeptat, ale neda mi to... co tim prosim myslis?
    XCHAOS
    XCHAOS --- ---
    hmm, implicitní return v Rustu.. to je teda hodně dietní jazyk... příliš málo syntaktického cukru :-)
    XCHAOS
    XCHAOS --- ---
    DANIELSOFT: no koukám na to.. "for něco in něco se mi líbí", to je ostatně moje hlavní motivace rozšiřovat c, ale to znám už z pythonu :-) že používají "let" je takové.. hmm, dialekt Basicu :-) mrknu jaké mají kontejnery
    DANIELSOFT
    DANIELSOFT --- ---
    XCHAOS: na Rust jsem zběžně koukal a celkem se mi líbil. Go se asi budu muset naučit, protože v týmu co jsem v práci v něm začínají vznikat projekty...
    XCHAOS
    XCHAOS --- ---
    REDGUY: no ty vlastně nevíš, co bys k tomu dodal, ale nedá ti to, abys nemlčel, co :) přitom volání metody k literálu je prostě syntaktický cukr, ovšem ty víš, že já syntaktický cukr rád, umělá sladidla nerad :-) a můj (léta) chystaný makrojazyk bude hnědým třtinovým cukrem mezi syntaktickými cukry :-)

    "pár dalších jazyků", hmm. Ty funkcionální pro mě moc nejsou, to je marné. v těch procedurálních/imperativních existují cesty, kterými se moc nechodí. Zbývá snad Go a Rust.
    DANIELSOFT
    DANIELSOFT --- ---
    ad "vyšší jazyk, který se překládá do C": narazil jsem na jazyk Vala https://wiki.gnome.org/Projects/Vala/Tutorial - ale zas tak moc jsem ho nezkoumal: v linuxovém světě se sem tam používá na nějaké GUI aplikace
    REDGUY
    REDGUY --- ---
    XCHAOS: něco jiného by potřeba být mohlo 8))

    tyhle debaty jsou ztráta času. - ano, mas pravdu. Pokud argumentace skonci u toho "nejake jine pouziti urcite existuje, ktere teda nevim, ale urcite existuje a sice je to bastl, ale urcite by se to hodilo", tak to je ztrata casu 8)

    Hele, nauc se par dalsich jazyku. Go, Swift, ObjC, Rust, zkusi i vyrazne odlisny jako Lisp/Clojure, Scala, Haskell... neco si o nich poradne precti, zkus si v nich neco napsat, at mas predstavu, jak to delal chytry lidi. A jestli si i pak budes myslet, ze to zvladnes lip, s chuti do toho...
    JANFROG
    JANFROG --- ---
    XCHAOS: 3) vymyslet něco ještě příjemnějšího, než Python, dynamicky typovaného a úplně beze stop C (a např. by se z toho generoval přeložitelný C zdroják). (po tomhle by možná i poptávka byla)

    S timhle mam bohate zkusenosti (10+ let kazdy pracovni den :-) Moje rada zni - nedelej to. Cokoliv prekladat do C a to pak prekladat dal to zpusobi jen bolesti hlavy, sedive vlasy a kruhy pod ocima.

    Napsat korektni C kod jehoz chovani je alespon definovane je velmi obtizne (a ja si troufam tvrdit, ze nemozne :-). V pripade generovaneho C kodu je to jeste horsi, protoze ten kod nikdo nikdy nebude cist
    a tudiz se na problem neprijde. Debugovat problemy v tom je peklo na koleckach.

    Alternativa muze byt pouzit LLVM / libjit / Lightning nebo tak neco, neb to ma definovanejsi semantiku. Ale neni to bez problemu (takova LLVM instrukce "select" se na x86_64 prelozi na "cmov" ktery ma nektere nepekne sideeffecty vedouci pak (nekdy :-) segfaultu...ladit tohle take neni hezka zalezitost.

    Tam kde ted pracuji jsme se to rozhodli resit radikalne - zadne C, zadne LLVM, nic. Proste rovnou generujeme COFF/PE (pripadne ELF) z naseho jazyka vlasnima silama. Je to zabava, ale dost prace :-)
    XCHAOS
    XCHAOS --- ---
    REDGUY: no ano, zrovna .sort() není potřeba, ale něco jiného by potřeba být mohlo... literály jsou mocný nástroj, samozřejmě to není čistý, ale jinak ztrávíš mládí na tom, že děláš vše konfigurovatelné přes externí konfiguráky apod. .. občas je dobrý nejdřív program napsat nějakou "quick and dirty" metodou a pak k němu teprve bastlit interface

    tyhle debaty jsou ztráta času. jsem prostě líný dodělat tu jednu, dvě zásadní věci do svého makrojazyka a pak s ním vyrazit do boje proti trollům...
    XCHAOS
    XCHAOS --- ---
    DANIELSOFT: vím, že existuje :-) už nějaký čas i tuším proč :-)
    DANIELSOFT
    DANIELSOFT --- ---
    XCHAOS: ad 2) - co ObjectiveC ?
    Kliknutím sem můžete změnit nastavení reklam