Proč ten hype okolo Go?

dustin

Re:Proč ten hype okolo Go?
« Odpověď #345 kdy: 04. 09. 2018, 11:27:09 »
je to dobrá praktika v jazycích bez keyword argumentů.

IMO to není dobrá praktika nikdy. Jen z nouze ctnost, když nemám typově bezpečnější způsob.


Kit

Re:Proč ten hype okolo Go?
« Odpověď #346 kdy: 04. 09. 2018, 11:49:33 »
Pokud místo hodnot různých typů uložíš do kolekce polymorfní objekty, tak máš vystaráno.
No samozřejmě, objekty implementující nějaký interface. Jak v tom PHP víš, který interface zrovna daná hashmapa nese, když nemáš něco jako generika?

Třeba tak, že to mám ve stejné třídě a navenek to nijak neprezentuji.

dustin

Re:Proč ten hype okolo Go?
« Odpověď #347 kdy: 04. 09. 2018, 11:55:23 »
Hm, a v té třídě to víš tak, že to prostě víš.

gll

  • ****
  • 429
    • Zobrazit profil
    • E-mail
Re:Proč ten hype okolo Go?
« Odpověď #348 kdy: 04. 09. 2018, 12:05:30 »
Tyhle "fígle" z legacy kódu vyhazujeme roky. A pořád občas narážím na ukládání různých nekompatibilních typů do jedné kolekce a následné rozhodování dle instanceof.... peklo.

IDE umí určit typ z instanceof podmínky. Ve větvi pod instanceof vám nedovolí tu proměnnou použít špatným způsobem.

gll

  • ****
  • 429
    • Zobrazit profil
    • E-mail
Re:Proč ten hype okolo Go?
« Odpověď #349 kdy: 04. 09. 2018, 12:12:42 »
je to dobrá praktika v jazycích bez keyword argumentů.

IMO to není dobrá praktika nikdy. Jen z nouze ctnost, když nemám typově bezpečnější způsob.

zabrání to přehození pořadí parametrů, což je horší chyba než nedodržení formátu slovníku.


Kit

Re:Proč ten hype okolo Go?
« Odpověď #350 kdy: 04. 09. 2018, 12:35:07 »
je to dobrá praktika v jazycích bez keyword argumentů.
IMO to není dobrá praktika nikdy. Jen z nouze ctnost, když nemám typově bezpečnější způsob.
zabrání to přehození pořadí parametrů, což je horší chyba než nedodržení formátu slovníku.

Nejen jejich pořadí, ale pokud je těch parametrů 4 a více, tak se stejně musí do něčeho zabalit. Nabízí se objekty nebo kolekce. Typová bezpečnost je stejně v objektových jazycích jen vlhkým snem.

vv

Re:Proč ten hype okolo Go?
« Odpověď #351 kdy: 04. 09. 2018, 12:37:04 »
a prece to nekdo naprogramoval, vystaci si s interfacema

Což je ekvivalent Javy 1.4, kde všechny kolekce vracely Object a pro použití hodnoty se pak muselo přetypovávat. Všichni co znám jsme to svorně nenáviděli.

Java zavedla generika v Java 5, tj. rok 2004. Takové C++ mělo šablony už v roce 1990 (nebo 1998 pokud za bernou minci berete až ISO).
Go je zrovna v tomto ohledu dvě dekády pozadu. Nic nad čím bychom měli jásat. I Go má totiž svoje silné a slabé stránky a poukazovat na ty slabé není nic špatného.

a neslo o to ze bych hajil neexistenci generik, diskutujici tvrdil ze nejde udelat mapu;)
a kdyz uz se to toci u ty javy, tak java zavedla generika v roce 2004 ale jeste predloni jsem musel na jednom projektu pozivat javu 1.3, to u go je zavadeni novinek do projektu rychlejsi:D

dustin

Re:Proč ten hype okolo Go?
« Odpověď #352 kdy: 04. 09. 2018, 13:01:24 »
Nabízí se objekty nebo kolekce.

U typovaných jazyků se kolekce/mapa pro předávání různých parametrů standardně nenabízí, to je čuňárna, jejíž použití musí být v daném případě hodně ospravedlněné. O tom snad není potřeba diskutovat...

Hodně užitečné jsou pojmenované parametry s defaultní hodnotou ala python, ale samozřejmě s explicitním typem (generiko, interface, třída, něco), který se nějakým způsobem kontroluje ještě před spuštěním a nekorektní nelze spustit (kompilátor, něco). Ty mi v javě chybí dost. A mraky dalších užitečných věcí. Ale přílišná typová svázanost mezi nimi rozhodně není.

Citace
Typová bezpečnost je stejně v objektových jazycích jen vlhkým snem.

??

Kit

Re:Proč ten hype okolo Go?
« Odpověď #353 kdy: 04. 09. 2018, 13:25:54 »
Nabízí se objekty nebo kolekce.
U typovaných jazyků se kolekce/mapa pro předávání různých parametrů standardně nenabízí, to je čuňárna, jejíž použití musí být v daném případě hodně ospravedlněné. O tom snad není potřeba diskutovat...

Zajímavé, předávání kolekcí vidím velmi často a ještě jsou na to jejich autoři hrdí, jak jsou objektoví. Asi jako já :) Je totiž důležité umět s těmi kolekcemi pracovat. Tupé nahrazování datovými objekty s hromadou getterů a setterů není to, co bychom v OOP chtěli.

dustin

Re:Proč ten hype okolo Go?
« Odpověď #354 kdy: 04. 09. 2018, 14:04:18 »
Ty si dělej co chceš, v mnou spravovaném kódu takové neudržovatelné prasárny nebudou. Bohatě stačí ta spousta workaroundů kvůli nedostatkům javy...

Kit

Re:Proč ten hype okolo Go?
« Odpověď #355 kdy: 04. 09. 2018, 14:22:57 »
Ty si dělej co chceš, v mnou spravovaném kódu takové neudržovatelné prasárny nebudou. Bohatě stačí ta spousta workaroundů kvůli nedostatkům javy...

Java přece nemá žádné nedostatky...

Kit

Re:Proč ten hype okolo Go?
« Odpověď #356 kdy: 04. 09. 2018, 14:24:43 »
Ty si dělej co chceš, v mnou spravovaném kódu takové neudržovatelné prasárny nebudou. Bohatě stačí ta spousta workaroundů kvůli nedostatkům javy...

Ty nepoužíváš JSON ani XML? Jejich deserializací vznikne kolekce.

dustin

Re:Proč ten hype okolo Go?
« Odpověď #357 kdy: 04. 09. 2018, 14:25:44 »
Java přece nemá žádné nedostatky...

Kdybys ji používal, věděl bys o nich...

Kit

Re:Proč ten hype okolo Go?
« Odpověď #358 kdy: 04. 09. 2018, 14:34:59 »
Java přece nemá žádné nedostatky...
Kdybys ji používal, věděl bys o nich...

Kdybys chápal ironii...

dustin

Re:Proč ten hype okolo Go?
« Odpověď #359 kdy: 04. 09. 2018, 14:48:15 »
Jen se neboj, já ji chápu. Myslel jsem to zcela vážně, kdybys javu používal, věděl bys, čeho se vyvarovat. A rozhodně bys tu netlačil mapu/dokonce kolekci pro předávání parametrů. I když ve vimu by to asi vyšlo nastejno...