Skill Issue logo

Skill Issue

Subscribe
Archives
October 3, 2025

Coup d'état

It's been a fun week. I was in Vancouver overnight to see a band whose name I'm hesitant to put in my newsletter. Their lead singer is 70 and (suprisingly) still has it. It was a great show.

This issue isn't about the Ruby Central stuff, but want to address one thing. I don't know any of the details, but there were apparently threats made against Ruby Central staff. That's completely unacceptable and goes against everything this community stands for. I'm disgusted that anyone would do that.

Finally, I want to share this post about DHH that was published this week. I don't really have any comments. Just give it a read.


Okay. Enough of talk of the negative. I've been thinking about what makes good and bad DSLs. Lisp fans have long touted Lisp's support for DSLs as one of the many benefits of Lisp. I've only done limited work in Clojure, but I got to use a few different DSLs and it was great. I see what the Lisp folks are talking about.

In the Ruby ecosystem, we seem to be kind of mixed on DSLs. Some get hate, like RSpec. I personally like RSpec, but I understand when people complain that it's a lot to learn when you really just want to make some simple assertions. Other DSLs seem fine. I've never heard anyone complain about the Puma configuration DSL, and most projects I work on use Puma.

In an upcoming Dead Code episode, I discussed this with the guest. They suggested that it's the complexity of the DSL. When you provide a small set of useful abstractions, you enable productivity without significant onboarding costs. When you provide a large, complex DSL, you not only have to deal with the onboarding effort as programmers learn the DSL, but also with the cost of context switching when you switch from "normal" Ruby code to working in the DSL.

It seems to me that the best DSLs are tightly focused and limited in scope. I'm curious, though; what are your favourite and least favourite Ruby DSLs?


When I started working on v2 of my personal website, I started from scratch. I'm not using any kind of framework; it's a simple Rack app. I'm reusing the branding and design system, but working towards a richer content model that will support, among other things, I rich, interactive, web-based Ruby tutorial. It's a fun exercise and I'm learning a lot.

I'm getting increasingly tempted to pull the "framework-y" parts out into a simple (but very opinionated) gem. The world needs yet another web framework, right? Maybe not, but it would be fun. We'll see.

While I mull that over, I'm enjoying seeing what others are doing with their own Ruby web frameworks. In particular, I was excited to see that Joel Drapper released his vision for Yippee. It's a cool project and worth following along.

I'm particularly interested in the routing system, which he hasn't released yet. My routing system is extremely rudimentary, but I'd love to try something a little more robust. That said, I'm not sure my site will ever have enough routes that simply checking the the path against a list of patterns will ever be too slow.


This month is Looptober, an annual event where participants are invited to "make little songs/beats/loops" every day during the month of October. I've got no serious music production experience and have no idea what I'm doing, but I booted up Ableton Live and am participating regardless.

Town WizardLooptober 2025
Don't miss what's next. Subscribe to Skill Issue:
https://ruby.social… Bluesky https://jardo.dev/ GitHub X LinkedIn
Powered by Buttondown, the easiest way to start and grow your newsletter.