Programátorův pohled na svět

Unknown

Re:mysleni pana Programatora
« Odpověď #45 kdy: 05. 01. 2016, 16:56:47 »
A bylo to vtipne v tom, ze jsme se s uzivatelem neshodli na terminu "cisty"

Protoze pojmy jako "cisty" ci "prasarna" jsou (v danem kontextu) vyrazne emocionalne nabite, a do znacne miry iracionalni. Vyjadruji prevazne osobni preferenci mluvciho a temer nic nevypovidaji o objektivni realite.


podlesh

Re:mysleni pana Programatora
« Odpověď #46 kdy: 05. 01. 2016, 19:23:41 »
A bylo to vtipne v tom, ze jsme se s uzivatelem neshodli na terminu "cisty"

Protoze pojmy jako "cisty" ci "prasarna" jsou (v danem kontextu) vyrazne emocionalne nabite, a do znacne miry iracionalni. Vyjadruji prevazne osobni preferenci mluvciho a temer nic nevypovidaji o objektivni realite.
Existuje kontext kde se nejedná o emociálně nabyté pojmy? Možná ve vepříně...

Ivan Nový

Re:mysleni pana Programatora
« Odpověď #47 kdy: 05. 01. 2016, 21:45:35 »
Na pozadí existují programovací paradigmata. Třeba programátor v Javě se snadno naučí (OOP část) C++ či Python, protože tyhle jazyky mají stejné paradigma, ale takový Haskell (či šablony v C++) se bude učit poměrně dlouho, pokud se vůbec dokáže oprostit od jím zažitého paradigmatu.

Jak kdo, starší třeba začínali s rekurzí v Pascalu, pak rekurze byla out, nyní zase jde do módy. Ale třeba za neúspěchem dříve slibné technologie XSLT je jednoznačně funkcionální paradigma.

Ivan Nový

Re:Programátorův pohled na svět
« Odpověď #48 kdy: 05. 01. 2016, 21:49:08 »
Odpovím jednoduše, programátor analyzuje svět bez ohledu na své preference, vidí ho takový jaký je, je schopen uvažovat i o aspektech reality, která jemu nevyhovuje. Většina lidí považuje za nesmysl vše, co jim nevyhovuje, nejsou schopni se z této ulity dostat. Programátor si při své práci, tento luxus nemůže dovolit, musí se na svět dívat s nadhledem.

Kit

Re:mysleni pana Programatora
« Odpověď #49 kdy: 05. 01. 2016, 22:11:45 »
Ale třeba za neúspěchem dříve slibné technologie XSLT je jednoznačně funkcionální paradigma.

Což mě velice mrzí, protože práce s XSLT mě baví pro svoji čistotu. Díky návykům z XSLT jsem přestal používat "else" i v ostatních jazycích a mým programům to vyloženě prospělo.


karel

Re:Programátorův pohled na svět
« Odpověď #50 kdy: 05. 01. 2016, 22:17:53 »
Ten výtah je zrovna pěkný příklad programátorského myšlení. Hned se tu začaly řešit proměnné a další serepetičky, přitom stačí pár relátek a funguje to úplně stejně ;D

Naopak Airbus není dobrý příklad, ale nikoliv vinou programátora. Tři příklady:
  • Pilot chtěl při nízké rychlosti začít stoupat, dal plný tah a přitáhl řízení k sobě, ale počítač usoudil že pro stoupání je potřeba nejdřív nabrat rychlost, a aby toho dosáhl co nedřív, sklopil čumák dolů, kde byl kopec a les.
  • Pilot chtěl zrychlit klesání aby nepřeletěl letiště, ale potlačil řízení příliš rychle, počítač to vyhodnotil jako stav nouze a nastavil dvounásobnou výchylku výškovky. Pilotovi o tom nedal nijak vědět a ten ve tmě neviděl že je nad kopcem.
  • Pilot chtěl provést manévr, už si přesně nepamatuji jaký, ale počítači se zdál nebezpečný a neudělal vůbec nic. Letadlo spadlo.
Výsledek byly tři rozbité Airbusy a tři hromady mrtvol. Přitom ve všech případech jednal počítač (program!) správně, dokonce podle nejlepších úmyslů, přesto způsobil havárii. Kdyby ta letadla nebyla řízená počítačem, nedošlo by k tomu.

ano mate pravdu, nedoslo by k tomu, protoze bez pocitace by to letadlo jen stalo v hangaru

Re:mysleni pana Programatora
« Odpověď #51 kdy: 05. 01. 2016, 22:37:33 »
filozof a programator jsou docela protihlehle pristupy,
Nejsou. Vyšší levely programování se např. skrze logiku a vytváření modelů parádně potkávají nejenom s moderní analytickou filosofií, ale třeba i s některými partiemi dávné filosofie. Dobře zhuštěné seznámení s Aristotelem by pro žádného programátora nebylo na škodu. Každý programátor pořád dokola řeší problémy typu obecné vs. konkrétní, dokonce i substance vs. akcident, akorátže neví, že se tomu tak říká a že se jeho problémy (v trochu jiné podobě samozřejmě) řešily už před dvěma tisíci lety. Jestliže mu někdo na střední nezáživně a nevýstižně vykládal o sporu o univerzálie, zbytečně je odsouzen část z omylů opakovat, jako třeba když si myslí, že nutně musí existovat něco jako třída (~ substance), jinak se svět propadne v chaos :)

Spíš než v tom, o čem píšeš, je problém s lidma, kteří o filosofii nic neví a představují si, že filosofie = bezbřehé nekontrolovatelné a neověřitelné plkání o πčovinách. To není pravda, aspoň ne obecně.

Speciální případ přesahu mezi programováním, filosofií a (matematickou) logikou jsou pak věci jako teorie typů, kategorií, sémantika apod. kde je to úplně zřejmé.

kupodivu dost programatoru ma tandence podivne filozofovat, nastesti vetsina filozofu neprogramuje
...s důrazem na slovo "podivně". Protože je málo lidí, kteří by opravdu rozuměli obojímu a nepouštěli se tímpádem do pouťových taškařic. U nás je tou výjimkou např. prof. Jan Sokol.

Re:mysleni pana Programatora
« Odpověď #52 kdy: 05. 01. 2016, 22:49:18 »
Ale třeba za neúspěchem dříve slibné technologie XSLT je jednoznačně funkcionální paradigma.
Funkcionální paradigma bez funkcí, to je majstrštyk! ;)

Ve skutečnosti to, co dělá XSLT obtížně použitelným pro "normální" lidi, je to, že to vlastně není nic jiného než jeden gigantický pattern matching - celou vstupní datovou strukturu se snažím namatchovat na jinou strukturu, která definuje výstup. A to není způsob, jakým by se v normálním FP programovalo. Proto taky FP jako takové nemůže být tou příčinou neoblíbenosti (pokud tam teda o nějakém FP vůbec má smysl mluvit).

Radovan.

Re:Programátorův pohled na svět
« Odpověď #53 kdy: 05. 01. 2016, 23:06:41 »
Air France 296,
To je přesně on, akorát že závěry oficiálního vyšetřování byly poněkud neúplné. Zkušenosti dalších pilotů později potvrdily to co pilot říkal od začátku, že Airbus místo stoupání začal klesat. Po přidání plynu a přitažení řízení totiž počítač snížil úhel náběhu, aby nabral rychlost co nejdříve. To je sice to nejlepší co mohl udělat a udělala by to i většina pilotů v jiné situaci, jenže to způsobí počáteční ztrátu výšky, což je poněkud nevhodné když se proti oknu žene kopec.

Nejspíš Air Inter 148.
Tohle je jiný případ, tady byl problém v nevhodném zobrazení hodnot na displeji. To co myslím já ale proběho podobně, s tím že počítač na rychlý pohyb řízení reagoval jako na dvounásobnou výchylku. Asi jako by auto při rychlém cuknutí volantem natočilo kola do plného rejdu, i když řidič cuknul jenom o kousek. A při nulové viditelnosti pilot nestihl zjistit že se to letadlo sklonilo víc než chtěl.

Možná TAM 3054?
Fakt netuším, počítač se prostě vykašlal na to co chtěl pilot a letěl dál podle svého, protože on tomu přece rozumí lépe než omylný člověk. Ale nic bližšího už si nevzpomenu.

ano mate pravdu, nedoslo by k tomu, protoze bez pocitace by to letadlo jen stalo v hangaru
Ten Airbus možná, ale velká dopravní letadla před ním létala padesát let bez počítačů a šlo to. Dokonce nadzvukově. A desítky let se počítače nepoužívaly ani při konstrukci letadel, neuvěřitelné, žejo ;D

lojza: Automatické přistání řízené počítačem zvládal Concorde v roce 1969, ten počítač byl analogový.

Ivan Nový

Re:mysleni pana Programatora
« Odpověď #54 kdy: 05. 01. 2016, 23:16:21 »
Ale třeba za neúspěchem dříve slibné technologie XSLT je jednoznačně funkcionální paradigma.
Funkcionální paradigma bez funkcí, to je majstrštyk! ;)

Ve skutečnosti to, co dělá XSLT obtížně použitelným pro "normální" lidi, je to, že to vlastně není nic jiného než jeden gigantický pattern matching - celou vstupní datovou strukturu se snažím namatchovat na jinou strukturu, která definuje výstup. A to není způsob, jakým by se v normálním FP programovalo. Proto taky FP jako takové nemůže být tou příčinou neoblíbenosti (pokud tam teda o nějakém FP vůbec má smysl mluvit).

Funkce v XSLT je tag xsl:template.

Re:mysleni pana Programatora
« Odpověď #55 kdy: 05. 01. 2016, 23:22:37 »
Funkce v XSLT je tag xsl:template.
Což není 1st class citizen.

Kit

Re:Programátorův pohled na svět
« Odpověď #56 kdy: 05. 01. 2016, 23:23:13 »
lojza: Automatické přistání řízené počítačem zvládal Concorde v roce 1969, ten počítač byl analogový.

Analogové počítače jsou super. Jednoduché, funkční a nemusí se řešit nějaký kmitočet procesoru, protože vše běží v reálném čase.

Ivan Nový

Re:mysleni pana Programatora
« Odpověď #57 kdy: 05. 01. 2016, 23:50:48 »
Funkce v XSLT je tag xsl:template.
Což není 1st class citizen.
Z hlediska možných výrazových prostředků k zachycení algoritmu je XSLT téměř ekvivalentní s  FP

Re:mysleni pana Programatora
« Odpověď #58 kdy: 06. 01. 2016, 00:01:12 »
Z hlediska možných výrazových prostředků k zachycení algoritmu je XSLT téměř ekvivalentní s  FP
To je klidně možný, ale to už jsme se dost posunuli od tvrzení "XSLT neuspělo a může za to jeho FP povaha", žejo :) Já mám za to, že XSLT neuspělo, protože prostě prase aby se v něm vyznalo.

Nejde o mentální cvičení na téma (ne)ekvivalentnosti jazyků*, ale o to, že když si napíšu výpočet faktoriálu v Haskellu nebo Elixiru, je to  krásný, čistý, čitelný a srozumitelný kus kódu, zatímco kdybych si to nedejmatkopřírodo napsal v XSLT, bude to vypadat jako kočičí blití po hodně špatných granulích.

* jak ji definovat, když všechny v úvahu připadající jsou turing complete? V XSLT si zjevně můžu klidně napsat překladač Haskellu, čili ano, "je to ekvivalentní", ale kdo by to propánajána dělal?!

Ivan Nový

Re:mysleni pana Programatora
« Odpověď #59 kdy: 06. 01. 2016, 00:38:21 »
Z hlediska možných výrazových prostředků k zachycení algoritmu je XSLT téměř ekvivalentní s  FP
To je klidně možný, ale to už jsme se dost posunuli od tvrzení "XSLT neuspělo a může za to jeho FP povaha", žejo :) Já mám za to, že XSLT neuspělo, protože prostě prase aby se v něm vyznalo.

Nejde o mentální cvičení na téma (ne)ekvivalentnosti jazyků*, ale o to, že když si napíšu výpočet faktoriálu v Haskellu nebo Elixiru, je to  krásný, čistý, čitelný a srozumitelný kus kódu, zatímco kdybych si to nedejmatkopřírodo napsal v XSLT, bude to vypadat jako kočičí blití po hodně špatných granulích.

* jak ji definovat, když všechny v úvahu připadající jsou turing complete? V XSLT si zjevně můžu klidně napsat překladač Haskellu, čili ano, "je to ekvivalentní", ale kdo by to propánajána dělal?!

Nikoliv, i v Haskelu je to stejné jako v tom xslt, krásné jsou jen školní příklady, praxe je odpudivá. Podívejte se jen, co se dělalo a dělá v javascriptu, aby se potlačila jeho funkcionální povaha, jaké ohavné konstrukce a ornamenty.

ano fp má význam tam kde platí Gatesova teze, běží-li váš program pomalu, kupte si rychlejší počítač, tedy v multiprocesorovém prostředí, kdy efektivitu výpočtu zajišťuje výhradně železo a na úrovni jazyka je preferována čitelnost, nad efektivitou. Jinak ale deklarativní styl programování vede na horší udržovatelnost programu, protože daní za hutnost výrazových prostředků je používání mnoha jen málo modifikovaných frází, takže když něco musíte změnit, je to nutné měnit na mnoha místech a které je obtížné i vyhledat. Extrémním příkladem neefektivity tohoto druhu jsou css styly.

Lambda výrazy jsou pak novodobé goto, snadno se použijí a proto se nevytvoří jedna funkce, která se použije vícekrát, ale lambda výraz, pro každé použití trochu jiný.