Hacker News new | ask | show | jobs
by joshmarinacci 1015 days ago
This really rings true for me. I’ve used many DSLs over the last 20+ years. Build systems. UI definition files. Orchestration languages.

They always start simple and easy, but they always eventually grow so complex that using a real language would be preferable.

I’ve never seen a system remain at the same level of complexity (or much less shrink) over a multi year timeline.

1 comments

This is simply because over times systems destructure.

Some developer eventually can't be arsed to stop and _think_ for half an hour about how to solve a problem, so proposes replacing the carefully thought out DSL with a Python script.

The typical programmer does have any respect for code they didn't write themselves or what it was trying to accomplish.

I don't think this is the root cause. Declarative languages really paper over details in many cases, and the mapping from the declaration to the imperative execution might not be obvious. When you're on the happy path, it's amazing (if it's a good DSL: because you can be confident you haven't forgotten details, that it's systematically correct, etc). When you encounter a regression, bug, or misunderstanding, in anger, it can be very very difficult to figure out what's going on.