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

Stran: 1 ... 124 125 [126] 127 128 ... 153
1876
Vývoj / Re:Rust v ČR
« kdy: 07. 11. 2019, 13:55:37 »
Když člověk zadá do jobs.cz Rust, tak mu to najde bambilion nabídek. Se slovem "růst" :-/

Jak je na tom Rust v ČR? Používáte v práci? Znáte někoho kdo ho používá pro vývoj svých produktů?
Jeden brněnský fintech startup přešel nedávno na Rust z Ocamlu.

Můžeš i jmenovat?
Nepamatuju se, jejich člověk mi o tom zaníceně vyprávěl na konferenci. Mají ve jménu “crypto” nebo “krypto.”

1877
/dev/null / Re:Těžké OOP problémy
« kdy: 07. 11. 2019, 13:52:15 »
Mimochodem, když už jsme u té amatérské lingvistiky, tak ve filosofii se "objekt" odlišuje od "subjektu" právě tím, že je aktérem, původcem děje. A proto má i ta žárovka konat autonomně. Kdyby byla pasivní, nebyla by "objektem", ale "subjektem" :)

Asi ste chceli poukazat na tranzitivnost/netranzitivnost slovies ako nositelov vyznamu zmeny stavu u prijimatela... V prirodzenych jazykoch je nositel vyznamu prisudok, co je v drvivej vacsine sloveso (pre zjednodusenie).
Podla toho, ci je sloveso tranzitivne alebo nie je, sa "prijmatelom zmeny stavu" moze stat rovnako predmet (object) ako aj podmet (subject).

Problem s OOP je v tom, ze ludia nevedia kam so slovesami, ktore (paradoxne pre OOP dizajnerov) v prirodzenych jazykoch koduju podstatu vyznamu, ale v OOP jaksi nie su ustredna tema. Netranzitivne slovesa ludia este ako tak trafia ako virtualnu metodu na instancii, ktora meni jej stav. Ale co s tranzitivnymi slovesami? Kam ich dat? Staticke metody? No fuj.

To vsak nehovori nic o tom, ci ma ziarovka byt schopna konat autonomne.
Možná jsem příliš naivní, ale nestačilo by teda u přechodných sloves mít buď předmět nebo podmět jako vlastníka metody (this) a tu druhou gramatickou roli jako parametr? Teď tedy pomíjím rozdíl mezi gramatickou rolí a sémantickou funkcí, přechodnost (tranzitivita) je syntaktická záležitost, se sémantikou nijak nesouvisí, to jen, abychom se v tom neztratili, než se začneme věnovat pragmatice (aktuální členění větné, které má v programování také svou analogii).
No, podla mna nie. Gramatickou roli myslite co? Funkciu vetneho clena? Mozeme sa pobavit aj pragmatickych chybach. Len dnes uz nie.
To je lingvistická terminologie právě pro podmět, předmět, příslovečné určení apod.

1878
/dev/null / Re:Těžké OOP problémy
« kdy: 07. 11. 2019, 13:30:38 »
na nějaké koncepty a SW inženýrství zvysoka šitujou a i tak píšou o řády lepší kód než někdo, kdo někde na VŠE “studoval koncepty”
Já tvrdím, že OOP koncepty lidem matou hlavy. Tahle tvoje historka je s tím tvrzením ortogonální :)
Ani ne. Jen tvrdím, že když má někdo PhD z astrofyziky, nějaký zcestný koncept ho nezmate, protože automaticky (podvědomě) ho bude ignorovat jako blbost. Ta laťka může být jinde, pro mnoho lidí je matoucím konceptem i for cyklus (bohužel i pro mnoho wannabe vývojářů). Když je někdo slabomyslný, mate mu hlavu OOP koncept stejně jako Okamura z SPD, dementní alkoholik na Hradě etc., to není vina OOP, ale onoho individua.
Amen.
A ja osobne nechapu, co je na OOP k nechapani.
Staci pouzivat selsky rozum pro dekompozici
Toto je obecně problém myšlení a přístupu k problémům (resp. problem solving). Technicky/matematicky (prostě čistě logicky) uvažující člověk rozebere problém na prvočinitele a pak mechanicky navrhne přímočaré, konceptuálně jednoduché řešení. Jakmile se k tomu ale pustí homo humanicus, jde selský rozum stranou a místo řešení problému začnou diskuse, proč by nemohlo uhlí samo naskákat na lopatu, případně, jaké pohlaví má uhlí, má-li vůbec nějaké, a není-li rasismem nazývat uhlí černým, ať už je černé nebo ne (alternativa: African-American coal).

1879
/dev/null / Re:Těžké OOP problémy
« kdy: 07. 11. 2019, 13:24:03 »
Mimochodem, když už jsme u té amatérské lingvistiky, tak ve filosofii se "objekt" odlišuje od "subjektu" právě tím, že je aktérem, původcem děje. A proto má i ta žárovka konat autonomně. Kdyby byla pasivní, nebyla by "objektem", ale "subjektem" :)

Asi ste chceli poukazat na tranzitivnost/netranzitivnost slovies ako nositelov vyznamu zmeny stavu u prijimatela... V prirodzenych jazykoch je nositel vyznamu prisudok, co je v drvivej vacsine sloveso (pre zjednodusenie).
Podla toho, ci je sloveso tranzitivne alebo nie je, sa "prijmatelom zmeny stavu" moze stat rovnako predmet (object) ako aj podmet (subject).

Problem s OOP je v tom, ze ludia nevedia kam so slovesami, ktore (paradoxne pre OOP dizajnerov) v prirodzenych jazykoch koduju podstatu vyznamu, ale v OOP jaksi nie su ustredna tema. Netranzitivne slovesa ludia este ako tak trafia ako virtualnu metodu na instancii, ktora meni jej stav. Ale co s tranzitivnymi slovesami? Kam ich dat? Staticke metody? No fuj.

To vsak nehovori nic o tom, ci ma ziarovka byt schopna konat autonomne.
Možná jsem příliš naivní, ale nestačilo by teda u přechodných sloves mít buď předmět nebo podmět jako vlastníka metody (this) a tu druhou gramatickou roli jako parametr? Teď tedy pomíjím rozdíl mezi gramatickou rolí a sémantickou funkcí, přechodnost (tranzitivita) je syntaktická záležitost, se sémantikou nijak nesouvisí, to jen, abychom se v tom neztratili, než se začneme věnovat pragmatice (aktuální členění větné, které má v programování také svou analogii).

1880
Vývoj / Re:Rust v ČR
« kdy: 07. 11. 2019, 13:20:08 »
Jak je na tom Rust v ČR? Používáte v práci? Znáte někoho kdo ho používá pro vývoj svých produktů?
Jeden brněnský fintech startup přešel nedávno na Rust z Ocamlu.

1881
/dev/null / Re:Těžké OOP problémy
« kdy: 07. 11. 2019, 11:59:39 »
Není to přesně naopak, minimálně v anglické gramatice?
Chybička se stane, chtěl to napsat naopak, ale ani tak to neplatí.

1882
/dev/null / Re:Těžké OOP problémy
« kdy: 07. 11. 2019, 11:58:39 »
Mimochodem, když už jsme u té amatérské lingvistiky, tak ve filosofii se "objekt" odlišuje od "subjektu" právě tím, že je aktérem, původcem děje. A proto má i ta žárovka konat autonomně. Kdyby byla pasivní, nebyla by "objektem", ale "subjektem" :)
Tos těžce netrefil, subjekt/objekt jsou pojmy z oblasti syntaxe, kdežto původce děje (aktor, česky konatel) je sémantický pojem. Gramatický subjekt nemusí být konatelem a objekt jím být může, je to na sobě naprosto nezávislé. Viz například Panevová: Formy a funkce ve stavbě české věty (doufám, že si ten název pamatuju správně, tohle jsem četl někdy přes 20 lety), tohle je geniální knížka se spoustou (českých) příkladů z pomezí syntaxe, sémantiky a pragmatiky.

1883
/dev/null / Re:Těžké OOP problémy
« kdy: 07. 11. 2019, 11:52:42 »
Nechapu blaboleni, proc by jako zarovka mela sama něco delat
To je v pohodě, rozhodně nejsi sám.

muj svet je ale objektovy.
Však to je v pohodě. Když tě to baví psát a někdo ti za to zaplatí, není nikde žádný problém. Jsou i lidi, kteří píší ve Visual Basicu a baví je to. Rozhodně nemám potřebu kohokoli o čemkoli přesvědčovat.
Visual Basic není tak špatný, byly doby, kdy si jeho kritikou studenti IT v prváku na VŠE potlačovali komplex méněcennosti, ale měl jsem za to, že z toho už puberťáci vyrostli.

1884
/dev/null / Re:Těžké OOP problémy
« kdy: 07. 11. 2019, 11:49:05 »
na nějaké koncepty a SW inženýrství zvysoka šitujou a i tak píšou o řády lepší kód než někdo, kdo někde na VŠE “studoval koncepty”
Já tvrdím, že OOP koncepty lidem matou hlavy. Tahle tvoje historka je s tím tvrzením ortogonální :)
Ani ne. Jen tvrdím, že když má někdo PhD z astrofyziky, nějaký zcestný koncept ho nezmate, protože automaticky (podvědomě) ho bude ignorovat jako blbost. Ta laťka může být jinde, pro mnoho lidí je matoucím konceptem i for cyklus (bohužel i pro mnoho wannabe vývojářů). Když je někdo slabomyslný, mate mu hlavu OOP koncept stejně jako Okamura z SPD, dementní alkoholik na Hradě etc., to není vina OOP, ale onoho individua.

1885
/dev/null / Re:Těžké OOP problémy
« kdy: 07. 11. 2019, 11:43:09 »
V OOP má každá metoda přístup ke všem datům objektu a objekty obsahují bambiliony referencí, takže granularita zamykání je problém. V praxi se to pak často řeší způsobem "GUI vlákno + výpočetní vlákno/vlákna", protože kdybys to měl řešit na úrovni metod, tak by ses z toho zvencnul, nasekal tam spoustu chyb a ještě by to bylo nečitelné.
GUI je dost specifický případ, tam je jeden kontext (hierarchie UI objektů), do které sahá kupa objektů. Jinak by si ale měl synchronizace řešit každý objekt sám vnitřně. Kdysi jsem třeba dělal na SW pro roboty (automatické vozíky ve skladech apod.), tam dochází ke zpožděním (senzor-zpracování-aktuátor), mnohé AI algoritmy jsou NP úplné apod., ale stejně to jde řešit elegantně přes OOP. Jen je třeba vědět jak.

1886
Studium a uplatnění / Re:Ing. studium informatiky
« kdy: 07. 11. 2019, 11:29:06 »
Dnes je potřeba mít titul jen v některých oborech, jako třeba architektura/stavitelství, medicína, právničina
K čemu?

1887
/dev/null / Re:Těžké OOP problémy
« kdy: 07. 11. 2019, 02:45:19 »
Já bych to fakt tak nedramatizoval. Jak sám píšeš, žárovka má sama rozhodnout a případně volajícího poslat někam (žárovka je v tomto ohledu agent), pokud to nedělá, je špatně její kód.
No jo, jenže jak bys to konrétně v nějakém mainstreamovém "OOP jazyce" implementoval? Dáš na každou metodu mutex a každá metoda bude mít možnost buď vyhodit výjimku nebo vracet speciální chybový stav "teď nemůžu"? Podle mě tam na to prostě není žádný nástroj, který by 1. z kódu neudělal totálně nečitelnou zhovadilost nebo 2. by kód nedegradoval na normální strukturovaný kód s nějakými podivnými strukturami "class", které s původní myšlenkou OOP nemají nic společného.

IMHO pokud se má OOP spojit s konkurentností a zároveň se nemá jedno nebo druhý totálně zhovadit, jediný řešení je to, které má Erlang (nepřekvapivě ;) ) - co objekt (actor), to vlákno. Protože "actor" je od slova "act". A vlákno je od slova "act". Vlastně není, ale to neva.

Že OOP naučí nějak myslet bych taky nepřeceňoval, “nějak myslet” naučí matematika nebo třeba analytická filosofie, ale to už se bavíme na úplně jiné úrovni, běžný Ferda programátor je rád, když mu stačí myslet ve for cyklech.
Kéž by! Jak říká Linus: "[C programmers] don't screw things up with any idiotic "object model" crap". Když budeš BFP rvát do hlavy koncepty jako "objekt", "objektový model", "objektový návrh" a budeš se tvářit, že to je na kódu to nejdůležitější, tak to jenom pochopí blbě a začnou vymýšlet fantasmagorie.

Když jim dáš funkce, struktury a cykly, tak to pochopí v pohodě a žádný zhovadilosti nebudou mít potřebu vymýšlet. Tohle imho vyhmátl Pike hodně dobře :)

--
Už se pro dnešek omlouvám, jednak se zbytečně vracíme k té někdejší debatě a navíc musím dneska už chrnět :)
Ano, metody, které někdy můžou selhat, by měly vracet chybu, jestli výjimkou, to už je celkem jedno. Za funkčnost ať si zodpovídá objekt sám. Vlákna bych do toho netahal, to je k OOP ortogonální koncept. 

Jinak moje zkušenost je, že kvalita kódu nezávisí na konceptech, je to čistě o člověku. Tam, kde jsem teď (School of physics na jedné britské univerzitě), mám kolem sebe jen fyziky, kteří se naučili psát kód jen tak mimochodem při počítání kovariantních derivací a stáčení perihelií exoplanet, na nějaké koncepty a SW inženýrství zvysoka šitujou a i tak píšou o řády lepší kód než někdo, kdo někde na VŠE “studoval koncepty” a na internetovém fóru vypisuje blbosti, když se mu občas nedejbože udělá názor, protože prostě když má někdo intelektuální kapacitu na pochopení obecné relativity a Schrödingerovy rovnice, nějaké programování bere jako gymplák malou násobilku. V tomto mají Linus a Pike pravdu, k čemu fancy jazyk, když chci jen ovládat urychlovač částic  :)

1888
/dev/null / Re:Těžké OOP problémy
« kdy: 07. 11. 2019, 00:11:10 »
OOP naučí lidi nějak myslet. V pojmech "mám žárovku", "řeknu žárovce, aby se rozsvítila". Což je naprosto perfektně OOP a nemám proti tomu nic. Až na to, že implementace dělá něco úplně jiného, v tom je problém :)
Já tuhle logiku moc nechápu, 1) koncept něco tvrdí (údajně), ale chyba v je konceptu, ne v programátorovi, který se tím slepě řídí/neřídí, 2) koncept lidi nějak naučí, a zase je chyba v něm, ne v lidech...
Koncept podle mě sám nic netvrdí, zase jsou to jenom lidi, jedni mají pravdu, druzí ne. Koncept je OK.

Vidím ale jednu věc, na které se snad shodneme, to že OOP něco lidi naučí, ale implementace dělá něco jiného, je chyba. To beru. Ale tady je to chyba té implementace, ne toho konceptu. Podle mě nebyl původní dotaz na konkrétní implementace OOP ale obecně...
Tady je vidět, proč “all evidence points to OOP being bullshit.” Naprostá většina algoritmů je čitelnější ve strukturovaném paradigmatu.

1889
/dev/null / Re:Těžké OOP problémy
« kdy: 07. 11. 2019, 00:06:16 »
Normální vývojář se neřídí tím, co mu řekne “koncept,”
Po dlouhé době s tebou velmi zásadně nesouhasím. OOP naučí lidi nějak myslet. V pojmech "mám žárovku", "řeknu žárovce, aby se rozsvítila". Což je naprosto perfektně OOP a nemám proti tomu nic. Až na to, že implementace dělá něco úplně jiného, v tom je problém :)

ale jednoduchými instrukcemi, jak na synchronizaci.
Synchronizace je (v tomhle kontextu) jenom narovnávák na ohýbák. V OOP nemá co dělat. Já mám prostě žárovku a řeknu jí, aby se rozsvítila. Jestliže se právě nažhavuje, má mi odpovědět "sorry, teď nemůžu, mám na práci něco jinýho". Synchronizace má svoje místo mezi entitami ( začnu až ty skončíš), nemá být zneužívaná k tomu, abych "zesynchronizoval" "jednu entitu". Už v kombinaci těhle dvou pojmů je vidět, jak je to ujetý. Co se tam totiž synchronizuje? Vlákna. A proč? No protože vlákna jsou tam ty entity, ne objekty :) Protože chci dosáhnout "prvně (vlákno1) rožnu a pak ty (vlákno2) zhasneš". Objekt tam žádnou entitou není. Jenom se snaží udělat takovej dojem. A ochotně mu to žereme. Dokud máme jenom jedno vlákno :)
Já bych to fakt tak nedramatizoval. Jak sám píšeš, žárovka má sama rozhodnout a případně volajícího poslat někam (žárovka je v tomto ohledu agent), pokud to nedělá, je špatně její kód. Nemá smysl se rozčilovat, když někdo mizerně napíše objekt nebo knihovnu.

Že OOP naučí nějak myslet bych taky nepřeceňoval, “nějak myslet” naučí matematika nebo třeba analytická filosofie, ale to už se bavíme na úplně jiné úrovni, běžný Ferda programátor je rád, když mu stačí myslet ve for cyklech.

1890
/dev/null / Re:Těžké OOP problémy
« kdy: 06. 11. 2019, 23:27:12 »
A co třeba v Céčku? Tam ne?
Céčko má jeden zásadní rozdíl: netváří se, že je něčím, čím není. V céčku předávám funkcím data. Jestliže spustím zaráz dvě funkce nad stejnými daty, nad kterými by zaráz spuštěny být neměly, dojde samozřejmě k chybě. Protože jsem jako programátor udělal chybu. Ne proto, že mi koncept tvrdil něco, co v reálu není pravda.
Moc to OOP prožíváš ::) Normální vývojář se neřídí tím, co mu řekne “koncept,” ale jednoduchými instrukcemi, jak na synchronizaci. Tím nikdo netvrdí, že nějaká tupá PHP lopata to zvoře, ale ty můžeme ignorovat.

Stran: 1 ... 124 125 [126] 127 128 ... 153