Barbaric August: About DSL Design, Setting Up the Project and Putting Something on the Screen

| Comments

Barbaric Monthly is my attempt at building/improving a coding project per month so that I can experiment with old and new technologies, learn ad infinitum, remain excited about the craft and nurture my passion for software development. This Barbaric Monthly is about developing a personal task management system with a command line interface.

Wooo… that was a quick blurry weekend at IFS Training Camp:

Anyhow, after most of the mists of mayhem dissipated from my head I started reading Domain Specific Languages to get ideas about how to go around building a DSL for the Ultimate Personal Task Management System project. It took me a while to get up to speed, was it due to the nebulae that populated my mind or to the fact that one needs some time to adapt to the writing of an author, I do not dare to wonder. It is a very interesting book nevertheless, I found out that, I have been implementing what Martin Fowler calls internal DSLs for quite a while without even reflecting about it: Yes, Ladies and Gentlemen, Fluent Interfaces are no other thing than Domain Specific Languages embedded within the same general-purpose programming language you happen to be using! Aha!. Aside from this discovery and, in the context of this project, I think I can get away by starting implementing a simple DSL based on a Delimiter-Directed Translation parser and go increasing in complexity as needed.

I finally was able to set up the project on GitHub and today, and after hacking the first user story, here we have a draft of how it may look:

Ultimate Task Management System First Draft

Hell Yeah! Let’s make the Console Hip again!