This is a quick reflection on my experience writing a Slot Machine game using scheme. Specifically, I used biwascheme All in all, I am so pleased with the experience. Here is a summary of what I have learned making this game
I wanted to write a game using a lisp. I wanted to share it using the internet. I didn't want to use web assembly. I didn't want to use a transpiler. So I found biwascheme, which allows one to write scheme directly in html.
Biwascheme
implements most of r7rs small scheme, and it includes a number of handy functions, both to make programming easier and to interact with the DOM and JavaScript. It was so, so good. It took me a while to figure out how to understand the error messages, which were a bit cryptic, but soon I got the hang of it.
I had heard people in the 90s and 2000s complain about troubleshooting parentheses. Yes, it is a minor issue. Yet a combination of using Vim's parentheses matching feature along with some careful code reading helped a lot. Compared with having something going wrong with your Docker image, the problem is so trivial that it makes one feel that it is a first-world problem.
In my professional life I usually have a huge set of libraries to choose functionality from. Python, .Net, Ruby, Elixir offer a solution for most problems with their libraries. I thought that maybe I would run into an issue with scheme
, which lacks these libraries. Surprisingly, there wasn't an issue. Writing missing functions was easy. So easy.
This made me think of the current state of software development. The dependency jenga that we live with is a maintenance and security problem. My small game has none of these problems because it doesn't have any external dependencies beside the language and the browser.
I am currently repeating the experience creating an elevator simulation.
Let's see how it goes. I will report in about a month.