Oczywiście w Pythonie można przyjąć postawę defensywną (mypy+adnotacje, rzucanie własnych wyjątków, kontrakty pre/post, układanie kodu w pierwszej kolejności pod testy, no i głównie kodowanie logiki za pomocą klas) i zapewne czasem jest to jedyne wyjście jeśli pracuje się jak małpa, wśród małp na polu minowym. Typowo obawa przed bugami oraz coraz trudniejszym utrzymaniem kodu sprawia, że przypadkowy programista widzi jedynie opcję w której pythona zatopia się w betonie, aby uzyskać twór chociaż trochę zbliżony do javy/c#.
Tego typu motyw ma ten plus, że w pracy można łatwo innym osobom pokazać jak wiele w ogóle umiemy, jak ciężko pracujemy itp. Ale nic poza tym! Wydaje mi się, że największą wadą Pythona jest to, że to nie jest język pod inżyniera stworzony. Tutaj nie ma oszałamiającej wydajności, no i też wspomniane próby betonu zbyt dobrze nie wypadają.
Ze swojej strony chciałbym tylko dodać, że to co jednym nie leży drugim jak najbardziej odpowiada, i tutaj kilka uwag z mojej strony:
Znam kilka osób, które piszą wyjątkowo dobry kod w pythonie i jednocześnie ciekawy zbieg okoliczności: żadna z tych osób nie kończyła studiów IT, natomiast każda z tych osób programowała kilka lat w innych językach + w dużym stopniu jest bardziej humanistą niż ścisłowcem.
Myślę, że w Pythonie bardziej zwraca się postawa, gdy piszesz projekt tak jakbyś chciał stworzyć intrygującą książkę. To jest dobry język, gdy ważysz słowa, gdy skupiasz uwagę na intencjach, gdy zwacasz uwagę na kontekst i odpowiednio kalkulujesz ryzyko związane z poziomem abstrakcji. No i najlepiej jest jak nie ściemniasz i nie traktujesz czytelnika swego kodu jak głupca :-)
Python powinien sprzedawać się nie tylko jako prosty język (w sensie łatwy na start), ale również jako język, który umożliwia pisanie prostego i przejrzystego oprogramowania. To jest ogromna różnica, i łatwo ją zobrazować. Dla przykładu w JavaScript początki są banalne, a im dalej w las to prawdziwa sztuka pisać dobry kod.
Pisanie kodu w pythonie ukształtowało styl mojego kodu. Na początku miałem głównie klasy, potem z czasem rozdrabniałem je na mniejsze, a potem z czasem okazywało się, że najlepsze klasy to takie, które mają jednoznaczną rolę, a ich interejs obejmuje nie więcej niż jedną czy dwie metody. Potem wychodziło, że 90% tych klas lepiej mogę zapisać jako funkcję, funkcję wyższego rzędu, domknięcie, dekorator, kontekst manager czy generator.
Myślę, że z punktu samego pisania kodu Python to udany mix uproszczonego lispa i javy w jednym. Dzięki pythonowi doceniłem programowanie w lisp :-)
Python to język super dla osób, ktore lubią uczyć się poprzez eksplorację. Python ma wiele bibliotek, z różnych obszarów więc poza typowym rzemiosłem można wynieść wiele wiedzy i nowych umiejętności z innych dziedzin.
Life is short, use python :-)