Interesting Quote

Levi Pearson levi at
Fri Aug 12 11:02:38 MDT 2005

On Aug 12, 2005, at 10:05 AM, Jonathan Ellis wrote:

> On Fri, 12 Aug 2005 09:51:04 -0600, "Hans Fugal" <hans at>  
> said:
>> Leverage your language/API design such that things are so easy it  
>> seems
>> like magic. Perl 6 looks like a good language.
> Have you actually read the Apocalypses?
> Perl5 has conclusively demonstrated that TMTOWTDI is a horrible
> principle to design a language around, but Larry & co don't seem to  
> have
> picked up on that.

Perl is optimized for single developers, and maybe small, tight-knit  
groups.  It lets a lone programmer produce code that does complex  
things very quickly and easily.  Thus, it's an ideal tool for system  
administrators.  It's also incredibly flexible, which is definitely a  
plus in a growing and changing discipline.  When a new programming  
practice or paradigm is introduced, flexible languages are more  
easily able to adopt it than others.

TMTOWTDI is part of the single-developer bias of perl.  This does  
not, however, make it automatically bad for large group projects.  It  
does, however, require that discipline external to the language is  
imposed on the group and documented/enforced.  This is similar in  
some ways to the difference between statically and dynamically typed  
languages.  Static typing is a discipline imposed by the language,  
but a similar discipline must be eventually followed by users of a  
dynamically-typed language, it just has to be enforced by other means.

C++ has something of the TMTOWTDI philosophy as well.  You want  
polymorphism?  Well, you can get it through the object oriented  
subsystem.  You can also get it through the generic programming  
mechanism (templates).  This creates issues for C++ development in  
groups, but it can be worked around by imposing style guides upon a  

Despite all this, I don't really like Perl that much.  But that  
doesn't mean TMTOWTDI is horrible; it's just a design principle with  
tradeoffs, like any other.


More information about the PLUG mailing list