Those who design circuitry must know every single bit which is allocated for every single purpose. Every state needs to be proofed, every branch of logic, every possible allocation of data must be predicted and reviewed. A worst-case must be known. All of this is because you really don't want to require a re-flash or replacement of the firmware. "Stateless transactions" is not just a goal, it's often a requirement.
As "high level" as BASIC is, you can still budget every byte: DIM the arrays, can't swap integer i% and real types and s$ strings. Strings are arbitrary in length, but early versions limited you to a 255 byte length, and I think Parallax is even more stingy. I don't think an array of strings is possible or recommended, unless perhaps in ROM.
The same limitations have been put into the PicoJava implementations. You can't just say Vector v = new Vector() whenever you feel like it. For solid designs, you need to know the world intimately, all the way down to each bytecode. At least the variable-sized automatic allocation stuff is mostly implemented in the class library: ditch those data structures classes, and you're almost back to a cannable language.
Perl's scalars are oriented towards arbitrary sizes for different types, as well as arbitrary capacity for arrays and hashes. Arrays grow and shrink, and you don't even want to know the number of ways a hash's internals must be able to be resized. All of this is purposely hidden from your view of the developer. It's not even clear how you'd manage to handicap the Perl language to provide fixed-sizing on it, while keeping it valuable and high-level, since it's all in the language, not the class library. And though some people know the Perl bytecode and SV/HV data types, etc., it's far from the everyday Perl when you have to live or die by direct use of them.
Just my feedback-- I'd like to hear others' take on it.
--
[ e d @ h a l l e y . c c ]
In reply to Re: Pico-Perl
by halley
in thread Pico-Perl
by rje
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |