Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - Jožka Niemand

Stran: [1] 2 3
1
Vývoj / Re:Prečo nie je Lisp populárnejší?
« kdy: 06. 11. 2025, 21:51:03 »
Znovu opakuji, že významnou část své profesionální i hobby práce jsem dělal za použití pre- nebo postfixové notace (LISP, Forth, Assembler), ale je rozdíl počítat na papíře a jen výsledek zakódovat do počítače.

Na HPčkách se postfix používá běžně a dělalo s tím několik generací účetních atd., bylo to dost populární (a navíc i ekonomičtější, míň keystroků)
Tak ony i mnohé prefixové operace byly i na klasických kalkulačkách realizovány jako postfixové, což by na první pohled mohlo vypadat jako matoucí, ale nikomu z nás to nikterak nevadilo. Jenže to je něco jiného. Vezměte si nějakou sbírku úloh z matematiky, klidně pro střední školy, vyberte si nějaký příklad typu "zjednodušte následující výrazy", přepište si to do prefixové notace a pak to upravte, aniž byste si pomáhal infixem. Třeba by to pro hlavu nějakého autíka skutečně bylo přirozenější a pohodlnější. Ale pochybuji, že i pro normálního člověka. O úkolech typu "transformujte Laplaceův operátor do sférických souřadnic" ani nemluvě.

2
Vývoj / Re:Prečo nie je Lisp populárnejší?
« kdy: 06. 11. 2025, 19:39:20 »
Volání funkcí je v prefixové notaci. V matematice používáme i postfixovou notaci a nepřipadá nám to divné. Lisp udělal jen to, že vše sjednotil do prefixové notace, aby to bylo jednodušší.
Jednodušší to je, ale pro počítač, nikoli pro člověka. Nemám problém s převody mezi jednotlivými formami zápisu, stejně jako nemám problém převádět mezi sebou arabská a římská čísla. Ale provádět aritmetické operace v římských číslech bych nedával.

A my si v lispu proste pouzijeme tu samou jako vzdycky pouzivame pro 2 nebo pro 3 "operandy" (divny tomu rikat operandy kdyz jsou to vlastne argumenty funkce)
Tak třeba pro mě to žádná extra-podivná věc nebyla, když jsem se učil LISP, protože po BASICu byl mým druhým jazykem Assembler, který je ve většině případů taky prefixový, a zhruba současně s Pascalem jsem se učil Forth - takže postfix. Ale znova - jedna věc je pouhý zápis, druhá věc je aktivní používání a myšlení. Že dokážu i docela složitý výpočet napsat v Assembleru ještě neznamená, že bych chtěl upravovat výrazy v intencích ADD, MUL, DIV...

Beru na vědomí.

A teď si vemte, že jsem se v té rovnici spletl. Protože jsem četl:
 ^ * + 5 2 - 6 3 2
jako (5 + 2) * (6 - (3 - 2)) ^ 2
A když jsem si tu chybu uvědomil, tak jsem zaujal postoj, že autor té prefixové rovnice to napsal blbě, protože samozřejmě očekávám, že operátor sežere všechny argumenty až po první operátor. Přišlo mi to jasné a pohodlné.

Co z toho vyvodíme?.
Že buď budeme důsledně používat závorky jako v LISPu, nebo operátory s konstantním počtem operandů jako ve Forthu.  ;)

3
Vývoj / Re:Prečo nie je Lisp populárnejší?
« kdy: 06. 11. 2025, 16:51:49 »
Clovek nema vubec mentalni kapacitu cist prefixove vyrazy. Uz jen takovyhle jednoduchy vyraz da praci. To, ze je to vyhodne pro pocitace je jina vec (lispovsky S-vyrazy).

Priklad:
 ^ * + 5 2 - 6 3 2

coz je

((5+2)*(6-3))^2

Dobrý postřeh. Samozřejmě jsem to hned zkusil. Překvapivě se mi to čte dobře, ani ty závorky nepotřebuju. Nejvíc mě trklo, že to vlastně krásně řeší váhání nad prioritami. A vzhledem k tomu, že se nepovažuji za úplně nejvíc geniálního, tak nevím, co si o tom teď mám myslet.
To vám fakt nevěřím. :) Pro mě by bylo zajímavé sledovat zastánce praktického používání prefixové notace, jak to prakticky používá, tj. jak v tom počítá, upravuje výrazy, řeší rovnice...
Znovu opakuji, že významnou část své profesionální i hobby práce jsem dělal za použití pre- nebo postfixové notace (LISP, Forth, Assembler), ale je rozdíl počítat na papíře a jen výsledek zakódovat do počítače.

4
Vývoj / Re:Prečo nie je Lisp populárnejší?
« kdy: 06. 11. 2025, 10:03:09 »
Mně to připadá podobné jako u zastánců zrušení diakritiky - "protože počítače". Počítač mi má práci zjednodušovat, a ne komplikovat. To už můžeme rovnou psát ve strojáku.

Takže pro účely úprav výrazu byste si ho vlastně stejně nejdřív přepsal do nějaké čitelnější, přehlednější formy... Mimochodem, já zrovna patřím k těm lidem, kteří se s LISPem čas od času potkali. A po C/C++ a různých assemblerech byl můj třetí nejpoužívanější jazyk Forth.

Zaměřovat se ve vzdělávacím procesu primárně na blbé není dobrý nápad. Nebo jim přizpůsobovat matematiku, jazyk... I přiblížení počítačů blbým byl podle mě především marketingový tah, ale dopad na civilizaci to má spíše zničující.

Přizpůsobení blbým činí jednoduché věci triviálními a složitější věci nemožnými.

5
Vývoj / Re:Prečo nie je Lisp populárnejší?
« kdy: 05. 11. 2025, 08:50:56 »
Ano, žádná precedence operátorů, yay! Když by se učila prefixová notace ve škole, tak zabedněným učitelům matiky a fyziky praskne žilka a normálně by se mohly děti učit něco užitečnějšího v tom samém čase. Normálně by lidi uměli sumu a ani o tom nevěděli! Takže vlastně vidíme, že se takovou zakomplektovanou prefixovou notaci v nějaký moment stejně učíme, jen už jsme se v tu chvíli peklili s tím neergonomickým zápisem mezi čísly.
"Uměli sumu"? To znamená co? Jako že by najednou zázrakem uměli třeba z fleku posunovat indexy, zjednodušovat vnořené sumy a tak?
"Neergonomický" (jestli je vůbec možné takový výraz v tomto kontextu použít), já bych řekl spíše těžkopádný, by byl právě ten prefixový zápis. Co je pohodlné pro počítač, bývá pro člověka dost nepohodlné - a naopak. Chtěl bych vás vidět, jak upravujete nějaký, i vcelku jednoduchý, prefixový výraz. Jak hned uvidíte výrazy, co se dají vytknout, zlomky, které se dají pokrátit...

6
Vývoj / Re:Prečo nie je Lisp populárnejší?
« kdy: 02. 11. 2025, 20:07:47 »
... trpěl tím, ... že je to tradičně interpretovaný jazyk, takže jeho praktická použitelnost byla omezená.

To platí jen částečně, protože program je po spuštění průběžně kompilován a následně spuštěn. Tedy rekurze jsou kompilovány pouze jednou. Samozřejmě u maker je to trochu jiné. Lisp je tedy částečně kompilován a částečně interpretován.

To je otázka konkrétní implementace. Spousta z nich jsou čisté interprety - pro mnohá nasazení je to plně dostačující.

7
Vývoj / Re:Prečo nie je Lisp populárnejší?
« kdy: 02. 11. 2025, 18:32:19 »
Většina lidí má blíže k procedurálně-imperativnímu myšlení. LISP sice je multiparadigmatický, ale jeho funkcionální jádro se nezapře a tímto způsobem navržené algoritmy v něm co do elegance vynikají.
Z historického hlediska pak trpěl tím, že byl jednak rozdroben na spoustu dialektů (podobně jako FORTRAN či BASIC), jednak tím, že je to tradičně interpretovaný jazyk, takže jeho praktická použitelnost byla omezená. Neexistenci free-verze bych jako problém neviděl - jednak to není pravda, jednak napsat si vlastní interpret LISPu k osahání konceptu je v C záležitost doslova na dvě hodiny, prakticky poměrně dobře použitelný interpret pak během pár odpolední.

8
Studium a uplatnění / Re:Je programátorů moc, nebo málo?
« kdy: 01. 11. 2025, 10:22:59 »
já jsem vám chtěl jenom říct že jsem nezaměstnaný seniorní progamátor a nikdo mě nechce protože už mě bylo 50 :(

Co je to za blbost?

Mohu potvrdit. Dřív mi na LinkedIn chodilo spoustu nabídek. Dnes nic. Buď jsem dosáhl věku většího než požadovaný, nebo není zájem.

To už před 13 lety, když mě, jakožto táhnoucímu na 40, zaujala jedna pozice (System Developer) u Oracle v Praze, jsem telefonický "předpohovor" uzavíral "čili vy byste optimálně chtěli 23letého absolventa MIT se znalostmi a zkušenostmi 53letého seniora úzce specializovaného v asi pěti technologiích a se mzdovými nároky 15letého brigádníka na stavbě..." Mého potenciálního šéfa (pana L. R.) na druhé straně to zjevně pobavilo a ujišťoval mě, že by si mě snad nakonec dokázal prosadit, ale že zaručit to nemůže a ani časový rámec mi dát nemůže. Rozloučili jsme se v dobrém a vzájemně si popřáli mnoho štěstí.

9
Studium a uplatnění / Re:je programatoru moc, nebo malo.
« kdy: 30. 10. 2025, 17:01:01 »
...

Naprosto přesně popsáno! Bohužel... A také jsem skončil v situaci, že - slovy Miroslava Horníčka - "beru radši míň za to, co radši."

10
Vývoj / Re:Přechod z Javy na Rust. Ano či ne?
« kdy: 01. 10. 2025, 17:24:36 »
Objektové jazyky jsou asi nejflexibilnější – byť s jinou syntaxí, v nich můžeš realizovat to, co jinde.
Nejflexibilnější jsou jazyky s otevřenou minimalistickou syntaxí, v nichž si mohu dotvořit, co potřebuji - jako LISP, FORTH, TCL... Ani jeden z nich nebyl vytvořen jako objektový, v žádném z nich ale není problém objektový systém dotvořit, když bez něj někdo nemůže žít (což se i stalo; obzvláště CLOS je podle mě nejméně o level lepší objektový systém, než jaký nabízí C++, C# nebo Java). Ale jazyky tohoto typu IMHO objektové nadstavby nepotřebují, protože samy o sobě umožňují vytváření tak silných výrazových prostředků, jaké si jen autor programu přeje a potřebuje k řešení svého problému, takže proč se omezovat na objekty.

11
Vývoj / Re:Přechod z Javy na Rust. Ano či ne?
« kdy: 30. 09. 2025, 22:27:26 »
Nevím, no. Mám už za ty desítky let něco odprogramováno a slovy doktora Vlacha, "zákony života nám ukládají vyzkoušet všechny možné varianty, abychom se nakonec vrátili k té první." V mém případě - procedurálně-imperativnímu strukturovanému paradigmatu. Opravdu mám pocit, že všelijaké ty snahy o čisté OOP, FP a já nevím, co ještě, jsou takové snahy najít svatý grál, nebo to království, kde létají pečení holubi rovnou do úst. Jenže nakonec člověk zjistí, že "co já se toho království nahledal... Nic nenajdou. Všude se musí... makat." A čím více jsem toho viděl a vyzkoušel, tím větší mám pocit, že ta "klasika" je nakonec to nejlepší. Takže když čtu podobné náboženské texty jako ten odkazovaný, už se musím jen usmívat.
No já dělám primárně v C++ a C#, ale Haskell hodně ovlivnil moje uvažování. Jo, když hledáte stříbrnou kulku, dostanete akorát žaludeční vředy. Ale jako inspirace, že se dá problém pojmout jinak a líp je to supr.

Řekl bych že zrovna nové C++ je funkcionálním programováním hodně ovlivněné. I sprosté slovo na M by se našlo :)
Jako inspirace a zkušenost rozhodně ano, proto by měl, podle mě, profík poznat vícero různých jazyků a paradigmat, aby si aspoň trochu osahal, kde jsou jejich silné stránky a kde ty slabší, co se dá použít i jinde a tak. Ale stříbrnou kulkou není ani jeden (pro rustafariány - ne, ani Rust to není). "Nové" C++ je pro mě už vyloženě dort Pejska a Kočičky. Jinak s C++ byla spojena většina mé profesionální kariéry, ale poslední roky se mu už programově vyhýbám.

Jen tak pro zajímavost - objektové paradigma je starší, než si mnozí lidé myslí. První nebyl ani S. od pana K., ba ani S. pana D., ale patrně práce Douglase T. Rosse na přelomu 50. a 60. let.

12
Vývoj / Re:Přechod z Javy na Rust. Ano či ne?
« kdy: 30. 09. 2025, 20:52:26 »
Btw asi velmi dobré porovnání OOP s funkcionálním přístupem (identity, stavy) napsal Hick Hickey https://clojure.org/about/state

Minimálně za přečtení a zamyšlení to stojí. Možná to automaticky vyřeší ten problém s "lejstrem" vs "lejstrem se štemplem" - imho je to jen otázka správného pojmenování jednotlivých abstrakcí.
Takže když čtu podobné náboženské texty jako ten odkazovaný, už se musím jen usmívat.

Naprosto v pořádku, ať si každý programuje, jak uzná za vhodné, ostatně kdo já jsem, abych to rozhodoval (tedy kromě toho, jak to budeme dělat v mém týmu). Ale ta linkovaná stránka v žádném případě není náboženský text, ale dobré vysvětlení, jak se s identitami a stavy pracuje v Clojure, což je poměrně prakticky navržený jazyk, ovšem postavený na praktickém FP.
Až na ta hodnotící prohlášení. Praktický jazyk postavený na FP (i když ne tak fundamentálně) je pro mě Common Lisp. Scheme taky ještě zkousnu, ale např. Erlang nebo Haskell už není můj cup of tea. S čistým OOP mám mnohem menší problém (Smalltalk), ale pořád se nemohu zbavit dojmu, že OOP mě nutí věci dělat mnohem kostrbatěji, než je nutné. A jazyk typu Rust - to je čistý BDSM.

13
Vývoj / Re:Přechod z Javy na Rust. Ano či ne?
« kdy: 30. 09. 2025, 19:47:05 »
Btw asi velmi dobré porovnání OOP s funkcionálním přístupem (identity, stavy) napsal Hick Hickey https://clojure.org/about/state

Minimálně za přečtení a zamyšlení to stojí. Možná to automaticky vyřeší ten problém s "lejstrem" vs "lejstrem se štemplem" - imho je to jen otázka správného pojmenování jednotlivých abstrakcí.
Nevím, no. Mám už za ty desítky let něco odprogramováno a slovy doktora Vlacha, "zákony života nám ukládají vyzkoušet všechny možné varianty, abychom se nakonec vrátili k té první." V mém případě - procedurálně-imperativnímu strukturovanému paradigmatu. Opravdu mám pocit, že všelijaké ty snahy o čisté OOP, FP a já nevím, co ještě, jsou takové snahy najít svatý grál, nebo to království, kde létají pečení holubi rovnou do úst. Jenže nakonec člověk zjistí, že "co já se toho království nahledal... Nic nenajdou. Všude se musí... makat." A čím více jsem toho viděl a vyzkoušel, tím větší mám pocit, že ta "klasika" je nakonec to nejlepší. Takže když čtu podobné náboženské texty jako ten odkazovaný, už se musím jen usmívat.

14
Vývoj / Re:Přechod z Javy na Rust. Ano či ne?
« kdy: 30. 09. 2025, 10:58:49 »
To je dost rozdíl oproti té serializaci do různých formátů (počet těch formátů je neomezený a předem neznámý).
No a v objektovém návrhu, jak ho chápu já, by naopak spíše objekt toužící po serializaci jiného objektu (exportu do jiného formátu...) poskytl takovému objektu objekt, pomocí kterého si to ten inkriminovaný objekt zařídí sám. Tím netvrdím, že opačný přístup je chybný, spíše bych řekl, že ve skutečnosti jen není objektový, protože narušuje zapouzdření. Ve skutečnosti může být (a také asi bude) jednodušší a efektivnější - znalost nějakých vnitřních detailů objektu může spoustu věcí usnadnit, naopak - blackboxing "za každou cenu" může vést k neřešitelným (nepředvídatelným) situacím při návrhu rozhraní. Ale to se dostáváme k samotné filosofické otázce, zda tedy vůbec OOP.

15
Vývoj / Re:Přechod z Javy na Rust. Ano či ne?
« kdy: 30. 09. 2025, 08:51:57 »
Nicméně v tom příkladu šlo o tu logiku, který objekt je aktivní a který pasivní a kde se nachází implementace. Jde třeba o různé ukládání nebo načítání – ať už do různých souborových formátů nebo třeba do databáze nebo odeslání na po síti. Ve většině případů považuji za špatný návrh to, aby ten datový objekt měl takovou metodu. Většinou patří spíš do jiného objektu, který se o de/serializaci příslušného formátu (PNG, XML atd.) nebo obsluhu příslušného úložiště a správu spojení stará. Je to pružnější návrh, který umožňuje přidávat další formáty a úložiště (i jiným autorům) a nezanáší to rozhraní toho objektu a nezvyšuje to komplexitu jeho implementace (v něm je jen metoda a kód pro vrácení nebo načtení nějaké kanonické implementace třeba RGB bitmapy, zatímco implementace jednotlivých kodeků je jinde).
To ale nejde takto kategoricky, bez kontextu říci. A to je přesně to, o čem jsem mluvil - past zkušenosti "reálného světa", "selský rozum". Jenže ten občas selhává. Tento selský rozum by nám velel, že např. v nějakém GUI je nějaký painter, který zajišťuje zobrazování jednotlivých oken (jako Screen.paint(window)) - a opravdu tak něco takového může být. Ale z praktického hlediska window rozumí nějaké zprávě typu drawOn, kterou nakonec zpětně pošle ten painter tomu oknu, protože ono nejlépe ví, jak se namalovat - tedy nakresli se - což je to "zvěrstvo" typu naskoč si na vidle. Naopak, lpění na modelu z reálného světa by představovalo komplikaci.

Stran: [1] 2 3