Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: NoTVL 23. 02. 2018, 18:13:08

Název: Přehlednost syntaxe C++
Přispěvatel: NoTVL 23. 02. 2018, 18:13:08
Prosím vás, takovéto příšernosti jsou v C++ běžné?

http://ericniebler.com/2013/07/16/f-algebras-and-c/

Chtěl jsem se naučit C++, ale tohle teda dost odrazuje.
Název: Re:Přehlednost syntaxe C++
Přispěvatel: Sten 23. 02. 2018, 18:41:13
Takhle příšerně vypadá funkcionální programování :P V C++ nemusíte programovat funkcionálně a většina programátorů C++ to moc ani neumí, takže pokud nepíšete nějaký hodně speciální kód (jako zde pro lidi zvyklé psát ve funkcionálních jazycích), tak na něco takového nejspíš ani nenarazíte.
Název: Re:Přehlednost syntaxe C++
Přispěvatel: xul 23. 02. 2018, 19:20:19
Proto si veci co mam pro sebe radsi udelam v C
Název: Re:Přehlednost syntaxe C++
Přispěvatel: Inkvizitor 23. 02. 2018, 19:49:31
Chodí se sem ještě ptát i někdo normální?
Název: Re:Přehlednost syntaxe C++
Přispěvatel: it expert 23. 02. 2018, 19:54:48
A co teprv Boost Phoenix? :o C++-like language in C++ (http://www.boost.org/doc/libs/1_64_0/libs/phoenix/doc/html/phoenix/modules/statement.html)
Název: Re:Přehlednost syntaxe C++
Přispěvatel: x14 23. 02. 2018, 20:24:08
Prosím vás, takovéto příšernosti jsou s autem běžné?
Chtěl jsem se naučit řídit, ale tohle teda dost odrazuje.
Název: Re:Přehlednost syntaxe C++
Přispěvatel: adsfasdfasdfasdf 23. 02. 2018, 20:44:10
Prosím vás, takovéto příšernosti jsou s autem běžné?
Chtěl jsem se naučit řídit, ale tohle teda dost odrazuje.

nemusi s autem delat silene smyky.
Název: Re:Přehlednost syntaxe C++
Přispěvatel: Labrat 24. 02. 2018, 02:18:05
Takhle příšerně vypadá funkcionální programování :P V C++ nemusíte programovat funkcionálně a většina programátorů C++ to moc ani neumí, takže pokud nepíšete nějaký hodně speciální kód (jako zde pro lidi zvyklé psát ve funkcionálních jazycích), tak na něco takového nejspíš ani nenarazíte.
Tohle je ještě hezké, viděl jsem mnohem horší.
Název: Re:Přehlednost syntaxe C++
Přispěvatel: Labrat 24. 02. 2018, 19:42:33
A co teprv Boost Phoenix? :o C++-like language in C++ (http://www.boost.org/doc/libs/1_64_0/libs/phoenix/doc/html/phoenix/modules/statement.html)
Phoenix je cool.
Název: Re:Přehlednost syntaxe C++
Přispěvatel: Jester 07. 03. 2018, 17:56:22
Proto si veci co mam pro sebe radsi udelam v C
C není tak expresivní.
Název: Re:Přehlednost syntaxe C++
Přispěvatel: Kiwi 08. 03. 2018, 00:36:17
Proto si veci co mam pro sebe radsi udelam v C
C není tak expresivní.
A?
Název: Re:Přehlednost syntaxe C++
Přispěvatel: gujgvh 08. 03. 2018, 05:51:32
Proto si veci co mam pro sebe radsi udelam v C
C není tak expresivní.
A?

Ze v C++ kdyz si nejdem jistyvtak si musim danou obladt jazyka nastudovat/osvezit.
v C uz to mam naucene X let a nemeni se, tam si jsem jistejsi.
kvuli tomu sevmi nejvice libi Go.
Název: Re:Přehlednost syntaxe C++
Přispěvatel: František Ryšánek 08. 03. 2018, 06:52:56
Děkuji za zmínku o boost::recursive_wrapper . Zrovna asi předevčírem jsem naznal, že něco takového nevyhnutně potřebuju (zacyklit několik šablon, aby na sebe navzájem odkazovaly) a že v C++ je to normálním způsobem ilegální. I zmastil jsem si takovou věc jednoúčelově na koleně (někde něco jsem obalil do obyčejné třídy, na kterou se dá udělat forward deklarace). Teď vím, že je na to šablona :-D
Název: Re:Přehlednost syntaxe C++
Přispěvatel: Kit 09. 03. 2018, 10:20:35
Občas si v C++ také něco napíši, ale zápis běžných aplikací mě natolik odradil, že se nesnažím v něm programovat profesionálně. Je spousta dalších jazyků, které mi vyhovují víc.
Název: Re:Přehlednost syntaxe C++
Přispěvatel: Honza 09. 03. 2018, 10:57:25
Prosím vás, takovéto příšernosti jsou v C++ běžné?

http://ericniebler.com/2013/07/16/f-algebras-and-c/

Chtěl jsem se naučit C++, ale tohle teda dost odrazuje.

Já jsem spíš takovej Céčkař (co ale postupně přešel na Javu), ale než jsem pracoval s hardcore C++ programátory, tak jsem si i myslel, že C++ celkem umím (vím, co je to třída, objekt, dědičnost, virtuální metoda, výjimka, konstruktor, ...). A pak jsem poznal lidi, co C++ upravdu umí a jeho fíčury aktivně využívají. Prase by se v jejich kódu nevyznalo. Proti tomu zlatej Perl a špagetový kód :-)

Člověk ty krutosti z C++ používat nemusí, pokud nechce, ale jen pokud nemá v týmu nějakého C++ machra.
Název: Re:Přehlednost syntaxe C++
Přispěvatel: Jester 09. 03. 2018, 11:34:06
než jsem pracoval s hardcore C++ programátory, tak jsem si i myslel, že C++ celkem umím (vím, co je to třída, objekt, dědičnost, virtuální metoda, výjimka, konstruktor, ...)
Tak to je se vším, člověk se naučí naprosté základy a myslí si, že je odborník. V literatuře se tomu říká "Mount Stupid".
Název: Re:Přehlednost syntaxe C++
Přispěvatel: Kiwi 09. 03. 2018, 11:44:48
Prosím vás, takovéto příšernosti jsou v C++ běžné?

http://ericniebler.com/2013/07/16/f-algebras-and-c/

Chtěl jsem se naučit C++, ale tohle teda dost odrazuje.

Já jsem spíš takovej Céčkař (co ale postupně přešel na Javu), ale než jsem pracoval s hardcore C++ programátory, tak jsem si i myslel, že C++ celkem umím (vím, co je to třída, objekt, dědičnost, virtuální metoda, výjimka, konstruktor, ...). A pak jsem poznal lidi, co C++ upravdu umí a jeho fíčury aktivně využívají. Prase by se v jejich kódu nevyznalo. Proti tomu zlatej Perl a špagetový kód :-)

Člověk ty krutosti z C++ používat nemusí, pokud nechce, ale jen pokud nemá v týmu nějakého C++ machra.
Ale s nějakým hardcore Java-machrem jsi ještě tu čest asi neměl, že... :)
Název: Re:Přehlednost syntaxe C++
Přispěvatel: Jester 09. 03. 2018, 11:56:40
Prosím vás, takovéto příšernosti jsou v C++ běžné?

http://ericniebler.com/2013/07/16/f-algebras-and-c/

Chtěl jsem se naučit C++, ale tohle teda dost odrazuje.
Já jsem spíš takovej Céčkař (co ale postupně přešel na Javu), ale než jsem pracoval s hardcore C++ programátory, tak jsem si i myslel, že C++ celkem umím (vím, co je to třída, objekt, dědičnost, virtuální metoda, výjimka, konstruktor, ...). A pak jsem poznal lidi, co C++ upravdu umí a jeho fíčury aktivně využívají. Prase by se v jejich kódu nevyznalo. Proti tomu zlatej Perl a špagetový kód :-)

Člověk ty krutosti z C++ používat nemusí, pokud nechce, ale jen pokud nemá v týmu nějakého C++ machra.
Ale s nějakým hardcore Java-machrem jsi ještě tu čest asi neměl, že... :)
Nebo Java magorem.
Název: Re:Přehlednost syntaxe C++
Přispěvatel: Honza 09. 03. 2018, 15:00:44
Prosím vás, takovéto příšernosti jsou v C++ běžné?

http://ericniebler.com/2013/07/16/f-algebras-and-c/

Chtěl jsem se naučit C++, ale tohle teda dost odrazuje.

Já jsem spíš takovej Céčkař (co ale postupně přešel na Javu), ale než jsem pracoval s hardcore C++ programátory, tak jsem si i myslel, že C++ celkem umím (vím, co je to třída, objekt, dědičnost, virtuální metoda, výjimka, konstruktor, ...). A pak jsem poznal lidi, co C++ upravdu umí a jeho fíčury aktivně využívají. Prase by se v jejich kódu nevyznalo. Proti tomu zlatej Perl a špagetový kód :-)

Člověk ty krutosti z C++ používat nemusí, pokud nechce, ale jen pokud nemá v týmu nějakého C++ machra.
Ale s nějakým hardcore Java-machrem jsi ještě tu čest asi neměl, že... :)

Jo, to je taky hrůza :-) Pokročilé C++ a java frameworky podle mě navrhoval stejný typ lidí. Je to sice úplně jinačí, ale nečitelné je to naprosto stejně. V zásadě to všechno jsou nebo byli geniální programátoři, ale při tom cvoci. Nejlepší kód je samozřejmě ve velmi lehkém lehkém OOP bez všech podobných hrůz, ale to těmhle géniům nevysvětlíte.
Název: Re:Přehlednost syntaxe C++
Přispěvatel: Jester 09. 03. 2018, 15:30:28
Prosím vás, takovéto příšernosti jsou v C++ běžné?

http://ericniebler.com/2013/07/16/f-algebras-and-c/

Chtěl jsem se naučit C++, ale tohle teda dost odrazuje.

Já jsem spíš takovej Céčkař (co ale postupně přešel na Javu), ale než jsem pracoval s hardcore C++ programátory, tak jsem si i myslel, že C++ celkem umím (vím, co je to třída, objekt, dědičnost, virtuální metoda, výjimka, konstruktor, ...). A pak jsem poznal lidi, co C++ upravdu umí a jeho fíčury aktivně využívají. Prase by se v jejich kódu nevyznalo. Proti tomu zlatej Perl a špagetový kód :-)

Člověk ty krutosti z C++ používat nemusí, pokud nechce, ale jen pokud nemá v týmu nějakého C++ machra.
Ale s nějakým hardcore Java-machrem jsi ještě tu čest asi neměl, že... :)

Jo, to je taky hrůza :-) Pokročilé C++ a java frameworky podle mě navrhoval stejný typ lidí. Je to sice úplně jinačí, ale nečitelné je to naprosto stejně. V zásadě to všechno jsou nebo byli geniální programátoři, ale při tom cvoci. Nejlepší kód je samozřejmě ve velmi lehkém lehkém OOP bez všech podobných hrůz, ale to těmhle géniům nevysvětlíte.
Proto se s těmi knihovnami pracuje jako s černými skříňkami, protože běžný programátor to nepochopí ani za Boha.
Název: Re:Přehlednost syntaxe C++
Přispěvatel: Kiwi 09. 03. 2018, 16:35:26
Prosím vás, takovéto příšernosti jsou v C++ běžné?

http://ericniebler.com/2013/07/16/f-algebras-and-c/

Chtěl jsem se naučit C++, ale tohle teda dost odrazuje.

Já jsem spíš takovej Céčkař (co ale postupně přešel na Javu), ale než jsem pracoval s hardcore C++ programátory, tak jsem si i myslel, že C++ celkem umím (vím, co je to třída, objekt, dědičnost, virtuální metoda, výjimka, konstruktor, ...). A pak jsem poznal lidi, co C++ upravdu umí a jeho fíčury aktivně využívají. Prase by se v jejich kódu nevyznalo. Proti tomu zlatej Perl a špagetový kód :-)

Člověk ty krutosti z C++ používat nemusí, pokud nechce, ale jen pokud nemá v týmu nějakého C++ machra.
Ale s nějakým hardcore Java-machrem jsi ještě tu čest asi neměl, že... :)

Jo, to je taky hrůza :-) Pokročilé C++ a java frameworky podle mě navrhoval stejný typ lidí. Je to sice úplně jinačí, ale nečitelné je to naprosto stejně. V zásadě to všechno jsou nebo byli geniální programátoři, ale při tom cvoci. Nejlepší kód je samozřejmě ve velmi lehkém lehkém OOP bez všech podobných hrůz, ale to těmhle géniům nevysvětlíte.
Říká se, že genialita je v jednoduchosti. To v těchto případech zrovna moc splněno není. ;)
Ona je to obecně asi nějaká forma kolektivního masochismu, že zrovna C++ a Java jsou nejpoužívanějšími jazyky.
Název: Re:Přehlednost syntaxe C++
Přispěvatel: Inkvizitor 09. 03. 2018, 16:43:22
Říká se, že genialita je v jednoduchosti. To v těchto případech zrovna moc splněno není. ;)
Ona je to obecně asi nějaká forma kolektivního masochismu, že zrovna C++ a Java jsou nejpoužívanějšími jazyky.

Jenom pro zajimavost, ktere jazyky by podle Tebe mely byt na vrcholu misto C++ a Javy a kdy se to melo prihodit?
Název: Re:Přehlednost syntaxe C++
Přispěvatel: Kit 09. 03. 2018, 17:21:13
Říká se, že genialita je v jednoduchosti. To v těchto případech zrovna moc splněno není. ;)
Ona je to obecně asi nějaká forma kolektivního masochismu, že zrovna C++ a Java jsou nejpoužívanějšími jazyky.

Souhlas. C++ má na můj vkus příliš mnoho syntaktických pravidel a používá mnoho nepřehledných jednoznakových symbolů. Java či PHP jsou mnohem čitelnější. Ještě lepší je Lisp, ale to je jiná kategorie.
Název: Re:Přehlednost syntaxe C++
Přispěvatel: Jester 09. 03. 2018, 18:12:59
Prosím vás, takovéto příšernosti jsou v C++ běžné?

http://ericniebler.com/2013/07/16/f-algebras-and-c/

Chtěl jsem se naučit C++, ale tohle teda dost odrazuje.

Já jsem spíš takovej Céčkař (co ale postupně přešel na Javu), ale než jsem pracoval s hardcore C++ programátory, tak jsem si i myslel, že C++ celkem umím (vím, co je to třída, objekt, dědičnost, virtuální metoda, výjimka, konstruktor, ...). A pak jsem poznal lidi, co C++ upravdu umí a jeho fíčury aktivně využívají. Prase by se v jejich kódu nevyznalo. Proti tomu zlatej Perl a špagetový kód :-)

Člověk ty krutosti z C++ používat nemusí, pokud nechce, ale jen pokud nemá v týmu nějakého C++ machra.
Ale s nějakým hardcore Java-machrem jsi ještě tu čest asi neměl, že... :)

Jo, to je taky hrůza :-) Pokročilé C++ a java frameworky podle mě navrhoval stejný typ lidí. Je to sice úplně jinačí, ale nečitelné je to naprosto stejně. V zásadě to všechno jsou nebo byli geniální programátoři, ale při tom cvoci. Nejlepší kód je samozřejmě ve velmi lehkém lehkém OOP bez všech podobných hrůz, ale to těmhle géniům nevysvětlíte.
Říká se, že genialita je v jednoduchosti. To v těchto případech zrovna moc splněno není. ;)
Tady jde o "Mount Stupid" efekt, konkrétně to, že běžný/průměrný programátor (z definice většina) není schopen rozpoznat, co je jednoduché.
Název: Re:Přehlednost syntaxe C++
Přispěvatel: Labrat 09. 03. 2018, 20:46:55
Občas si v C++ také něco napíši, ale zápis běžných aplikací mě natolik odradil, že se nesnažím v něm programovat profesionálně. Je spousta dalších jazyků, které mi vyhovují víc.
Například?
Název: Re:Přehlednost syntaxe C++
Přispěvatel: xul 09. 03. 2018, 20:50:00
Občas si v C++ také něco napíši, ale zápis běžných aplikací mě natolik odradil, že se nesnažím v něm programovat profesionálně. Je spousta dalších jazyků, které mi vyhovují víc.
Například?

Vsadim na python, javu.
Název: Re:Přehlednost syntaxe C++
Přispěvatel: Labrat 09. 03. 2018, 20:55:52
Občas si v C++ také něco napíši, ale zápis běžných aplikací mě natolik odradil, že se nesnažím v něm programovat profesionálně. Je spousta dalších jazyků, které mi vyhovují víc.
Například?

Vsadim na python, javu.
Haskell
Název: Re:Přehlednost syntaxe C++
Přispěvatel: Jester 10. 03. 2018, 03:13:43
Říká se, že genialita je v jednoduchosti. To v těchto případech zrovna moc splněno není. ;)
Ona je to obecně asi nějaká forma kolektivního masochismu, že zrovna C++ a Java jsou nejpoužívanějšími jazyky.

Souhlas. C++ má na můj vkus příliš mnoho syntaktických pravidel a používá mnoho nepřehledných jednoznakových symbolů. Java či PHP jsou mnohem čitelnější. Ještě lepší je Lisp, ale to je jiná kategorie.
Vrchol nepřehlednosti je kód v odkazu prvního postu, sice to je matematicky supermeganádhera, ale implementace v C++ je peklo. Přitom v takovém Pythonu to jde krátce a přehledně. Ovšem ten je dynamicky typovaný, Java ani C# tohle neumí.
Název: Re:Přehlednost syntaxe C++
Přispěvatel: Ondřej Novák 10. 03. 2018, 17:01:40
V C++ se dá psát i přehledně. Zejména pokud člověk vyvíjí knihovny o kterých se předpokládá, že je budou používat jiní, se snažím navrhovat zejména interface tak, aby to bylo vše čitelné. Ale je to jako s UI, čili je to věc názoru, to co jednomu přijde jako přehledné, druhý se v tom nevyzná.

Já mám radši ukecanejší kód, hlavně když je hned vidět, co to dělá.

Knihovna od matematika bude napsaná tak, aby jí rozuměli matematici a nematematik zřejmě bude tápat. Nelze z toho vinit C++. Tenhle jazyk má dost širokou paletu vyjadřovacích nástrojů.

Název: Re:Přehlednost syntaxe C++
Přispěvatel: Kit 10. 03. 2018, 17:30:12
Občas si v C++ také něco napíši, ale zápis běžných aplikací mě natolik odradil, že se nesnažím v něm programovat profesionálně. Je spousta dalších jazyků, které mi vyhovují víc.
Například?

PHP, Fortran, Lisp, AWK, Go, ...
Název: Re:Přehlednost syntaxe C++
Přispěvatel: Kiwi 10. 03. 2018, 17:44:28
Říká se, že genialita je v jednoduchosti. To v těchto případech zrovna moc splněno není. ;)
Ona je to obecně asi nějaká forma kolektivního masochismu, že zrovna C++ a Java jsou nejpoužívanějšími jazyky.

Jenom pro zajimavost, ktere jazyky by podle Tebe mely byt na vrcholu misto C++ a Javy a kdy se to melo prihodit?
To se dá těžko říct. Ale čekal bych, že když chtějí lidé programovat objektově, tak k tomu budou používat objektové jazyky. Takže bych na vrcholu čekal třeba něco jako Objective C.

Akorát je otázka, zda lidé chtějí opravdu objektově programovat, nebo jen tak napůl. Třeba Java, která byla vymýšlena jako nový jazyk, ale přesto její tvůrci zvolili hybridní cestu C++. Takže pokud lidé chtějí ten styl OOP jako má C++, tak pak musejí akceptovat i ty složitosti, které to s sebou nese a které podle mě víc než bohatě eliminují výhody, jež OOP přináší, protože program se stává nepřehledným, to paradigma pak práci přidělává než aby ji šetřilo, je třeba mít na paměti spoustu pravidel a idiomů, které člověka odvádějí od jádra problému a nutí ho přemýšlet nad tím, jak to vlastně napsat.

Říká se, že genialita je v jednoduchosti. To v těchto případech zrovna moc splněno není. ;)
Ona je to obecně asi nějaká forma kolektivního masochismu, že zrovna C++ a Java jsou nejpoužívanějšími jazyky.

Souhlas. C++ má na můj vkus příliš mnoho syntaktických pravidel a používá mnoho nepřehledných jednoznakových symbolů. Java či PHP jsou mnohem čitelnější. Ještě lepší je Lisp, ale to je jiná kategorie.
Vrchol nepřehlednosti je kód v odkazu prvního postu, sice to je matematicky supermeganádhera, ale implementace v C++ je peklo. Přitom v takovém Pythonu to jde krátce a přehledně. Ovšem ten je dynamicky typovaný, Java ani C# tohle neumí.
To je právě přesně ono. V dynamicky typovaných jazycích se snad cokoli napíše jednodušeji a přehledněji - pokud jde o objektový návrh. Jenže je jim vytýkána absence možnosti odchycení velkého množství chyb kompilátorem. Ale mašinérie, která v tom staticky typovaném jazyku musí být, aby se v něm dalo nějak objektově programovat, je obludná a kód, který se kvůli tomu, aby ta kontrola fungovala, musí psát, je samotný mnohem náchylnější na zavlečení chyby - právě protože je tam vlastně jen kvůli věcem okolo a ne kvůli problému samému.

Je to asi věc názoru, ale jsem přesvědčen o tom, že jedině kód, který nenapíšu, nemůže být zabuggovaný. Takže jednoduchost zápisu algoritmu bych řadil výš než typovou kontrolu. Na druhou stranu, pokud někdo preferuje statickou typovou kontrolu, tak by měl zvážit neobjektový jazyk, protože výhody objektového paradigmatu se mohou plně projevit až v dynamicky typovaném prostředí. Ono je to vidět i na té Javě, kdy příklon k dynamičnosti je očividný, ale ta koule jejího hlavního inspiračního zdroje je bohužel příliš těžká - dodatečné zavedení generik dokládá, že je dokonce ještě těžší, než by se na první pohled mohla zdát.

Stručně - za problém C++ a Javy považuji, že se snaží skloubit neskloubitelné.
Název: Re:Přehlednost syntaxe C++
Přispěvatel: Kit 10. 03. 2018, 18:09:07
Takže jednoduchost zápisu algoritmu bych řadil výš než typovou kontrolu. Na druhou stranu, pokud někdo preferuje statickou typovou kontrolu, tak by měl zvážit neobjektový jazyk, protože výhody objektového paradigmatu se mohou plně projevit až v dynamicky typovaném prostředí. Ono je to vidět i na té Javě, kdy příklon k dynamičnosti je očividný, ale ta koule jejího hlavního inspiračního zdroje je bohužel příliš těžká - dodatečné zavedení generik dokládá, že je dokonce ještě těžší, než by se na první pohled mohla zdát.

S tím souhlasím. Mnoho vývojářů stejně OOP už dávno opustilo právě kvůli vnitřní potřebě statického typování. V jejich aplikacích sice nalézám dědičnost (často použitou zcela nesmyslně), ale zapouzdření a polymorfismus abych lupou hledal.
Název: Re:Přehlednost syntaxe C++
Přispěvatel: Jester 10. 03. 2018, 19:23:49
To je právě přesně ono. V dynamicky typovaných jazycích se snad cokoli napíše jednodušeji a přehledněji - pokud jde o objektový návrh. Jenže je jim vytýkána absence možnosti odchycení velkého množství chyb kompilátorem. Ale mašinérie, která v tom staticky typovaném jazyku musí být, aby se v něm dalo nějak objektově programovat, je obludná
Tohle pravda není, protože i v jazyce dynamickém (à la Smalltalk nebo to ObjC) jde udělat typová kontrola včetně generik apod. ObjC to tak má, dokonce i varianci u generických typů, a šly by snadno přidat i HKT. Typová kontrola má odchytit chyby, které lze odhalit v době překladu, a těch je požehnaně, dynamický dispatch to nijak nevylučuje. Go je například typované v podstatě staticky, ale jeho vnitřní implementace interfaců by snadno umožnila věci typu doesNotUnderstand (jiná věc je, že Pike je proti, ale technicky k tomu mají našlápnuto).

Trochu zklamáním je, že ani Swift nepřevzal to dobré z ObjC :(
Název: Re:Přehlednost syntaxe C++
Přispěvatel: Jester 10. 03. 2018, 19:29:16
Takže jednoduchost zápisu algoritmu bych řadil výš než typovou kontrolu. Na druhou stranu, pokud někdo preferuje statickou typovou kontrolu, tak by měl zvážit neobjektový jazyk, protože výhody objektového paradigmatu se mohou plně projevit až v dynamicky typovaném prostředí. Ono je to vidět i na té Javě, kdy příklon k dynamičnosti je očividný, ale ta koule jejího hlavního inspiračního zdroje je bohužel příliš těžká - dodatečné zavedení generik dokládá, že je dokonce ještě těžší, než by se na první pohled mohla zdát.
Mnoho vývojářů stejně OOP už dávno opustilo právě kvůli vnitřní potřebě statického typování. V jejich aplikacích sice nalézám dědičnost (často použitou zcela nesmyslně), ale zapouzdření a polymorfismus abych lupou hledal.
1) OOP se s typovou kontrolou nevylučuje, jsou to ortogonální koncepty.
2) Dědičnost je v javovské formě naprosto zbytečná (proto se "používá nesmyslně"), jednoduchost kódu stojí a padá s polymorfismem. Go trefilo implementaci polymorfismu téměř dokonale (podobně jako GC), ale zase mu chybí jiné věci...
Název: Re:Přehlednost syntaxe C++
Přispěvatel: Jester 10. 03. 2018, 19:46:00
Říká se, že genialita je v jednoduchosti. To v těchto případech zrovna moc splněno není. ;)
Ona je to obecně asi nějaká forma kolektivního masochismu, že zrovna C++ a Java jsou nejpoužívanějšími jazyky.
Jenom pro zajimavost, ktere jazyky by podle Tebe mely byt na vrcholu misto C++ a Javy a kdy se to melo prihodit?
To se dá těžko říct. Ale čekal bych, že když chtějí lidé programovat objektově, tak k tomu budou používat objektové jazyky. Takže bych na vrcholu čekal třeba něco jako Objective C.
Jinak to OOP není žádná samospásná supertechnologie. Ještě si živě pamatuju, jak se kdysi dávno pár Skotů v čele s Kowalskim spolčilo s Quebečany a začli prosazovat formální logiku jako univerzální programovací jazyk. Když to nevyšlo, tak pár jiných Skotů začlo prosazovat teorii kategorií jako ten nejlepší způsob psaní algoritmů. Výsledek známe. V době nedávné pár nadšenců "objevilo", že se nejlépe programuje v homotopické teorii typů (viz např. Idris). Nevím, nakolik se ujme, ale spíš to nevypadá. Jestli on ten problém nebude spíš v lidech...
Název: Re:Přehlednost syntaxe C++
Přispěvatel: Kit 10. 03. 2018, 20:01:00
Jinak to OOP není žádná samospásná supertechnologie.

OOP je hlavně metodika, kterou se programovací jazyky snaží nebo nesnaží implementovat ve formě nějakých syntaktických pravidel. Objektově se dá programovat třeba v assembleru - stejně jako v Javě strukturovaně či špagetově. I v tom C++ se dá programovat objektově, když se vývojář snaží.
Název: Re:Přehlednost syntaxe C++
Přispěvatel: Jester 10. 03. 2018, 20:03:53
Jinak to OOP není žádná samospásná supertechnologie.

OOP je hlavně metodika, kterou se programovací jazyky snaží nebo nesnaží implementovat ve formě nějakých syntaktických pravidel. Objektově se dá programovat třeba v assembleru - stejně jako v Javě strukturovaně či špagetově. I v tom C++ se dá programovat objektově, když se vývojář snaží.
Jako každá metodika se musí používat s rozumem.
Název: Re:Přehlednost syntaxe C++
Přispěvatel: D.A. Tiger 10. 03. 2018, 20:04:40
V C++ se dá psát i přehledně. Zejména pokud člověk vyvíjí knihovny o kterých se předpokládá, že je budou používat jiní, se snažím navrhovat zejména interface tak, aby to bylo vše čitelné. Ale je to jako s UI, čili je to věc názoru, to co jednomu přijde jako přehledné, druhý se v tom nevyzná.

Já mám radši ukecanejší kód, hlavně když je hned vidět, co to dělá.

Knihovna od matematika bude napsaná tak, aby jí rozuměli matematici a nematematik zřejmě bude tápat. Nelze z toho vinit C++. Tenhle jazyk má dost širokou paletu vyjadřovacích nástrojů.

+1 Z cele diskuze snad jediny rozumny nazor.
Název: Re:Přehlednost syntaxe C++
Přispěvatel: balki 10. 03. 2018, 20:08:35
Naucte sa rovno Haskell. Tam tie zastarale algolove konstrukcie nie su.
Název: Re:Přehlednost syntaxe C++
Přispěvatel: D.A. Tiger 10. 03. 2018, 20:11:25
Naucte sa rovno Haskell. Tam tie zastarale algolove konstrukcie nie su.

A nebo Brainfuck. Ten jim treba prijde prehlednejsi nez C++ :-D
Název: Re:Přehlednost syntaxe C++
Přispěvatel: Kit 10. 03. 2018, 20:14:06
Jinak to OOP není žádná samospásná supertechnologie.

OOP je hlavně metodika, kterou se programovací jazyky snaží nebo nesnaží implementovat ve formě nějakých syntaktických pravidel. Objektově se dá programovat třeba v assembleru - stejně jako v Javě strukturovaně či špagetově. I v tom C++ se dá programovat objektově, když se vývojář snaží.
Jako každá metodika se musí používat s rozumem.

To zní hodně demagogicky. Také se nedržím striktně OOP, protože to v obvyklých jazycích ani nejde. Snažím se však maximálně využívat jeho výhod, aby kód byl krátký, rychlý a srozumitelný.
Název: Re:Přehlednost syntaxe C++
Přispěvatel: Jester 10. 03. 2018, 20:21:03
Naucte sa rovno Haskell. Tam tie zastarale algolove konstrukcie nie su.
Haskell je jen ošklivý zápis matematické hatmatilky.
Název: Re:Přehlednost syntaxe C++
Přispěvatel: Jester 10. 03. 2018, 20:21:56
Jinak to OOP není žádná samospásná supertechnologie.

OOP je hlavně metodika, kterou se programovací jazyky snaží nebo nesnaží implementovat ve formě nějakých syntaktických pravidel. Objektově se dá programovat třeba v assembleru - stejně jako v Javě strukturovaně či špagetově. I v tom C++ se dá programovat objektově, když se vývojář snaží.
Jako každá metodika se musí používat s rozumem.

To zní hodně demagogicky. Také se nedržím striktně OOP, protože to v obvyklých jazycích ani nejde. Snažím se však maximálně využívat jeho výhod, aby kód byl krátký, rychlý a srozumitelný.
Ono to jde, ale musí se to umět.