Become a sponsor to Aldrin Mathew
Why sponsor?
qat
is my passion project. I have devoted a significant portion of my life to it. I see beauty in the language and believe that it is worth sharing with the world. If you find beauty in the design of the language, appreciate the effort that went to into it, or just want a better language to fit your needs, I urge you to donate to support the project. Donating to the project not only provides financial support, but also shows to the world that more and more people appreciate the language.
What is qat
?
qat
is a fresh approach to systems programming. The language is envisioned to be a superfast, modern systems language for creating efficient and maintainable software. It takes a fresh and simpler approach to memory management, without taking away the control from the programmer. No garbage collection, reference counting or borrow checker, but no manual memory management necessary either. How about that?
Key Features
mix
(Sum types),choice
(enums),maybe
(optionals),result
(resultant), Type Definitions, Generics (Compile Time polymorphism)pre
expressions (compile-time/const expressions)skill
(Shared behaviour), methods,poly
(Runtime Polymorphism)- Advanced Pattern Matching
- Value Semantics
- Resource Acquisition Is Initialisation (RAII) - Can be customised or avoided
- Powerful
copy
&move
semantics via constructors and operators - Global Variables and Static Member Fields
- Modern concurrency model
- Modules & built-in modular build system with static & shared library support
- References & Pointer Ownership
- And so much more...
Initial inspiration
My initial goal was to create a performant systems language, without a lot of implicit behaviours. I believe that qat
is already close to that concept. However, as more effort went into the language, it evolved and became comfortable to code in, with necessary convenience that doesn't compromise on performance. Eventually, a simpler way of managing memory became part of the design of the language. This is what have turned out to be pointer ownership. Although smart pointers are still smart, pointer ownership adds the concept of data-ownership to the compile-time via the syntax.
Who am I?
I am Aldrin Mathew, from Kerala, India. I initially learnt C++11 in 2014 & 2015 in school, but as you may have guessed, not enough to be able to create anything useful in it. As an example, we didn't even get to learn about namespaces (looking back, it seems to be such a trivial concept that I am surprised that we were not taught that). In December 2020, I got started with Flutter and Dart and got back into the world of programming. A few months after that I looked into the latest standard of C++ and started learning it on the side. I have had the desire to create my own language for a few months at that point, so I started plans for a language soon after. At last, in November 2021, I started working on qat. I have been learning both C++20 and the LLVM C++ API since then, and it hasn't been easy. Especially because I am a self-learner. But now, qat has Value semantics, References & Pointers, Copy & Move semantics, RAII, built-in optionals and futures, easier conversion between types, tagged loops, pattern matching and much more.
Featured work
-
qatlang/qat
Closer to your machine's heart. Envisioned to be a Superfast, modern systems language for efficient & maintainable code. @AldrinMathew
-
qatlang/docs
Docs for qat
HTML 2 -
qatlang/qat-vscode
Official analysis, formatting and highlighting support for the Qat language in VSCode...
TypeScript 1