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 - Mirek Prýmek

Stran: 1 ... 109 110 [111] 112 113 ... 618
1651
Vývoj / Re:Proc je syntaxe programovacich jazyku tak slozita ?
« kdy: 23. 12. 2018, 17:25:42 »
s ohledem na shora uvedene mi jde predevsim o to, ktera syntaxe je jednodussi pro bezneho neprogramatora
Programování v shellu je paradoxně ve finále hodně složité, protože můsíš vědět o spoustě různých edge cases a musíš je nějak ošetřit (což je typicky netriviální a krkolomné). Stupidní příklad: nemůžeš jenom tak napsat "for file in $(ls)", protože to nebude fungovat pro soubory s mezerou v názvu.

Shell je prostě to svou podstatou (předávání jenom textu) hodně omezený/komplikovaný.

1652
Vývoj / Re:co si myslite o oop?
« kdy: 23. 12. 2018, 17:20:19 »
Rozdíl oproti C++like jazykům vidím hlavně v eleganci
Rozdíl je hlavně v tom, že poslání zprávy a volání funkce je úplně něco jiného. C++ to pomíchalo a lidi to přestali rozlišovat. K jeho dobru je třeba říct, že k tomu byl docela pádnej důvod (výkon). Ale výsledek je bohužel smutnej.

Předně dynamické typování vnímám jako nezbytnost pro objektový přístup.
A to je podle mě přesně ta výš zmíněná chyba. Obvykle tohle totiž řekne člověk, kterej ví, že "opravdové OOP" potřebuje něco flexibilnějšího než volání compile-time metod (např. pro respondsToSelector) a v tomhle smyslu je to celkem i pravda.

Ve skutečnosti ale není. Protože posílání zpráv NENÍ volání funkcí. Čili to s tím vůbec nesouvisí. Zprávy můžou být klidně typované, vnitřek actoru může být klidně typovaný, není to žádný problém. Protože zprávy se prostě zpracovávají úplně jiným mechanismem než se volají funkce.

Viz Erlang, Elixir: to jsou prakticky dva jazyky v jednom: struktura jednoho je daná strukturou komunikace (kdo komu posílá co), druhé je "běžný" funkcionální jazyk (který sice není typovaný, ale klidně by mohl být).

1653
Vývoj / Re:co si myslite o oop?
« kdy: 23. 12. 2018, 14:07:16 »
Jestli by nebylo lepší se vrátit k původní myšlence s nějakým lepším jménem. :)
No to je právě ten "agent" nebo "actor" :) Lepší je imho "actor". Sice to zní trochu exoticky, ale "agent" na sebe nabaluje speciální význam, který mu byl dán v podoboru "multiagentní systémy" (takže různé ty komunikační jazyky KQML, ACL, sémantiky/ontologie atd.)

Když místo "programuju objektově" řekneš "programuju pomocí actorů", bude jasný, že nemyslíš to zparchantělý rádobyOOP :)

1654
Vývoj / Re:co si myslite o oop?
« kdy: 23. 12. 2018, 13:18:31 »
Ne. Každý si pod tím představuje trochu něco jiného. Pro mě to je to, co tím mysleli otcové-zakladatelé, tj. Alan Kay a spol.
Tomu se dneska (bohužel) říká spíš "agentní systém" nebo "actor model".

1655
Vývoj / Re:co si myslite o oop?
« kdy: 23. 12. 2018, 13:07:22 »
Preco to najhorsie?
Ma oop za nasledok zhorsenie performance aplikacie? Ak teda zoberiem c# a javu do uvahy, tak o oop nemozno hovorit, len o akomsi napodobneni.
Myslel jsem to "mainstream OOP" (C++, Java apod.)

Ne, o výkon nejde, spíš mě štve, jakým způsobem OOP strukturuje uvažování. V době největšího OOP-hypu se OOP vydávalo ne za model reality, ale tvářilo se, že má téměř ontologickou povahu. Tj. v knížkách se podvědomě sugerovala představa, že svět JE takový (má takovou strukturu), jak ho OOP modeluje. Tedy že OOP je vlastně "přirozený". A to je strašně destruktivní iluze.

Už samotný modelování světa jako množiny jakýchsi (ontologických) entit, které mají jakési vlastnosti, je problematické. Je založeno na tom, že existuje jakási "prázdná identita", která je potom "věšákem na vlastnosti". Ve skutečném světě je ale spousta jevů, kde žádné identity neexistují a vznikají všelijaké ad-hoc shluky jevů a vlastností (triviální příklad jsou třeba korály nebo shluky nějakých bakterií, kde výraz "jedinec" moc nedává smysl, tím spíš jedinec, který by měl být "věšákem na vlastnosti").

Ale ok, tohle ještě beru, že je 1. celkem užitečný model 2. ve většině případů to funguje uspokojivě 3. víceméně to opdovídá tomu, jak si běžně svět konceptualizujeme.

Zásadní problém je ale v tom, že "mainstream OOP" příšerně zfetišizovalo dědičnost. Vytvořila se představa, že pojmy (nedejmatkopřírodo dokonce ty ontologické entity) tvoří hierarchii danou množinami vlastností individuí. A protože lidi uvěřili, že to je tak "přirozeně", začali se snažit pojmy (nedejmatkopřírodo entity) do těch hierarchií rvát. Na sílu. A z toho pak plynou ty dementní nekonečné debaty, jestli má čteverec dědit z obdélníka nebo naopak. Totální ztráta času. Evidentní střelení se do nohy.

Naštěstí se tahle debilita časem trochu utlumila a modernější přístup je spíš skládání vlastností bez potřeby hierarchizace (mixiny, interfejsy apod.). To je daleko lepší přístup, který nevede k nesmyslným slepým uličkám, kde se jazyk zabývá víc sám sebou než tím, co by měl řešit. A btw, je to návrat ke kořenům, protože původní OOP dědičnost nefetišizovalo, AFAIK.

1656
Vývoj / Re:Proc je syntaxe programovacich jazyku tak slozita ?
« kdy: 23. 12. 2018, 11:48:32 »
Pravda je, co píše RDa výš. Ten textový zápis programu je takový "sjednotitel" několika činností a u žádné z nich se s ním nepracuje úplně ideálně.

Při vzniku programu je postup: myšlenka -> bloky kódu v hlavě -> text programu -> AST -> stroják

V tomhle procesu je tam ten text z pohledu stroje vyloženě přebytečná věc vyžadující zbytečně složitý parser (výjímkou je Lisp, který ho vyrušil ;) )

Ještě horší je to v případě verzování kódu, které by principielně mělo pracovat na úrovni bloků kódu, ale nemá je k dispozici, takže uměle a nešikovně pracuje na úrovni řádků a lokálního kontextu. Vzniká tak vlastně krkolomné

Kód: [Vybrat]
Programátor: myšlenka -> bloky kódu v hlavě -> text programu
CVS: text programu -> [jakýsi kostrbatý proces bez znalosti významu a za použití úplně jiných struktur než bloků kódu] -> [občas naprosto nepřehledné a nečitelné] změny textu programu
Programátor: změny textu programu -> změny bloků kódu -> změny myšlenky

Tohle je vyloženě suboptimální proces, který by třeba na úrovni AST mohl být daleko přímočařejší.

(tohle bylo jenom tak pro ilustraci, podobně suboptimální je i generování stubů IDEčkem)

Takže vlastně jediný, o co v celé věci jde, je mít něco, z čeho se dá strojově generovat AST a zároveň se s tím bude dobře pracovat programátorovi. A to nutně ani nemusí být text. Může to být klidně nějaká vizuální reprezentace. Třeba takové ty pomůcky pro děcka typu Blockly vlastně slouží k manipulaci s vizuální reprezentací AST, takže převod do textu by tam vůbec nemusel být.

Problém ale je, že vizuální reprezentace je sice super pro začátečníka/dítě, ale ne-začátečníkovi práci spíš zpomaluje. IMHO to ale hodně záleží na paradigmatu. Některá paradigmata jsou natolik spojená se strukturami (typicky grafy), že tam začíná být vizuální reprezentace celkem efektivní, alespoň na nejvyšší úrovni.

Například paradigma "streamové zpracování dat pomocí grafu výpočetních uzlů" si o to vyloženě říká - tam je text výrazně nepřehlednější než vizuální reprezentace. Skvělým příkladem je NodeRed (https://youtu.be/f5o4tIz2Zzc?t=148) Podobně zajímavé by to mohlo být i v některých případech event-driven programování.

Každopádně ale nevím o žádném kompletním ekosystému (editor, VCS, překladač, debugger,...), který by byl pro tenhle způsob fungování vyloženě navržený od začátku, takže by tam všechno do sebe perfektně zapadalo. Systémy, o kterých vím, vždycky řeší jenom jednu část a ten "společný sjednotitel" je vždycky text (který se třeba generuje z té vizuální reprezentace) a třeba to vizuální VCS jsem ještě neviděl. Možná nejblíž jsou tomu věci typu Squeak.

Tady by možná nějaký prostor pro výzkum byl. Bylo by to strašně moc práce s nejistým výsledkem a muselo by se to udělat extrémně promyšleně, aby z toho nevznikl paskvil typu VisualBasic, ale tak už to u vymýšlení hodně inovativních věcí bývá :)

1657
Vývoj / Re:Proc je syntaxe programovacich jazyku tak slozita ?
« kdy: 22. 12. 2018, 23:48:36 »
Pokud tě zaráží syntaxe, tak počkej na to, až se potkáš se sémantikou ;-),
+100 :)

(zvlast pokud tim nemyslime neformalni "co to dela", ale formalni "semantiku programovacich jazyku" - to je teprve brainfuck :) )

mi prijde ze by to snad mohlo jit zjednodusit aby se to lip pamatovalo ?

treba by stacilo rozsirit seznam vyhrazenych slov nejlepe odpovidajicich beznemu lidskemu mysleni (v anglictine)
To je nahodou moc hezky tema. Minimalne proto, ze kdyz ty jazyky a zpusob jejich konstrukce zacne clovek reflektovat, dozvi se spoustu zajimavych veci nejenom o nich, ale i o sobe ;)

Hele, umel bys vymyslet ciste hypoteticky priklad, jak by takovy jazyk mel zhruba vypadat? Vylozene vyfabulovat kus kodu? Ale z nejake realne domeny - treba zkus ukazat, jak by mohl vypadat treba takovy autentizacni handler pro http request (tj. v normalnim jazyce funkce, ktera se zavola, kdyz prijde http request, zkontroluje nejake autentizacni udaje a povoli nebo zamitne dalsi zpracovani).

1658
Vývoj / Re:co si myslite o oop?
« kdy: 22. 12. 2018, 23:33:54 »
Jenom to nejhorsi :)

1659
Studium a uplatnění / Re:Využití frameworku Django v praxi
« kdy: 22. 12. 2018, 23:31:54 »
To je odvážne tvrdenie, že skutočné výpočty sú len v C++.
To jsem nerekl, spousta je jich ve Fortranu :)

Jestli ti to prijde jako odvazny tvrzeni, tak si zkus treba Numpy prelozit a pouzivat bez externich knihoven :)

Navyše, je tu napr. Theano pre GPU optimalizaciu.

Citace
Theano is a Python library and optimizing compiler for manipulating and evaluating mathematical expressions, especially matrix-valued ones.[2] In Theano, computations are expressed using a NumPy-esque syntax and compiled to run efficiently on either CPU or GPU architectures.
Ale vzdyt tam ty vypocty taky neprobihaji v samotnym Pythonu :)

Proste, novacek by nemel nabyt dojem, ze Python je kdovijak supervykonny jazyk. Je to relativne dost pomaly jazyk. Specialne GIL je prusvih a implementace konkurentniho zpracovani je dost tragikomicka. I tak je ale Python super a da se bezvadne pouzivat, kdyz od nej clovek neocekava neco, co od neho ocekavat nelze.

1660
Studium a uplatnění / Re:Využití frameworku Django v praxi
« kdy: 22. 12. 2018, 21:54:57 »
Předpokládám že takový AI je asi procedurální programování spíš.
No oni kolegove dali (pro novacka) trochu zavadejici odpovedi s temi vypocty, AI apod. V tehle oblastech Python funguje jenom jako lepidlo - ty skutecne vypocty se delaji v superoptimalizovanych algoritmech implementovanych v C++, C nebo Fortranu. Python tam funguje jenom jako takove "uzivatelske" lepidlo, ve kterem se vicemene jenom rekne "vysledek tohodle vypoctu vem a predej sem". Skutecne vypocty se v Pythonu nikdy nedelaji, bylo by to strasne pomaly, na to se Python nehodi. Takze z toho, ze se Python v oblasti vypoctu pouziva nic nevyvozuj o jeho vlastnostech :)

Jinak to Django je z rodiny "templatovacich" technologii, ktere imho budou postupne (ale dlouho) odumirat, protoze se cim dal vic cele aplikace presunuji na klienta. Vitezi Javascript, serverless (AWS lambda apod.) jazyky prekladane do JS, casem doufejme webassembly. Backendu pripadne jenom role servirovace dat (REST, JSON, GraphQL, ...), ale urcite vyhledove nebude renderovat aplikaci jako driv. Otazka je, za jak dlouho se ta zmena promitne na ceskem trhu... Ale pokud bych chtel zacinat dneska a chtel myslet na budoucnost, osvojim si spis Flask + nejaky pekny JS framework (Vue.js treba).

Jinak Python je celkem dobra volba, zvlast pro zacatecnika. Chybu neudelas.

1661
Studium a uplatnění / Re:Práce Linux administrátora
« kdy: 19. 12. 2018, 17:33:57 »
Pak se divíš, že se lidi dívají na absolventy sociologie apod. s despektem...
Tak to už si teda hodně taháš z paty :))))

Jestli to bude stačit tobě netuším.
Já už mám jaksi dostatečně splněno, takže to naštěstí nemusíme řešit :)

1662
Studium a uplatnění / Re:Práce Linux administrátora
« kdy: 19. 12. 2018, 13:10:50 »
Čehože se to mám držet?
Kopita. To je něco jako kopyto, ale měkčí.


1663
Studium a uplatnění / Re:Práce Linux administrátora
« kdy: 19. 12. 2018, 13:10:40 »
Ten smysl toho curricula není v obsahu, ale posloupnosti, rozsahu, podání a aplikaci. Pokud by šlo jen o obsah, mohu číst knihy z knihovny jednu po druhé a mám to.
Takže stačí číst skripta ve správným pořadí ;)

2. Můj dojem a životní zkušenost.
Ok, takže "praxe to příliš nepotvrzuje" si přepisuju na "jestli to jde, to nevím" :)

1664
Hardware / Re:Server Dell PowerEdge T130 jako pracovní stanice
« kdy: 19. 12. 2018, 12:00:58 »
Pokud chceš jít tímhle směrem, spíš než server bych doporučoval starší workstation. Měl jsem Sun, teď mám Thinkstation, obojí naprosto super, obojí se dalo koupit za bezvadnou cenu na Ebayi.

1665
/dev/null / Re:pad kriptomien
« kdy: 19. 12. 2018, 11:52:50 »
takze hodnota crypta neni vztazena k nicemu v realnem svetu
To by nebyla ani v pripade, ze by prodejci s cenami v BTC existovali. Jejich cenovky by proste litaly uplne stejne jako ted lita trh.

Stran: 1 ... 109 110 [111] 112 113 ... 618