> I've become scared of large codebases in dynamic languages.
Fair enough. It seems to me that if an application has high performance demands and is expected to be in service for years, it should eventually be rewritten in a faster language. I find myself designing/developing programs in Python because development is so fast, then rewriting the result in a faster language after the design phase is over.
The rewriting phase is basically a translation, not a redesign. In most cases I know exactly how the program should behave, so there's no design taking place.
I've work (and continue doing it) on quite big and complex projects in Python, and it works really well for that.
Of course, it can depend of the context, but in general I don't think that safety is much more and issue on a dynamic language (and in Python in particular).