Frustrace ze stavu mainstreamových programovacích jazyků

ronaldknud

Zdravím, mám konkrétní otázku, ale nejdřív motivace. Všichni mají plnou hubu keců o DRY, KISS, LSP apod., ale když přijde na rozumnou implementaci, jazyky jen hážou klacky od nohy. Čím dal víc mě vytáčí, že v jazycích jako Java, C# nebo C++ (nebo novějších jako Go) neexistuje analogie k typovým třídám, čímž je vývojář nucen k opakování (redundanci) kódu (což je velké fuj). Takže - jak řešíte generický ad hoc polymorfismus v OO jazyce bez typových tříd (beru OO obecně, předpokládají se rozhraní, dědičnost ne)? V Go to jde částečně přes typové aliasy, jen se pak vyžaduje explicitní přetypováváni, což zbytečně prodlužuje a znepřehledňuje kód. Swift by se mohl dostat blízko, až zavedou plánovaný operátor ~=, ale ten zas mimo macOS/iOS není moc schůdný (verze pro Linux zatím hapruje).

P.S. Dynamické jazyky tento problém nemají, proto jsou v kontextu této diskuze irelevantní.


ava

Re:Frustrace ze stavu mainstreamových programovacích jazyků
« Odpověď #1 kdy: 18. 08. 2017, 13:37:51 »
Resim to tak ze pouzivam OO jazyk s podporou typovych trid - Scalu.

ijfcvewojo

Re:Frustrace ze stavu mainstreamových programovacích jazyků
« Odpověď #2 kdy: 18. 08. 2017, 13:40:46 »
To jsou starosti...

Buď rád, že nemusíš řešit error handling pomocí On Error GoTo ErrorHandler

JS

Re:Frustrace ze stavu mainstreamových programovacích jazyků
« Odpověď #3 kdy: 18. 08. 2017, 14:00:07 »
Ja to resim tak, ze se snazim co nejvic lidi premluvit, aby se naucili Haskell, ale to jsi asi nechtel slyset. :-)

Pokud ti to tak vadi, jedina sance asi je, najit si praci v jazyce, ktery tim problemem netrpi (Haskell, Scala) nebo nektery z dynamicky typovanych jazyku.

Aoidhghean

Re:Frustrace ze stavu mainstreamových programovacích jazyků
« Odpověď #4 kdy: 18. 08. 2017, 14:08:11 »
Ja to resim tak, ze se snazim co nejvic lidi premluvit, aby se naucili Haskell
Toto by byl ideální stav, záhadou mi ovšem je, proč tvůrci "velkých" OO jazyků (Java, C*, ...) takovou věc, co by jejich jazyk posunula kvalitativně o řád výš, ignorují.


Aoidhghean

Re:Frustrace ze stavu mainstreamových programovacích jazyků
« Odpověď #5 kdy: 18. 08. 2017, 14:09:00 »
Buď rád, že nemusíš řešit error handling pomocí On Error GoTo ErrorHandler
Na chyby jsou monády  ;D

Radovan.

Re:Frustrace ze stavu mainstreamových programovacích jazyků
« Odpověď #6 kdy: 18. 08. 2017, 14:27:59 »
Buď rád, že nemusíš řešit error handling pomocí On Error GoTo ErrorHandler
GW-Basic, to už se dneska moc nevidí ;D

Honza

Re:Frustrace ze stavu mainstreamových programovacích jazyků
« Odpověď #7 kdy: 18. 08. 2017, 14:33:55 »
Já to řeším tak, že se snažím co nejvíce lidem vysvětlit, ať si nestěžují, když zároveň chtějí u svého programovacího jazyka zůstat.

Kate

Re:Frustrace ze stavu mainstreamových programovacích jazyků
« Odpověď #8 kdy: 18. 08. 2017, 14:35:13 »
Typové třídy neznám (ale časem se chci mrknout na Haskell, takže se k nim nejspíš dopracuji), ale jak si vedou v porovnání s Traity v Rustu? Obecně jsou mi prvky funkcionálního programování v tom jazyku velmi sympatické.

http://science.raphael.poss.name/rust-for-functional-programmers.html#traits-rust-s-type-classes

Lemming

Re:Frustrace ze stavu mainstreamových programovacích jazyků
« Odpověď #9 kdy: 18. 08. 2017, 14:36:57 »
Pokud ti to tak vadi, jedina sance asi je, najit si praci v jazyce, ktery tim problemem netrpi (Haskell, Scala) nebo nektery z dynamicky typovanych jazyku.

A pak je samozřejmě možnost naučit se programovat, přestat prasit a najednou se v těch "hrozných" jazycích programuje skvěle. Ale to je staromódní přístup, který se dneska už moc nenosí.

ijfcvewojo

Re:Frustrace ze stavu mainstreamových programovacích jazyků
« Odpověď #10 kdy: 18. 08. 2017, 15:23:49 »
Buď rád, že nemusíš řešit error handling pomocí On Error GoTo ErrorHandler
GW-Basic, to už se dneska moc nevidí ;D
Nene, prachobyčejné VBA 6.0...

Aoidhghean

Re:Frustrace ze stavu mainstreamových programovacích jazyků
« Odpověď #11 kdy: 18. 08. 2017, 15:39:13 »
Pokud ti to tak vadi, jedina sance asi je, najit si praci v jazyce, ktery tim problemem netrpi (Haskell, Scala) nebo nektery z dynamicky typovanych jazyku.

A pak je samozřejmě možnost naučit se programovat, přestat prasit a najednou se v těch "hrozných" jazycích programuje skvěle. Ale to je staromódní přístup, který se dneska už moc nenosí.
Prasit se musí, když jazyk takovou intuitivní a nadmíru užitečnou vlastnost nepodporuje.

gll

Re:Frustrace ze stavu mainstreamových programovacích jazyků
« Odpověď #12 kdy: 18. 08. 2017, 16:13:23 »
Javascript + Flow je IMHO dostatečný mainstream.

Re:Frustrace ze stavu mainstreamových programovacích jazyků
« Odpověď #13 kdy: 18. 08. 2017, 18:10:02 »
Buď rád, že nemusíš řešit error handling pomocí On Error GoTo ErrorHandler
GW-Basic, to už se dneska moc nevidí ;D
Nene, prachobyčejné VBA 6.0...

Jj, zlatý vyžužlal bejsyk!

Radovan.

Re:Frustrace ze stavu mainstreamových programovacích jazyků
« Odpověď #14 kdy: 18. 08. 2017, 18:32:56 »
Kdepak vyžužlal, koukej: http://www.antonis.de/qbebooks/gwbasman/onerror.html
Ale nebyl to zase úplně špatný soft, v NASA tím dokonce řídili robota na sváření raket!