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

On Fri, 12 Aug 2005 09:51:04 -0600, "Hans Fugal" <[EMAIL PROTECTED]> 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 project.

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.

        --Levi
.-----------------------------------.
| This has been a P.L.U.G. mailing. |
|      Don't Fear the Penguin.      |
|  IRC: #utah at irc.freenode.net   |
`-----------------------------------'

Reply via email to