Oh, wow! I have had so many wonderful answers. It is really nice to be on a forum where NuBees don’t get flamed for asking their brain-dead questions. The responses are all well considered. I am sure I can’t get everything into a single reply. I am just going to pick something to get started. In no particular order, here we go.
I believe you are taking your life into your own hands when you try to work in another person’s Perl code. This problem is generally addressed by programming style. Even though the language imposes no limits, programmers will. That fits neatly into the easy things should be easy idea. If you write code for a living, you can count on some unknown programmer in the unspecified future making modifications to your work. Since there are big bucks on the line, the simpler and more straight forward your code the better.
Perl is as much a creature of its era as it is a powerful tool. I think the first pieces were done around about 85 or so. At the time we were still looking for the single language that could do everything. What we seemed to have settled on is task-specific languages. Like any craftsman, our tool box contains more than a single tool. It has several hammers for things that respond well to whacking. Several cutting implements that let us shear or shave. The same is true for the programmer. If we need to define persistent data stores, we use a data definition language (DDL) that is specific to the capabilities of the store. We pick other languages for other problems. I love spreadsheets, but they have a specific niche.
At its fundamental level a program transforms an input string (which may be persistent) into an output string (which may be persistent). The set of input and output strings needs to be closed. The program defines a closed and hopefully small set of transformations. In effect every program is an artificial grammar. I guess that’s why provability versus testability is a hot topic
I am sorry. I can’t find the constructs of story telling in traditional programming languages. I did take a look at TADS. What I saw was programming structures getting in the way of story telling structures. When I looked at I7 I didn’t see that problem.
The link to the comparison between the two languages was perfect for me. I don’t know either language well enough to make the points the author did. I came away with my basic reaction intact. I learned a bunch besides.