DEV Community

Discussion on: Python Zen vs Perl TMTOWTDI

Collapse
 
jafd profile image
Yaroslav Fedevych

The problem with TIMTOWTDI is that it inevitably devolves into developers using all ways.

Get a sizable codebase going, and your 100 dependencies are going to bring in 15 OO frameworks, 3 modules to deal with date and time, 4 async frameworks working "under the hood" and you're left alone to deal with all the overhead and philosophy clashes.

Contrast this with Python where, while there are multiple high-level projects with the same purpose (applications, web frameworks, libraries), there is only one of the "core" concepts, like OO or generators or (since recently) asynchronous programming — and everything is expected to boil down to those and play nice.

A recent example from my own Perl experience is that Devel::NYTProf broke attribute handlers in my codebase. I've spent days chasing a bug that turned out to not be in my own codebase.

"There's More than One Way to Do It" is only good when there is also a boundary to it, past which everything is done in a standard way. Imagine diversity and inclusion on a public road where half of the drivers choose to drive on the right and half on the left.