Larry Wall on perl 6 - posting one paragraph here about language design

Here is Larry Wall on Perl 6 - I find it interesting for several reasons
so you may want to read up on it for yourself, unless you have already
done so (or are not interested in it):

But the reason I post this here, is another one.

It is one epic quote (to me it is epic).

Here it is, a question about “Language Design” by columbus.

I added Question / Answer Notifications in the paragraph that follows:


Hi Larry, Thank you for your contributions to the field of Computer

My question is: in your opinion, what are the most important things to
consider when designing a new computer language?

Answer by Larry Wall:


Seriously, if you’re not designing a DSL (Domain Specific
Language), then you’re designing a general purpose language,
and your only choices are to force the world to fit into your
chosen paradigm, or try to support multiple paradigms. We much
prefer the multi-paradigm approach. It turns out if you accept
the 90% of each paradigm that is practical, and reject the 10%
that puritanically rejects other paradigms, you can get a
pretty decent general-purpose language out of it (see Perl 6).

But no matter how much of “everything” you take into account,
you’re still going to get blindsided, and you’re still going
to discover lots of ways you could have made better tradeoffs.

There’s no such thing as a perfect language, really. We used
maybe 50 or 60 competing design principles in the design of
Perl 6, but the most important one is: “There is no single
most important design principle, including this one.”

Or to put it the other way around, if you focus on only a
few important things, your language will be good only for
those few important things you focus on. Which is okay, if
that’s the goal you want to have. But there’s a long history
of people confusing “general-purpose” with “Turing-complete”.

I also find it nice because it somehow relates to what matz said in 2003

artima - The Philosophy of Ruby

And I still think that ruby is the better perl in design too, including
perl 6. But that is my own personal opinion here. :slight_smile:

What I find interesting in particular about Larry Wall’s statements is
the “There is no single most important design principle, including this
one.” This is, to me, a logical extension of “more than one way”. I do
not think that it is fully or universally true, since ruby itself
prefers one design principle over others, and that is “everything is
an object” (more or less); which sort of reminds me of the “everything
is a file” in UNIX/Linux and Plan 9 (or whatever they used … I
already forgot… practical beats theory).