Larry Wall, Perl’s creator, has two slogans which I really like. TMTOWTDI – There’s more than one way to do it. The second is – easy things should be easy and hard things should be possible. If you know C, C++ or C sharp, then you have the basic feel for Perl. It is a procedural language. It uses brace delimited blocks. It has control structures. It uses subroutines (CPAN is awesome).
It is true that the language supports procedural, object-oriented, and functional styles. Perl doesn’t care which you use or that you jumble them up. This must make implementing Perl a real hair-pulling event. I think somewhere in the Camel Book it says approximately – Perl is a language for getting things done. That is why writing Perl programs is not a hair-pulling event. The language neither forces you into any one style nor does it does it force you to mix styles.
I remember reading some interview with Larry Wall. He made the point that in today’s world the programmer is the most expensive part of software development. So the idea is to make it fast simple and easy for the programmer to get the job done.
That brings me back to a point I made earlier. The story teller should be the focus. I don’t care that I7 supports several different paradigms. My complaint is it forces the story teller to mix paradigms. My recent questions about conditionals (If statements) really points that out. Nesting requires indentation by tabs. It uses a kind-of-block structure that doesn’t have matching begin and end symbols. I7 does not require these structures in other if-statements. In fact it has hidden in one its error messages the statement that I7 regards if as less important than repeat. In procedural languages they are usually on an equal footing. Perhaps, this unusual view deserves more than passing mention in an obscure error message.
Like you I find the rule book structure to be intriguing. Personally, I would like to be able to create “objects” which are completely defined by their innate characteristics and behaviors. As a story teller I would then have the characters, locations and scenery I need. Hopefully, I will learn how to do that along the way.
It is the diversity of the community which keeps a language alive and developing. I hope you see my comments as constructive. I certainly intend them that way. I would like easy things to be easy. The point of I7 should be to get stories told. There is no doubt I just called your baby ugly. You resisted the all to natural desire to order me out of your house. Thank you.