Modern languages tend to minimize the amount of features that they provide in the language itself, and do as much as possible in their standard libraries.
(This also goes together with simplified syntax, because user-defined complex syntax is hard, slow and potentially ambiguous, whereas limiting verbose, "readable" syntax to just a handful of language-provided features is just silly.)
Speaking as someone who has delved into the
intricacies of PL/I, I am sure that only Real Men
could have written such a machine-hogging,
cycle-grabbing, all-encompassing monster.
Allocate an array and free the middle third? Sure!
Why not?
Multiply a character string times a bit string and
assign the result to a float decimal? Go ahead!
Free a controlled variable procedure parameter and
reallocate it before passing it back?
Overlay three different types of variable on the
same memory ___location? Anything you say!
Write a recursive macro? Well, no, but Real Men use
rescan.
How could a language so obviously designed and
written by Real Men not be intended for Real Man
use?
The design criteria are as follows:
1. Anything goes. If a particular combination of symbols
has a reasonably sensible meaning, that meaning will be
made official.
Modern languages tend to minimize the amount of features that they provide in the language itself, and do as much as possible in their standard libraries.
(This also goes together with simplified syntax, because user-defined complex syntax is hard, slow and potentially ambiguous, whereas limiting verbose, "readable" syntax to just a handful of language-provided features is just silly.)