There’s more than one way to do it.
Although that’s certainly true in the real world, it is rarely true for computers. Programmers design their software to work in a very particular, logical way—and only one logical way. If your methods of thinking or problem solving are at all different, that’s too bad. You have to learn to think the way the programmer intended you to think.
Easy things should be easy, and hard things should be possible.
Wall adapted this maxim from the pronouncement Alan Kay made in Microelectronics and the Personal Computer in 1977. Wall understood that ninety per cent of most programs were relatively simple and straightforward tasks. The remaining ten percent posed the real challenge. Wall designed Perl to be the ultimate text-processing language, the ninety percent that is easy. C is the one hundred percent possible language, and Wall incorporated the C commands necessary to do bit-level hacking into Perl. But whereas a C program to print out “hello world” would take five or six lines of definitions and configurations, the equivalent Perl program looks like this:
print "hello world"
That’s what he means by, "Easy things should be easy."
Together, the two credos reveal the power of Perl. By following the first one, Perl is able to follow the second one for programmers of different levels of ability. What is easy for a master hacker won’t be easy for a novice. But Perl’s multiple avenues allow programmers to learn new tricks and skills, developing new abilities and knowledge over time. Some of the tools in Perl are very straightforward; others are complex. Programmers who don’t understand the complex tool, don’t have to use it. But they may use it for a simple task at first, then steadily learn its nuances. Over time that which once was hard to understand becomes easy to understand—and therefore easy to program.
These slogans run counter to much of the history of programming languages. Computer languages are generally designed for either the novice or the master programmer, not the lazy, impatient, hubristic programmer, who can be both. The traditional slogans would be: "There’s one right way to do it" and "Everything should be easy—if it’s not, it’s not possible." Some would argue that the slogan for some languages would be "Everything should be hard."