About Pig!
Main Points
- Created 100% in Racket, a Lisp relative (functional programming language)
- Served via SCGI
- SCGI parser created from scratch in Racket
History
If you follow my tinylog, you'll notice that I keep dabbling in different programming languages. Before I joined Gemini back in 2020, my interest in programming had waned significantly over the span of many years. My main job wasn't coding and I have a home, spouse, and kids to keep me busy. However, Gemini reignited my interest in programming by lowering the barrier to entry.
Fast-forward a few years, and I'd abandonded Python for Pascal, and then moved onto Go. Fill! is created entirely in Go, and I even re-coded Farkle in Go, but as of this writing, I have yet to finish it. About a year ago @stack starting talking about the greatness of Lisp, so I dove in head-first trying to figure it out (I wrote a gemlog on this [1]), but I eventually abandoned it and took a hiatus from Gemini (I tend to do this in warmer months).
About a month ago, while finishing up Farkle in Go, I got the idea to look at Lisp or Lisp derivatives again since I was getting frustrated with Go / my Farkle project. I discovered Racket and found it much easier to absorb than Lisp and as a bonus, the website / documentation [2] is geared for beginners, students, educators, and professionals alike. So I dove in.
My first mini-project: SCGI
I get bored writing practice problems just to do practice problems. There's some great exercises in the (free) Racket textbooks [3][4], but I figured if I was going to do this, I wanted a project that meant something to me, so I picked a SCGI parser built entirely in Racket. It took about a week due to my needing to dive into the docs for every little thing, but I eventually got it, which I then rolled this into Pig!
Follow-on project: Pig!
Pig! is my proof-of-concept. It's a milestone for me that I've completed a program in a Lisp-like functional programming language. I've ascended the first peak of a giant mountain, and it was actually pretty fun. I like Racket but I wonder if my interest will wane just as it did with Go and Pascal; I always want something new.
Anyways, if you read this far, thank you for playing Pig! and taking an interest in my journey through yet another programming language. Props to @stack for being a Lisp proponent and talking about it on BBS.
References
[1] My Foray Into Racket Programming
[3] Racket Textbook - How to Design Programs
[4] Racket Textbook - Programming Languages: Application and Interpretation
~Gritty (2026-03-21)