I was concerned about Perl6 but then I re-read the Apocalypes and Exeges.
Now I am trying to hold back my enthusiasm because I know it will be at least a year till there is something to use.
The things I like:
- Levels of competance/features. Like "use strict", but now for type checking and other stuff.
- Object everything (not cuz I am a OO lover, but extending hashes will new features like "freeze the keys of a hash in place" are easier.)
- try/throw/catch is great for network programs, errors are rare but they need to be caught; foo() or die; sucks after the first 300 repititions.
- named and/or positional parameter declarations is going to be GREAT!. With some optional typeing, half my debugging code will disappear. And compile time errors, not just run time errors.
Things I am not so hot about:
- No explicit iterators, like my $iter := @a.iterator; $iter.getnext. What if I want to walk an array efficiently (ie no for(;;) loop) but be able to stop if one of the values requires immediate attention, then come back to the list. OR doing parallel operations on 3 or 4 or 200 arrays simulaneously.
However, iterators may be able to be constructed with continuations. The Parrot guys have stated the goal that they want to have continuation support in the VM.
- No mention of a standard Pre-Processor. I would like to have assert() and other simple macro expansions without haveing to take a runtime hit on production code.