http://qs321.pair.com?node_id=241874


in reply to (A6) Perl 6, a general-purpose language?

I'm not sure I understand you correctly. You explained that optimization counts. C and C++ don't have JIT in their most common forms, as far as I can see. Do you mean that Perl isn't as fast as C and C++ in some domains?

Detailed typing is harder to understand. If anything, I think the type system in C and C++ is one of the worst features of the language. To do anything useful, you're forced to cast willy-nilly. The templating system in C++ is a symptom of the problem. It's a combinatorial explosion based on exposing low-level implementation details. (I think this may be an example of premature optimization -- by forcing you to commit to an int early on, you're restricted in what you can do in many other places around the source code. You can guess at what you'll need later, but if you guess wrong, you have to make a lot of changes, so you'll end up hedging your bets or editing a lot of code or sucking it up and living with your limitations.)

Java's even worse -- it suffered along without templates for years and years. How long did it take before you could put an object in a container without having to upcast? You could also look at all of the work you need to do with the Reflection API to do something like a Factory pattern.

This is turning into a rant on a subject which many people have strong feelings (and I really don't want to debate the benefits of strong versus weak, static versus dynamic typing here!). I'll try to sum up.

In my opinion, Perl is already a general purpose language. There are several benefits of Perl 6 that improve its position: easier distribution of code, easier embedding and extending semantics, improved performance through Parrot, and higher-level programming constructs.

If anything, I'd much rather use a dynamically typed language as a general purpose language.