Hledám knihy: Myslíme v C++ a v Javě

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Hledám knihy: Myslíme v C++ a v Javě
« Odpověď #75 kdy: 13. 09. 2019, 21:53:55 »
C++ patří mezi nejtěžší programovací jazyky, s komplikovaností knihy musíš počítat. Pokud jsi začátečníkem, začni raději s Javou - ta je jednodušší a získáš lepší návyky.
Java je do začátků strašně ukecaná... a taky mám dojem, že z ní pak mají občas lidé pocit, že se všechno musí řešit přes výjimky, což mi jako lepší návyk nepřijde.
Výjimky jsou výrazně lepší, než předávání chybových stavů. Bez mechaniky výjimek se objektově moc programovat nedá.
OO nějak esenciálně závisí na výjimkách? Jak jejich absence omezuje posílání zpráv?


Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Hledám knihy: Myslíme v C++ a v Javě
« Odpověď #76 kdy: 13. 09. 2019, 22:08:58 »
Vždy radostu si tu počíst. Někdo slyšel haskellu a hnedka se už považuje za neobyčejného (nebo jaký je opak obyčejného?) vývojaře.  8)
Nechtěl bys to trochu rozvést? Ovládáš snad Haskell lépe než ti, kteří se tu o něm zmiňují? Pochlub se, rád se přiučím.
Připojuji se, také bych se rád naučil něco nového o Haskellu nebo FP obecně.

Kit

  • *****
  • 704
    • Zobrazit profil
    • E-mail
Re:Hledám knihy: Myslíme v C++ a v Javě
« Odpověď #77 kdy: 13. 09. 2019, 22:31:47 »
C++ patří mezi nejtěžší programovací jazyky, s komplikovaností knihy musíš počítat. Pokud jsi začátečníkem, začni raději s Javou - ta je jednodušší a získáš lepší návyky.
Java je do začátků strašně ukecaná... a taky mám dojem, že z ní pak mají občas lidé pocit, že se všechno musí řešit přes výjimky, což mi jako lepší návyk nepřijde.
Výjimky jsou výrazně lepší, než předávání chybových stavů. Bez mechaniky výjimek se objektově moc programovat nedá.
OO nějak esenciálně závisí na výjimkách? Jak jejich absence omezuje posílání zpráv?

Bez výjimek vlastně nemáš odezvu, co se s tou zprávou stalo - zda byla přijata či odmítnuta. Můžeš programovat i bez nich, ale praktické to není.

Re:Hledám knihy: Myslíme v C++ a v Javě
« Odpověď #78 kdy: 13. 09. 2019, 22:36:15 »
C++ patří mezi nejtěžší programovací jazyky, s komplikovaností knihy musíš počítat. Pokud jsi začátečníkem, začni raději s Javou - ta je jednodušší a získáš lepší návyky.
Java je do začátků strašně ukecaná... a taky mám dojem, že z ní pak mají občas lidé pocit, že se všechno musí řešit přes výjimky, což mi jako lepší návyk nepřijde.

Výjimky jsou výrazně lepší, než předávání chybových stavů. Bez mechaniky výjimek se objektově moc programovat nedá.

Výjimky jsou především výrazně dražší. Jinak moc nevidím důvod, proč by se bez nich nedalo objektově programovat...

Java je ukecaná, jen když se píší anemické (v podstatě zbytečné) třídy. Neukecaného Pythonu se mnozí programátoři snad i bojí.

Ne, Java je ukecaná sama o sobě. Už jen hloupé Hello World něco zabere.

BoneFlute

  • *****
  • 1 981
    • Zobrazit profil
Re:Hledám knihy: Myslíme v C++ a v Javě
« Odpověď #79 kdy: 13. 09. 2019, 22:36:41 »
Jen je k němu ta teorie prostě blíž než u C++.
Tak něco takového jsem víceméně chtěl říct. Plus to, že Haskel je víc deklarativní, což má IMHO velké důsledky. Jak na požadavky vývojáře, tak i na kvalitu výsledné práce.
« Poslední změna: 13. 09. 2019, 22:38:24 od BoneFlute »


BoneFlute

  • *****
  • 1 981
    • Zobrazit profil
Re:Hledám knihy: Myslíme v C++ a v Javě
« Odpověď #80 kdy: 13. 09. 2019, 22:39:05 »
Výjimky jsou především výrazně dražší.

Principielně?

Re:Hledám knihy: Myslíme v C++ a v Javě
« Odpověď #81 kdy: 13. 09. 2019, 22:39:49 »
C++ patří mezi nejtěžší programovací jazyky, s komplikovaností knihy musíš počítat. Pokud jsi začátečníkem, začni raději s Javou - ta je jednodušší a získáš lepší návyky.
Java je do začátků strašně ukecaná... a taky mám dojem, že z ní pak mají občas lidé pocit, že se všechno musí řešit přes výjimky, což mi jako lepší návyk nepřijde.
Výjimky jsou výrazně lepší, než předávání chybových stavů. Bez mechaniky výjimek se objektově moc programovat nedá.
OO nějak esenciálně závisí na výjimkách? Jak jejich absence omezuje posílání zpráv?

Bez výjimek vlastně nemáš odezvu, co se s tou zprávou stalo - zda byla přijata či odmítnuta. Můžeš programovat i bez nich, ale praktické to není.

Nějak nevidím důvod, proč bych k tomu potřeboval výjimku...

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Hledám knihy: Myslíme v C++ a v Javě
« Odpověď #82 kdy: 13. 09. 2019, 22:52:38 »
C++ patří mezi nejtěžší programovací jazyky, s komplikovaností knihy musíš počítat. Pokud jsi začátečníkem, začni raději s Javou - ta je jednodušší a získáš lepší návyky.
Java je do začátků strašně ukecaná... a taky mám dojem, že z ní pak mají občas lidé pocit, že se všechno musí řešit přes výjimky, což mi jako lepší návyk nepřijde.
Výjimky jsou výrazně lepší, než předávání chybových stavů. Bez mechaniky výjimek se objektově moc programovat nedá.
OO nějak esenciálně závisí na výjimkách? Jak jejich absence omezuje posílání zpráv?

Bez výjimek vlastně nemáš odezvu, co se s tou zprávou stalo - zda byla přijata či odmítnuta. Můžeš programovat i bez nich, ale praktické to není.
Aha.

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Hledám knihy: Myslíme v C++ a v Javě
« Odpověď #83 kdy: 13. 09. 2019, 22:54:29 »
Jen je k němu ta teorie prostě blíž než u C++.
Tak něco takového jsem víceméně chtěl říct. Plus to, že Haskel je víc deklarativní, což má IMHO velké důsledky. Jak na požadavky vývojáře, tak i na kvalitu výsledné práce.
Haskell je důsledně deklarativní, což je jenom dobře, ale jak to souvisí s C++ bordelem?

Re:Hledám knihy: Myslíme v C++ a v Javě
« Odpověď #84 kdy: 13. 09. 2019, 22:55:33 »
Jen je k němu ta teorie prostě blíž než u C++.
Tak něco takového jsem víceméně chtěl říct. Plus to, že Haskel je víc deklarativní, což má IMHO velké důsledky. Jak na požadavky vývojáře, tak i na kvalitu výsledné práce.

Jak to myslíš? Především tu poslední větu, protože i v Haskellu jsem viděl dost nehezké věci...

Výjimky jsou především výrazně dražší.

Principielně?

Dobře, nejdřív by bylo asi vhodné si říct, co přesně pod výjimkami každý vidíme.

BoneFlute

  • *****
  • 1 981
    • Zobrazit profil
Re:Hledám knihy: Myslíme v C++ a v Javě
« Odpověď #85 kdy: 13. 09. 2019, 23:30:34 »
Jen je k němu ta teorie prostě blíž než u C++.
Tak něco takového jsem víceméně chtěl říct. Plus to, že Haskel je víc deklarativní, což má IMHO velké důsledky. Jak na požadavky vývojáře, tak i na kvalitu výsledné práce.

Jak to myslíš? Především tu poslední větu, protože i v Haskellu jsem viděl dost nehezké věci...
To se nevylučuje.

Mám před očima kolegy, kteří programovali stylem: funguje - funguje. Proč? Nevím, nezajímá. Co když... - nevím, nezajímá. Funguje, tak neřeš.

Domníváma se, že obecně jazyky C++, Java, Python k tomu svádí víc, než Haskell. Ale třeba je to jen můj dojem.

Výjimky jsou především výrazně dražší.

Principielně?

Dobře, nejdřív by bylo asi vhodné si říct, co přesně pod výjimkami každý vidíme.
Co třeba tento pěknej článek: http://www.abclinuxu.cz/blog/radekm/2015/6/algebraicke-efekty

Taky mne napadlo, že vhodně poskládaný funkce vracející Maybe/Either s nějakou omáčkou kolem by se mohli celkem podobat fungování výjimek. Compile-time.

Re:Hledám knihy: Myslíme v C++ a v Javě
« Odpověď #86 kdy: 13. 09. 2019, 23:48:40 »
Jen je k němu ta teorie prostě blíž než u C++.
Tak něco takového jsem víceméně chtěl říct. Plus to, že Haskel je víc deklarativní, což má IMHO velké důsledky. Jak na požadavky vývojáře, tak i na kvalitu výsledné práce.

Jak to myslíš? Především tu poslední větu, protože i v Haskellu jsem viděl dost nehezké věci...
To se nevylučuje.

Mám před očima kolegy, kteří programovali stylem: funguje - funguje. Proč? Nevím, nezajímá. Co když... - nevím, nezajímá. Funguje, tak neřeš.

Domníváma se, že obecně jazyky C++, Java, Python k tomu svádí víc, než Haskell. Ale třeba je to jen můj dojem.

Ne, tady se shodneme. On tomu ale imho dost pomáhá ten silný typový systém.

Výjimky jsou především výrazně dražší.

Principielně?

Dobře, nejdřív by bylo asi vhodné si říct, co přesně pod výjimkami každý vidíme.
Co třeba tento pěknej článek: http://www.abclinuxu.cz/blog/radekm/2015/6/algebraicke-efekty

Taky mne napadlo, že vhodně poskládaný funkce vracející Maybe/Either s nějakou omáčkou kolem by se mohli celkem podobat fungování výjimek. Compile-time.

Dík za článek, přečtu. :)

Osobně třeba Maybe/Either pořád beru jako "lepší návratové kódy". Výjimky, v tom kontextu, mám spojené se stack unwindingem a run-time.

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Hledám knihy: Myslíme v C++ a v Javě
« Odpověď #87 kdy: 14. 09. 2019, 00:05:56 »
Taky mne napadlo, že vhodně poskládaný funkce vracející Maybe/Either s nějakou omáčkou kolem by se mohli celkem podobat fungování výjimek. Compile-time.
Ano, Maybe je isomorfní s výjimkami.

Re:Hledám knihy: Myslíme v C++ a v Javě
« Odpověď #88 kdy: 14. 09. 2019, 00:15:25 »
Taky mne napadlo, že vhodně poskládaný funkce vracející Maybe/Either s nějakou omáčkou kolem by se mohli celkem podobat fungování výjimek. Compile-time.
Ano, Maybe je isomorfní s výjimkami.

To je dost zajímavé tvrzení na to, jak je tu pojem "výjimky" dost abstraktní.

BoneFlute

  • *****
  • 1 981
    • Zobrazit profil
Re:Hledám knihy: Myslíme v C++ a v Javě
« Odpověď #89 kdy: 14. 09. 2019, 00:52:56 »
Taky mne napadlo, že vhodně poskládaný funkce vracející Maybe/Either s nějakou omáčkou kolem by se mohli celkem podobat fungování výjimek. Compile-time.
Ano, Maybe je isomorfní s výjimkami.

To je dost zajímavé tvrzení na to, jak je tu pojem "výjimky" dost abstraktní.

Idea výjimek je, že odchytáváš určitou skupinu konkrétních chybových stavů v konkrétním stromu výrazů. Víc toho není. IMHO zbytek je implementační detail.