rustydev 🏳️🌈
🦀🇵🇸🇺🇦
Software developer, Rust programmer, Linux user, gay femboy, socialist, supporter of free software and other digital rights. Developer of Spaceships and other fun projects.
Today I have just released a project that I have been working on for much of this year: an interpreter for the Grace programming language written in Rust. I have been working on this project as part of a full-year course in my software engineering degree. I have released the project to Codeberg: https://codeberg.org/rustydev/grace
In addition to the implementation of the Grace programming language that I made, I also created a few fun example programs written in Grace, including a Pong game, a Snake game and a drawing application. You can run these Grace programs inside a web browser using the simple web IDE that I created: https://rustydev.codeberg.page/grace/
Here's a screenshot of this web IDE:
Started implementing singleplayer in my Pong game, and I managed to have the computer play perfectly so it's impossible for the human player to win. Next I will figure out the best way for the computer to make mistakes so the game's actually winnable.
Just spent multiple hours today working on what I first thought would be a simple feature to implement. As development progressed, I gradually began to see the mountain of complexity I was creating, as well as the terrible cohesion that such a solution would inflict on the codebase by having many core methods of the system accept a parameter for this specific feature.
Eventually it got to the point where I looked back at the mess I was making while trying to create the feature and decided: "Fuck it, the feature's not worth adding. The requirement isn't that important."