Perfection is achieved,
not when there is nothing more to add,
but when there is nothing left to take away.
Antoine de Saint Exupéry
XL is a new programming language for modern programming needs.
WriteLn "Hello World"
Hello World in XL2
0! -> 1
N! -> N * (N-1)!
Factorial in XLR
Do semi-colons and curly braces really improve your code?
XL helps you write shorter, beautiful code.
Modern hardware includes GPUs, SIMD instructions, multiple cores.
XL2 was designed to let you take advantage of these features.
In addition, it eliminated bottlenecks that limit optimizations in languages like C++ or Java.
Even if it is more dynamic, XLR is no slouch either.
It takes advantage of LLVM’s extensive and ever-growing range of optimization techniques.
C++ programmers are familiar with “templates”.
Generics in XL2 add useful capabilities, such as checking usage or overloading generics.
XL2 doesn’t even need special array or pointer types, it implements them with generics.
Like functional languages, XLR has higher-order “functions”, but they can take more familiar forms, like
if X then Y else Z.
The expressive power you want now blends with a syntax readable by mere mortals.
x := d/dt(exp(-t/t0))
Symbolic differentiation in XL2
if true then X -> do X
if false then X -> false
Defining 'if' in XLR
Your ideas have no limits.
Why let programming tools shackle your mind?
XL was designed for extensibility.
Tailoring the language is easy, safe and fun.
XL is not just open-source, it is open from end to end.
You can tune its syntax, add new instructions, integrate arbitrary system capabilities, enforce custom policies, add specific optimizations, change the runtime environment, ...
Tweaking XL is not just possible, it’s highly encouraged!