But Why?

Because:

Tags

Tags represent knowledge i.e. something that is neither code nor data. They consist of a string label and a value of any type which must be known at compile time. Tags are used for generics, units, they reduce the number of keywords in the language, and much more.

Indices

Indices are XY's way of helping with memory management. They also allow different views at the same data. For example Structures of Arrays can have the same (or at least similar) API as good old Arrays of Structures.

Relative Simplicity

XY has only 4 moving parts: functions, structures, tags, and tons of syntactic sugar. Admittedly some of this parts can get fairly complicated.

No OOP

XY is not object oriented. Indirection is provided through the use of glorified pointers called callbacks. Calling a function usually gets you what you expect to get.

Compiled

Code runs on real hardware not in the ether. Any reasonably complicated program has to consider its performance requirements. Throwing hardware at the problem is a waste of money and energy.

Bold

`Be Bold` is a mantra at the heart of the language design process. XY is not for everybody and that's OK. It was created to serve its creators in their vision of how software is to be written.

FAQ

Where does the name come from?

It's an old tradition to name programming languages after letters of the alphabet. Most of latin letters have already been taken so the greek letter Ξ (pronounced /sai/) was chosen.

Who is XY for?

If you are frustrated by available programming languages or just curious about them then you may find XY interesting and useful.

Who is behind the project?

Currently only me.

But how do I convert Fahrenheit to Celsius?

temp~Fahrenheit'to(Celsius)

Tell me more