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 - BoneFlute

Stran: 1 ... 40 41 [42] 43 44 ... 133
616
Vývoj / Re:Regulární výraz - ne a ne opravit (C#)
« kdy: 01. 04. 2020, 01:02:57 »
Jednoduchý regex je kanón na vrabce a odkážeš ho na zdroják, který má cca 500 řádků kódu?  Některým lidem fakt nerozumím.

Ten jednoduchý regex testuje metódou pokus / omyl a stále si nie je istý čo mu naozaj odtiaľ vylezie. No najvačší fail je že sa to potom ťažko ladí a rozširuje. Mne to príde dosť nekoncepčné.

Tuná je moje riešenie:

https://pastebin.com/HtDt3Wgf

Vo vnútri stringového literálu môže byť aj čiarka, podporuje to escapovanie takže si doň môže vložiť úvodzovku (\") alebo ak chce vložiť lomítko tak takto \\, taktiež podporuje viac ako dve hodnoty na jednom riadku a vie tým získať aj hodnoty z viacerých riadkov. A celé sa to dá jednoducho rozširovať o novú syntax.

Teda jako, musím uznat, že je to inspirativní. Budu z toho čerpat. Na druhou stranu psát na dotyčného zadání tokenizer mi přijde poněkud přehnané, nemyslíš? Ale věřím, že tě to bavilo :-)

617
Vývoj / Re:Zkušenosti s TypeScriptem
« kdy: 31. 03. 2020, 02:11:25 »
Zdravím.
Prosím vás, máte někdo zkušenosti s Typescriptem? Jakou?

Existuje https://github.com/TypeScriptToLua/TypeScriptToLua

On TypeScript jako jazyk je celkem dobrej. Jen ten Javascript mi nic. Ale když už transpiler, tak proč zůstávat u jednoho cílového jazyka, že jo. Moc se mi to líbí.
Akorát je těch jazyků nějak moc, TypeScript, Dart atd., všechno na jedno brdo, ale s drobnými odlišnostmi, aby se to náhodou nepletlo.

Nevím jak Dart.

Ale ten TS je právě fajn v tom, že ty jeho typy jsou přeci jenom lepší jak to co se normálně nosí. Jako kdyby v C# udělali takovej ten javovskej mainstream, ale v tom TypeScriptu se trochu rozšoupli (ne moc, ale přeci jenom).
Jako třeba adhoc union type se zase tak nevidí. I ten způsob, jak to celé uchopily, pomocí těch definičních souborů.

Že by to bylo všechno na jedno brdo, to bych taky tak úplně neřekl. Spíše bych to viděl jako pokusy protlačit teoretické aspekty do praxe. A že se kůli každé blbosti vymejšlí novej jazyk, no, to je pravda - c'est la vie.

Jako ideální jazyk to podle mne ještě není. Furt tam smrdí new, středníky a podobné zbytečnosti. Ale možnost, jak používat lepší typy v praxy je to super. Když nemáš odvahu na Elm.

618
Vývoj / Re:Zkušenosti s TypeScriptem
« kdy: 30. 03. 2020, 23:07:06 »
Zdravím.
Prosím vás, máte někdo zkušenosti s Typescriptem? Jakou?

Existuje https://github.com/TypeScriptToLua/TypeScriptToLua

On TypeScript jako jazyk je celkem dobrej. Jen ten Javascript mi nic. Ale když už transpiler, tak proč zůstávat u jednoho cílového jazyka, že jo. Moc se mi to líbí.

619
Vývoj / Re:Zkušenosti s TypeScriptem
« kdy: 29. 03. 2020, 21:17:25 »
Pochopil jsem spoustu věcí (Prolog, Scheme, Smalltalk, OOP, FP). A když jsem to nepochopil, tak jsem alespoň cítil, že jsem si šáhl na hranice svých schopností (Haskell, závislostní typy).
Co přesně byl problém u závislostních typů?
Zatím se stále trochu ztrácím v té syntaxi a logice toho všeho. Hrubý obrys dejme tomu chápu, ale prostě v tom plavu. Takže ani nedokážu říct co přesně nedávám. Možná by mi pomohlo více praxe. Jaký jazyk by si doporučil?
Asi Agdu. Něco už má i Haskell, ale to neznám podrobně, takže nemůžu doporučit (nebo odrazovat). On ten aha moment přijde sám, když se člověk prokouše intuicionistickou logikou. Já si vždy závislostní typ překlopím v hlavě do logického výrazu, ten snáze pochopím a pak přejdu zpátky k typům :)
Díky.
Já zase přijdu :-)

620
Vývoj / Re:Zkušenosti s TypeScriptem
« kdy: 29. 03. 2020, 21:16:26 »
Načo sú dobré tieto debaty? Ako vážne, k čomu to je?
Komentáře některých jsou nutným zlem. Chodíme sem pro komentáře jiných.

621
Vývoj / Re:Zkušenosti s TypeScriptem
« kdy: 29. 03. 2020, 19:42:46 »
Pochopil jsem spoustu věcí (Prolog, Scheme, Smalltalk, OOP, FP). A když jsem to nepochopil, tak jsem alespoň cítil, že jsem si šáhl na hranice svých schopností (Haskell, závislostní typy).
Co přesně byl problém u závislostních typů?
Zatím se stále trochu ztrácím v té syntaxi a logice toho všeho. Hrubý obrys dejme tomu chápu, ale prostě v tom plavu. Takže ani nedokážu říct co přesně nedávám. Možná by mi pomohlo více praxe. Jaký jazyk by si doporučil?

622
Vývoj / Re:Zkušenosti s TypeScriptem
« kdy: 29. 03. 2020, 14:52:41 »
No zrovna ten Smalltalk je dobrá ukázka toho, jak dynamické programování může být šikovné. Celé IDE je napsané samo v sobě, a za běhu modifikovatelné. Můžeš debugovat debugger a za běhu ho upravovat. Zeptáš se třídy na všechny její instance a pošleš jim zprávu (zavoláš metodu). Nic se neprogramuje do souborů, které se překládají a spustí, všechno neustále běží, žije, za běhu se přidávají a ubírají třídy, metody, .. Každá věc se dá inspectnout a pracovat s ní, měnit. Prožít si programování v takovém systému je skutečně mind bending zkušenost.
Když nad tím zauvažuješ, myslíš si, že by byl nějaký principielní problém do toho statické typování zavést? Jak by museli být omezené?

Mě se třeba v tomto líbí SQL (přirovnání trochu kulhá, vím). Že ti tam ty constrainty povolí vložit až poté, co ověří jejich funkčnost. Tak nějak si představuju statickému typování u živého systému.

Když vidím Python, Javascript atp., tak mi přijde, že si vzali to nejblbější z dynamického programování - absenci statických typů, což teď horko těžko dohánějí, a ze staticky typovaného programování - absenci pořádného živého explorativního prostředí, což už asi nedoženou nikdy, protože si ani nedovedou představit, co by se dalo dělat.
Typování, které Python a Javascript/TypeScript má má výhodu v tom, že to jde vypnout. Což se, uznejme, při prototypování docela hodí.  Přeci jen, chceš si tady něco vyzkoušet, a ztrácet fokus tím, že budeš opravovat vzdáleně související věci, které tě teď ale nezajímají...

623
Vývoj / Re:Zkušenosti s TypeScriptem
« kdy: 29. 03. 2020, 14:45:40 »
To prasení IMHO znamená, že jde spustit i kód, který na nějaké konkrétní neošetřené větvy spadne. Víc v tom podle všeho není.
Což platí i u staticky typovaných jazyků :-).
Neplatí  ;) U statických jazyků něco jako neošetřená větev (ideově samozřejmě) neexistuje.

Ideově neošetřená větev? Co je to za hovadinu?

Kód: [Vybrat]
f :: Maybe a -> a
f (Just x) = x
Ano. Přesně toto jsem měl na mysli.

Navyše proč to musíme definovat explicitne? Není z dát jasné, čo premenná obsahuje?
Nemusíš. Type inference.

Ta nebývá 100%.
Ano, nebývá. Mě to neva, někomu ano. Stačí takto?


To prasení IMHO znamená, že jde spustit i kód, který na nějaké konkrétní neošetřené větvy spadne. Víc v tom podle všeho není.
Což platí i u staticky typovaných jazyků :-).
Neplatí  ;) U statických jazyků něco jako neošetřená větev (ideově samozřejmě) neexistuje.

To máš zásadně chybné ideje. Tohle je běžný omyl statických myslících programátorů, že když jim program projde statickou kontrolou, že ho mají ošetřený.
Nemám. Nic takového si nemyslím, nic takové jsem nenapsal.

Statické typy mají jediný smysl, umožňují výkonovou optimalizaci. Co se týče chybovosti, nejsou zárukou ničeho a to ani u ADY. Naopak typový systém je sám o sobě zdrojem dalších chyb v programu a to tím větší, čím je tento typový systém komplexnější.
Toto je nesmysl. Neodpovídá to mé každodenní zkušenosti.

624
Vývoj / Re:Zkušenosti s TypeScriptem
« kdy: 29. 03. 2020, 01:40:47 »
Podľa mňa riešenie typov v jazykoch je nezmyselné. Vôbec nevidím dôvod aby typy boli viazané na premennú a nie dáta.
Typy v statických jazycích nejsou vázané na proměnnou (bavíme se o moderních jazycích).


Navyše proč to musíme definovat explicitne? Není z dát jasné, čo premenná obsahuje?
Nemusíš. Type inference.


To prasení IMHO znamená, že jde spustit i kód, který na nějaké konkrétní neošetřené větvy spadne. Víc v tom podle všeho není.
Což platí i u staticky typovaných jazyků :-).
Neplatí  ;) U statických jazyků něco jako neošetřená větev (ideově samozřejmě) neexistuje.

625
Vývoj / Re:Zkušenosti s TypeScriptem
« kdy: 29. 03. 2020, 01:21:33 »
Já ti neříkám, že to umím, to je zcela podružné. Já ti říkám, jak to je, dynamické jazyky jsou o jiném způsobu myšlení. Jestli to pochopíš nebo ne je už na tobě.

Pochopil jsem spoustu věcí (Prolog, Scheme, Smalltalk, OOP, FP). A když jsem to nepochopil, tak jsem alespoň cítil, že jsem si šáhl na hranice svých schopností (Haskell, závislostní typy). U dynamického programování se nic takového nekonalo, protože tam na pochopení nic není. Pointa je v tom, že já ti v tom, že "dynamické jazyky jsou o jiném způsobu myšlení" jednoduše nevěřím. Takhle je to jednoduché. Přeji dobrou noc.

Takže jsme zpátky na začátku, akorát jsme si vyjasnili, že esoterika, tedy pardon, víra, je na tvé straně.

Ne ne ne :-P Když by si řekl, že věříš, že dynamické jazyky jsou lepší, tak bych neřekl ani popel. Na místo toho jsi se pustil do posuzování toho, co jsem či nejsem schopen pochopit. Víš, tomu, co tu předvádíš, se říká svatá kráva.

Já dál věřím, že přijde někdo, kdo bude zastáncem dynamických jazyků, a ukáže mi, že to není jen ezoterika, ale že je to skutečně o jiném způsobu myšlení. A já třeba dospěju k závěru, že mi to stejně nic neříká, ale alespoň si budu moct odškrtnout jeden mýtus.

626
Vývoj / Re:Zkušenosti s TypeScriptem
« kdy: 29. 03. 2020, 00:55:11 »
Já ti neříkám, že to umím, to je zcela podružné. Já ti říkám, jak to je, dynamické jazyky jsou o jiném způsobu myšlení. Jestli to pochopíš nebo ne je už na tobě.

Pochopil jsem spoustu věcí (Prolog, Scheme, Smalltalk, OOP, FP). A když jsem to nepochopil, tak jsem alespoň cítil, že jsem si šáhl na hranice svých schopností (Haskell, závislostní typy). U dynamického programování se nic takového nekonalo, protože tam na pochopení nic není. Pointa je v tom, že já ti v tom, že "dynamické jazyky jsou o jiném způsobu myšlení" jednoduše nevěřím. Takhle je to jednoduché. Přeji dobrou noc.

627
Vývoj / Re:Zkušenosti s TypeScriptem
« kdy: 29. 03. 2020, 00:41:47 »
To není žádná novinka, už v C máš ukazatele a můžeš přetypovávat proměnné. V dynamickém jazyku je to paradigma ale z podstaty jiné, datový typ není vlastností proměnné, ale samotných dat. Jinak samozřejmě statické jazyky se snaží a snaží se napodobovat dynamické jazyky a co nejvíc se jim přiblížit, byť to není dokonalé. Ale to jen potvrzuje sílu dynamických jazyků a toho, jakým způsobem mění pohled na programování. Dynamické jazyky jako Javascript a Python velmi rychle rostou, statickým nezbývá, než se přizpůsobit, pokud se nechtějí stát okrajovým jevem.

Co to, clovece, - s prominutim - meles? Ukazatel v C je diametralne jina zalezitost. V tom mem prikladu je videt, ze "promenna" ve statickych a dynamickych jazycich neni nutne zase tak odlisny koncept. V tech statickych kompilator samozrejme potrebuje vedet typ dat (ne "promenne") v dobe prekladu, aby mohl zkontrolovat, ze program je validni a hlavne mohl optimalne zpracovat alokaci pameti a dalsi operace. Dynamicke jazyky na to kaslou, plytvaji prostredky v dobe behu a ano, clovek v nich muze vice "prasit" a spousta veci tak nejak funguje, kdyz neprasis moc. To je casto pohodlne a umoznuje to veci resit "intuitivne", ale u vetsich projektu to je dost kontraproduktivni a neni nahodou, ze vznikl prave TypeScript nebo ze Python ma volitelne anotace typu.

To prasení IMHO znamená, že jde spustit i kód, který na nějaké konkrétní neošetřené větvy spadne. Víc v tom podle všeho není.

628
Vývoj / Re:Zkušenosti s TypeScriptem
« kdy: 28. 03. 2020, 23:50:21 »
Nestalo se mi, že by mě obtěžovalo napsání Typové signatury. Zato se mi bolestně běžně stává, že mi absence typů schází. Čímž se kruhem dostáváme k tomu, že někdy to fakt záleží na preferencích. Pro někoho napsání těch několika málo typů může být stopka.
Nechápeš to. Nejde jen o to, že musíš napsat anotaci, ale že tě statické typy hrubě omezují v návrhu programu. Je to neflexibilní, a jakákoliv snaha dostat do návrhu flexibilitu je těžkopádná  a zkostnatělá. 
Ukaž příklad, jinak se o tom nemá smysl bavit.

Základní princip je, že s proměnnými pracuji abstraktně. V následujícím příkladu pracuji se třemi prvky, řádkem, elementem řádku a indexem. Proto používám tři tomu odpovídající proměnné.

Kód: [Vybrat]
>>> row = '1, 2, 3, 4, 5'
>>> row = row.split(',')
>>> row = [int(elm) for elm in row]
>>> for idx, elm in enumerate(row):
...     row[idx] = idx * elm
...
>>> print(sum(row))
40

Výborně. Konečně jsem dostal z dynamicky uvažujícího programátora konkrétní materiál.

Pokud to chápu dobře, tak tebe zásadně omezuje skutečnost, že za účelem čitelnosti kódu (tak chápu tu motivaci) potřebuješ možnost měnit typ té proměnné row. Správně? Je tam ještě něco, nebo to je všechno?

Jak zásadně omezující, nebo naopak tvé řešení výhodnější je toto:
Kód: [Vybrat]
row = '1, 2, 3, 4, 5'
   .split(',')
   .map(\i, x -> i * int(x))
print(sum(row))

Nechápeš to dobře. Já typ proměnné neměním, to je tvůj způsob statického uvažování. Další chyba je, že to nechápeš jako demonstrativní ukázku, která ukazuje princip, nikoliv konkrétní úkol. Zkus si to představit  jako program, který má 10 000 řádků, větvení a vícenásobné použití dat. Pořád to budeš chtít napsat jako jeden oneliner? Jestli jo, myslíš, že to bude přehlednější? A jak to budeš třeba logovat nebo krokovat a debugovat? V reálném programu také nebudeš mít data staticky deklarovaná ve zdrojovém kódu, ale obdržíš ho z nějakého vstupu, to je u mě ten první řádek, u tebe tento krok chybí, a kdybys ho aplikoval, už tam nepřiřadíš zpracovaná data. No ale nejhůř si vysvětluješ tu motivaci. Motivací je vyšší abstrakce, tedy způsob myšlení bližší normálnímu lidskému uvažování. Řádek je prostě řádek, je jedno jaký má datový formát a je lidsky naprosto nesmyslné pro to mít tři různé proměnné. Je zbytečné se o to starat, stejně jako se uživatelé vyšších programovacích jazyků už dávno nestarají o instrukční sady procesorů.
Nic z toho není problém v některém z mejch oblíbenejch staticky typovanech jazyků.

Přestaň se vztekat, a máš-li na to ponožky, tak uveď jinej, lepší příklad.


Můžu ti tisíckrát říct, že jde o způsob myšlení, stejně to nepochopíš.

Ano. Tím, že budeš tisíckrát psát, že ty to umíš, ale mě to prostě neřekneš, tak tímto způsobem to skutečně nemám šanci pochopit.

629
Vývoj / Re:NoSql document databaze
« kdy: 28. 03. 2020, 23:41:15 »
1. NoSQL vznikly v době, kdy podpora pro JSON a XML sloupce a dotazování nad ním nebyly ještě tak rozšířené jak stále nejsou nyní.

2. NoSQL mají (obvykle) dobré vlastnosti co se replikace týče.

630
Vývoj / Re:Zkušenosti s TypeScriptem
« kdy: 28. 03. 2020, 23:22:18 »
Jo, to je ta samá esoterika, jako když někdo neumí myslet ve scheme/haskellu, prologu nebo smalltalku, abychom vytáhli nějaké ikonické jazyky, zastupující různá paradigmata, tedy způsoby myšlení.
Ezoterika to není proto, že tak člověk musí umět myslet. Ezoterikou to nazývám proto, protože to neumíš vysvětlit.

Já to vysvětlit umím, je to záležitost způsobu myšlení. To je vysvětlení. Problém je, že to nedovedeš pochopit, protože je ti je buď cizí myšlenka, že jsou různé způsoby myšlení nebo ti nedochází důsledky. A je to platné obecně. Obecně platí, že způsob myšlení, na který jsi zvyklý a který je pro tebe proto komfortní determinuje tvé možnosti, omezuje tě.

Jak říkám, ezoterika. Úplně klasická. Nic o co by se dalo opřít. Jen spousta třpytek a nabubřelých frází.

Jsi jak malé děcko, když něco nechápeš, vyleješ si to na tom, koho nechápeš. Nepřekvapuje mě, že člověk neschopný myslet v dynamický jazycích, je omezený i v jiných směrech. Máš se o co opřít, jen to nevidíš. Zkus tohle https://wikisofia.cz/wiki/Pojet%C3%AD_my%C5%A1len%C3%AD_v_psychologii._Teorie_my%C5%A1len%C3%AD. Ale nedávám ti příliš velkou šanci. Dovolím si ocitovat jednu podstatnou informaci "Vyšší úrovně myšlení jsou úzce spjaty s jazykem." Zkus přemýšlet o důsledcích pro jazyky programovací.

Beru na vědomí.

Stran: 1 ... 40 41 [42] 43 44 ... 133