Python interpreter (~2000 LOC) Recursive descent parser Context-aware error reporting Custom exception types with file/line info
Visual Component Built a browser-based node editor (single HTML file, 1200 LOC). Drag boxes, wire them, generate DoScript code. Why? Different learning styles, workflow visualization, non-programmer accessibility. What Worked
Natural syntax is immediately understandable Metadata injection removes boilerplate Time handling makes common cases trivial Visual IDE differentiates from text-only
What Didn't
Complex conditionals get awkward fast No user-defined functions (only macros) Limited data structures Performance not optimized
The Challenge Built for non-programmers. But they don't hang out on dev forums. Developers say "just use Python" - which misses the point. How do you market dev tools to non-developers? Technical Transparency I designed syntax and architecture. Most Python implementation was AI-assisted (Claude, Copilot). Focus on design, use tools for implementation. Open Questions
When does a DSL become too limited? How to market to non-developers? Type system worth the complexity? Should DSLs provide escape hatches to host language?
GitHub: https://github.com/TheServer-lab/DoScript v0.6.5, includes interpreter, visual IDE, VS Code extension, examples. Built because bash was too cryptic for my friend to organize files. Turns out lots of people have this problem. Would love feedback from people who've built DSLs or struggled with similar trade-offs.