Динамичните езици нали са много мощни и всичко става много лесно.
Това не предразполага ли и към по-дълбоко затъване ако нагазим в нещо меко и рядко?
Аз например съм самоук питонджия и в свободното време мажа едни неща. Така като гледам съм правил всички простотии, които не трябва да се правят. Като почнем с мега глупостта if isinstance(obj, ...) - където obj го сетвам на специален клас, за да ми се изпълни условието - тази ситуации никога не се повтори т.е. reusability 0
След това се пробвах с if hasattr да проверявам в базовия клас дали наследника е имплементирал дадена функция, за да я извикам. Това обаче предполага, че наследяваш само, за да добавиш функционалност.
И сега съм на последен етап - предавам функции като параметри наляво, надясно - за сега това е най-мързеливото, което съм открил.
Как даге ги правите нещата extendable в тия динамични езици?