Gato is a general-purpose programming language being very slowly created by yours truly, Changaco.
Right now it's still vaporware, but I've been thinking about it for years and I finally started writing a compiler for it in the last days of 2023, so I've settled on a name and acquired some domains.
Gato's design prioritizes correctness, efficiency, and productivity.
Correctness meaning that Gato is designed to prevent or mitigate bugs as much as possible.
Efficiency meaning that Gato should facilitate writing software which uses the computing power and memory of the machine it runs on as efficiently as possible. This has multiple implications, including the need to have good support for concurrency and parallelism.
Productivity meaning that reading and writing Gato code should be a piece of cake. 𤣠Puns aside, this goal is inseparable from the previous two, as it's about facilitating the creation and maintenance of correct and efficient software. Readability is partly subjective, but Python is widely considered to have good code readability, and Gato's syntax is inspired by Python's.
While Rust is advertised as having almost identical qualities,[2] it doesn't have them to the maximum extent possible, because it wasn't designed to. Basically, Rust was an attempt to improve upon C(++), and it did, but Gato aims to be significantly better than Rust (and Python) for as many use cases as possible.
Relatively easily, as Rust doesn't attempt to mitigate all types of bugs. To give a simple example: Rust isn't designed to detect unintentionally infinite looping, despite the fact that this can crash a program or make it unresponsive, and that it can be quite difficult to debug.[3] One of the things a programming language can do to mitigate this type of bug is to provide separate mechanisms for short and long-running loops, and to raise a proper exception if a short loop exceeds its expected maximum number of iterations or run time. Unfortunately, Rust (and Python) followed the tradition of having a while
loop keyword which can confusingly be used for both finite and infinite loops. To be fair, Python was created before I was born,[4] and Rust was created when I was only beginning to learn programming.[5]
I'm unaware of a programming language which could realistically be improved to match what I have in mind. For example, making a lot of deep changes to Python would be more difficult than starting from scratch, and the Python language as we currently know it would cease to exist in all but name if those changes were made.
I have no idea.
Gato is of course open source and is being developed publicly on GitHub. You can watch and star the repositories, contribute to the first design document or the first compiler being written in Python, or simply follow issue #1 for infrequent updates on the project's progress. A simple message saying that you think this project is a good idea would also be helpful and appreciated at this early stage.
This project hasn't received any funding so far. You can be its first patron by donating to the Gato team account on Liberapay.