In 2000 I was programming mainly in PL/SQL and I was constantly being interrupted coding to stop and create test files for programs. I took it upon myself to build a tool on my own time that would fill this need. I quickly realized that there were no free or off-the-shelf programs to do what I wanted. Since necessity is the mother of invention , I decided to use my SQL and PL/SQL skills to create a tool to produce pseudo random data at a vastly accelerated rate. It was written entirely in PL/SQL and SQL for Oracle (So yes it was not completely platform agnostic).
Later on as I mastered Java I created a full blown GUI and custom XML based tag language to build the basis for a plugin type application. Person A could give me the specs for one type of file (Address book entries for example) and Person B could give me the specs for a cook book etc. Then I needed to write custom tags for the different specs and the program did the rest.
Here is a sample of the GUI for the DataGenerator. Any number of templates can be created then selected from the dropdown. Once a template is selected options will change depending on the template. This example is very simple, being a contact record for a contacts organizer application.
Here is an example of the templates used in the DataGenerator. They can be short like this example or consist of thousands of lines across multiple files.
The process to integrate each template is not automated so it takes time based on the size and complexity to ready the template for use.