Pragmatic?Posted: January 22, 2011
In the vision statement for my graduate project, I used the word “pragmatic” to describe the data modeling tool I am building. To me, “pragmatism” means working smarter rather than working harder. I used this word on purpose, and there is a lot of thought behind it. It is a reference to the classic book The Pragmatic Programmer: from journeyman to master by Andrew Hunt and David Thomas. The book is filled with tips, tricks, and expert advice on how to be an effective software developer. The content is heavily influencing my design and implementation.
Specifically, the following chapters are informing my decisions…
12. Domain Languages
Invent a mini-language tailored to the application domain to allow users to easily express what they want.
14. The Power of Plain Text
They say it best:
…we believe that the best format for storing knowledge persistently is plain text. With plain text, we give ourselves the ability to manipulate knowledge, both manually and programmatically, using virtually every tool at our disposal. (page 73)
15. Shell Games
GUI tools limit users to predetermined actions designed into the GUI. With the command shell, different tools and utilities can be combined in any way to get the job done effectively.
16. Power Editing
To maximize your productivity, find a powerful text editor and become proficient at it.
17. Source Code Control
Use source code control systems to manage versioning and concurrent editing of your work.
19. Text Manipulation
A text manipulation language can enable you to quickly do things that would otherwise take too long to try.
20. Code Generators
“Write code that writes code.”
What this means for my project…
Why text? I know I am much faster using a keyboard to pound out text than I am navigating menus, dialogs, etc. with a mouse. Using plain text input allows users to use a text editor that they are already familiar with to create the model. They can also use any version control tool to manage changes to the model.
More to come…