V čem tedy ten rozdíl, to umění spočívá? Fakt by mě to zajímalo, protože v pythonu už pár let docela intenzivně dělám, java mě živí, a zatím jsem ten zásadní rozdíl ve způsobu vývoje nenašel. Ukaž srovnání na jiném kódu, když veškerý tvůj kód zaplatili klienti a sám pro sebe nic nevyvíjíš.
Pořád nechápu, jak se vyhneš otázkám na typ objektů, když musíš pracovat s jejich API.
Nemám pedagogické nadání, neumím přenést svou zkušenost a ani nevím jestli to jde. Opravdu je to o způsobu uvažování. Když jsem si tu přečetl, jak se někteří lidé snaží Python používat, instinktivně se mi ježily chlupy a běhal mráz po zádech. Celé je to špatně a nedivím se, že se jim Python s tímto způsobem používání příčí.
Je potřeba vyjít ze samotné podstaty dynamického jazyka. A tou podstatou je, že na rozdíl od statického jazyka je datový typ přiřazen hodnotě, nikoliv proměnné. A tihle lidé se snaží v pythonu staticky typovat proměnné, protože neumí pracovat a přemýšlet jinak. Nepracujte s proměnnými, pracujte s hodnotami, dynamicky. Od tohoto paradigmatu odvíjejte návrh programu. Vím snadno se mi to řekne, ale vy nevíte jak, jde to proti vaší dosavadní zkušenosti a já nevím, jak to vysvětlit, když váš pohled na data je statický. Na typ objektu, či spíše rozhraní je dobré se ptát, ale až když ho potřebuješ, není nutné a naopak je kontraproduktivní ho definovat předem a zakazovat proměnné, aby přenášela hodnoty jiných typů. Pak kvůli tomu musíte předělávat půlku programu, když to chcete změnit, přitom stačí lehce upravit příjemce. Aby to fungovalo dobře, je potřeba si inteligentně navrhnout rozhraní, aby bylo pokud možno univerzální a flexibilní, a k tomu je zapotřebí mít zkušenost. Stejně jako ke stanovení vhodného rozvržení kódu a jeho granularity, aby obstál erozi časem.