Some of the key objectives for XL are:
The last objective is so important that it gives its name to the language. The philosophy is to build as much as possible using a very small number of rules. The rationale behind this approach is that what we can do, programmers can do. In other words, if it's easy to add a basic construct such as if-then-else to the language, it will also be easy to add more advanced constructs such as tasking or support for SIMD computations.