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

BoneFlute

  • *****
  • 1 981
    • Zobrazit profil
Re:Hledám knihy: Myslíme v C++ a v Javě
« Odpověď #60 kdy: 12. 09. 2019, 17:36:57 »
Dobře, jestli pod “obtížný” rozumíme “neuvěřitelný bordel”, pak ano. Haskell je naopak velmi elegantní a uspořádaný, akorát ho běžný vývojář moc nepobírá. Možná je problémem právě absence bordelu a stupidit, jako v C++ a Javě?

IMHO zásadní problém je v tom, že C++ i Java jsou imperativní jazyky. Je možné pozorovat vývojáře, kteří prostě "vyřeší problém" místo toho, aby ho popsali. Udělají ciklus, nějaké ty podmínky, prostě dosáhnou výsledku. Jednou jsem viděl krásnou anketu, kde se dotyčný ptal, zda při návrhu nějaké systému používají papír nebo rovnou programují.

Haskell a spol jsou více na to dobře si promyslet co chceš. Protože zapsat to pak je na pár řádek. A možná požadavek na větší teoretický rozhled. V Javě ani v C++ nepotřebuješ prakticky nic znát.


Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Hledám knihy: Myslíme v C++ a v Javě
« Odpověď #61 kdy: 12. 09. 2019, 18:17:16 »
Haskell a spol jsou více na to dobře si promyslet co chceš. Protože zapsat to pak je na pár řádek. A možná požadavek na větší teoretický rozhled. V Javě ani v C++ nepotřebuješ prakticky nic znát.
Mně přijde, že mnoho algoritmů (jejich zápis) se v obou přístupech prolíná. Promyslet se člověk akorát musí, jak obejít to, že do proměnných nejde přiřazovat, ale to už je o neznalosti specifických řešení (nebo “vzorů”).

Kit

  • *****
  • 704
    • Zobrazit profil
    • E-mail
Re:Hledám knihy: Myslíme v C++ a v Javě
« Odpověď #62 kdy: 12. 09. 2019, 19:24:41 »
Haskell a spol jsou více na to dobře si promyslet co chceš. Protože zapsat to pak je na pár řádek. A možná požadavek na větší teoretický rozhled. V Javě ani v C++ nepotřebuješ prakticky nic znát.
Mně přijde, že mnoho algoritmů (jejich zápis) se v obou přístupech prolíná. Promyslet se člověk akorát musí, jak obejít to, že do proměnných nejde přiřazovat, ale to už je o neznalosti specifických řešení (nebo “vzorů”).

Fígl je v tom, že bys do proměnných ani neměl chtít zapisovat, podobně jako nepřepisuješ funkci. V XSLT to je také tak a docela mi trvalo, než mi docvaklo, že by byla blbost do nich zapisovat. Není tam ani "else" a časem jsem zjistil, že nepotřebuji ani "if" či "choose". Podobně dopadl i "for-each" - cykly už také nepotřebuji. Ta změna myšlení není jednoduchá, ale stojí za to.

Nakonec přijdeš na to, že ve funkcionálních jazycích žádné algoritmy nepotřebuješ, vystačíš si se vzorci.

BoneFlute

  • *****
  • 1 981
    • Zobrazit profil
Re:Hledám knihy: Myslíme v C++ a v Javě
« Odpověď #63 kdy: 12. 09. 2019, 19:41:53 »
Mně přijde, že mnoho algoritmů (jejich zápis) se v obou přístupech prolíná. Promyslet se člověk akorát musí, jak obejít to, že do proměnných nejde přiřazovat, ale to už je o neznalosti specifických řešení (nebo “vzorů”).

I v Javě jsou zkušenější programátoři.

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Hledám knihy: Myslíme v C++ a v Javě
« Odpověď #64 kdy: 12. 09. 2019, 20:01:54 »
Mně přijde, že mnoho algoritmů (jejich zápis) se v obou přístupech prolíná. Promyslet se člověk akorát musí, jak obejít to, že do proměnných nejde přiřazovat, ale to už je o neznalosti specifických řešení (nebo “vzorů”).
I v Javě jsou zkušenější programátoři.
Nepochybně, ale tady jde o schopnost pochopit, ne zkušenosti.


Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Hledám knihy: Myslíme v C++ a v Javě
« Odpověď #65 kdy: 12. 09. 2019, 20:04:46 »
Haskell a spol jsou více na to dobře si promyslet co chceš. Protože zapsat to pak je na pár řádek. A možná požadavek na větší teoretický rozhled. V Javě ani v C++ nepotřebuješ prakticky nic znát.
Mně přijde, že mnoho algoritmů (jejich zápis) se v obou přístupech prolíná. Promyslet se člověk akorát musí, jak obejít to, že do proměnných nejde přiřazovat, ale to už je o neznalosti specifických řešení (nebo “vzorů”).

Fígl je v tom, že bys do proměnných ani neměl chtít zapisovat, podobně jako nepřepisuješ funkci. V XSLT to je také tak a docela mi trvalo, než mi docvaklo, že by byla blbost do nich zapisovat. Není tam ani "else" a časem jsem zjistil, že nepotřebuji ani "if" či "choose". Podobně dopadl i "for-each" - cykly už také nepotřebuji. Ta změna myšlení není jednoduchá, ale stojí za to.

Nakonec přijdeš na to, že ve funkcionálních jazycích žádné algoritmy nepotřebuješ, vystačíš si se vzorci.
Však taky nechci, ale většinu lidí to mate, protože to jinak neumí.

K poslední větě: 1) Najdi definici algoritmu. 2) Se vzorci si člověk vystačí, ale musí mít celou tu mašinerii za nimi, tj. typový systém, syntaktické cukrovinky apod.

Kit

  • *****
  • 704
    • Zobrazit profil
    • E-mail
Re:Hledám knihy: Myslíme v C++ a v Javě
« Odpověď #66 kdy: 12. 09. 2019, 20:39:45 »
Se vzorci si člověk vystačí, ale musí mít celou tu mašinerii za nimi, tj. typový systém, syntaktické cukrovinky apod.

Není to tak zlé. V XSLT je jen 5 typů a syntaktického cukru tam moc není. Problém bude jinde.

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Hledám knihy: Myslíme v C++ a v Javě
« Odpověď #67 kdy: 12. 09. 2019, 22:14:33 »
Se vzorci si člověk vystačí, ale musí mít celou tu mašinerii za nimi, tj. typový systém, syntaktické cukrovinky apod.
Není to tak zlé. V XSLT je jen 5 typů a syntaktického cukru tam moc není. Problém bude jinde.
To není zrovna plnohodnotný jazyk. V Haskellu už to vypadá jinak.

Kit

  • *****
  • 704
    • Zobrazit profil
    • E-mail
Re:Hledám knihy: Myslíme v C++ a v Javě
« Odpověď #68 kdy: 13. 09. 2019, 00:11:16 »
Se vzorci si člověk vystačí, ale musí mít celou tu mašinerii za nimi, tj. typový systém, syntaktické cukrovinky apod.
Není to tak zlé. V XSLT je jen 5 typů a syntaktického cukru tam moc není. Problém bude jinde.
To není zrovna plnohodnotný jazyk. V Haskellu už to vypadá jinak.

XSLT je úplným programovacím jazykem, stejně jako Haskell.

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Hledám knihy: Myslíme v C++ a v Javě
« Odpověď #69 kdy: 13. 09. 2019, 00:30:53 »
Se vzorci si člověk vystačí, ale musí mít celou tu mašinerii za nimi, tj. typový systém, syntaktické cukrovinky apod.
Není to tak zlé. V XSLT je jen 5 typů a syntaktického cukru tam moc není. Problém bude jinde.
To není zrovna plnohodnotný jazyk. V Haskellu už to vypadá jinak.
XSLT je úplným programovacím jazykem, stejně jako Haskell.
Nic moc pokus o provokaci, že je turingovsky úplný neznamená, že je srovnatelný s Haskellem.

Kit

  • *****
  • 704
    • Zobrazit profil
    • E-mail
Re:Hledám knihy: Myslíme v C++ a v Javě
« Odpověď #70 kdy: 13. 09. 2019, 11:22:01 »
XSLT je úplným programovacím jazykem, stejně jako Haskell.
Nic moc pokus o provokaci, že je turingovsky úplný neznamená, že je srovnatelný s Haskellem.

Souhlas, XSLT má jiné paradigma.

Re:Hledám knihy: Myslíme v C++ a v Javě
« Odpověď #71 kdy: 13. 09. 2019, 17:49:11 »
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)

Re:Hledám knihy: Myslíme v C++ a v Javě
« Odpověď #72 kdy: 13. 09. 2019, 18:20:00 »
Nie je táto kniha pre začiatočníka veľmi komplikovaná?

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.

Nie je táto kniha pre začiatočníka veľmi komplikovaná?
C++ patří mezi nejtěžší programovací jazyky
Oproti Haskellu je triviální, nemluvě o vyšším levelu jako Agda.

"Problém" je, že Haskell je vcelku mladý a konzistentní. O C++ se to tvrdit nedá; ten jazyk je obří, se spoustou věcí se člověk snadno střelí do nohy a často doplácí na to, že "je v něm všechno". Zase nutno dodat, že pokrok je u C++ vidět dost.

Haskell a spol jsou více na to dobře si promyslet co chceš. Protože zapsat to pak je na pár řádek. A možná požadavek na větší teoretický rozhled. V Javě ani v C++ nepotřebuješ prakticky nic znát.

To bych si nebyl tak úplně jistý. Spíš bych řekl, že je to tím, že je normální začínat na imperativních jazycích. On programátor v Haskellu taky nemusí "prakticky nic znát", když bude vědět, jak co použít. Jen je k němu ta teorie prostě blíž než u C++.

Kit

  • *****
  • 704
    • Zobrazit profil
    • E-mail
Re:Hledám knihy: Myslíme v C++ a v Javě
« Odpověď #73 kdy: 13. 09. 2019, 21:39:11 »
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á.

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í.

XSLT bylo pro mne také ukecané do doby, než jsem zjistil, že je to jen pověra a že ukecané není.

Kit

  • *****
  • 704
    • Zobrazit profil
    • E-mail
Re:Hledám knihy: Myslíme v C++ a v Javě
« Odpověď #74 kdy: 13. 09. 2019, 21:43:41 »
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.