Principles and Goals
Leaf is an endeavour to create a feature rich yet simple programming language. We've learned so much about programming in the past decades. Leaf is not trying to replace that knowledge, rather it aims to bring together the best features of all languages.
Leaf should be a pleasure for the application developer, not the compiler writer. Absolutely no compromises will be made just because it may be hard to implement. It is fully expected that some features will be extremely challenging. While we can't promise every one of these challenges will be completed on first release, it is definitely the direction we are heading.
Leaf is attempting to solve real-world problems, and lots of them. Every feature in Leaf exists because it simplifies practical coding. We've already starting writing simple programs to drive this goal. The focus is now to push forward towards useful tools, shaping Leaf along the way. At the same time, we'll let Leaf shape the way we program. Early programs will be written and rewritten to produce the best language.
Leaf tries to free itself of the paradigms. We've looked at many languages, and scoured much code, looking for the best features. We're not afraid of mixing models or having to think differently. Leaf is being built from the ground up to support a wide range of interesting and exciting constructs. We continually evaluate the syntax, cleaning and restructuring, looking for an ideal way to combine all these great ideas.
Do you have something to contribute? Then please join us in this endeavour.