What is Qu
Qu is a general purpose programming language. It is a full-featured object-oriented language itself but you are not forced to write object-oriented programs. The choice is yours.
Qu's goal is to provide you with the tools to implement your own programming. Its flexibility lets you exercise new programming styles. It can be used as a tool to discover new possibilities. For example, it is possible to define properties in a class and define methods elsewhere. Qu has real closures, generators, accumulators, coroutines, currying, variable arguments, etc.
Qu is a dynamic language but provides you with similar ability found in static-typing languages. You can assign types to variables, functions, etc. You can even mix the two worlds any way you fancy.
In fact, Qu goes even further by extending the meaning of type to validator. You can create types from classes, constants, functions, and even methods. You can even assign types to container items such as Array, Dict, Set, etc. Ensure methods gives you the ability to maintain property integrity easily.
Qu has a clean syntax designed to promote readability. There is no need for semi-colons and commas to separate items except in rare cases when the end of an expression is not obvious. Qu also implements the Uniform Access Principle. You don't need the parentheses to call a function or method with no arguments, unless you want to.
Since version 2.10 you can embed HTML code in your Qu programs directly as demonstrated in the examples.
Documentation can be embedded in the source code. The compiler will skip them. The documentation builder will extract them. The builder is included as part of the standard distribution.
Qu has an extensive documentation with massive examples. When you install Qu, all documentations are built and installed on the fly in a matter of seconds.
Everything in Qu are objects, including numbers, strings, etc. The number 123
is an instance of the builtin
Qu has builtin rational, complex, integer, decimal, numbers with arbitrary precision. There is no integer overflow nor floating point limit. They are all handled seamlessly by Qu. Explicit conversion between numbers can be done much easier than type casting.
Qu has a wide range of builtin classes:
Qu comes with a JIT engine, GNU Lightning.
It can optimize your code and make it run faster with no effort on your part.
All you need to do is run Qu with the
And finaly, Qu is entirely written in C. Readable documentations are embedded in the C sources directly. Writing C modules for Qu and interacting between the two is as easy as it can get.