To think of on idea before creating it, I have used mindmaps for several years now. Since they have a non-linear structure, it is easy to gather all ideas and write them down. It allows me to add, remove, or move grouped notes fast, add attributes, colors, symbols, etc. I find it the perfect tool to gather the concepts of anything.
I thought so many times that it would be marvelous if I could transform those mindmaps into the actual working code…
12 years ago, I made my first attempt at using a mindmap to create code based on the opensource software Freemind for diagramming the mindmap. I modified it extensively to adapt it to my own needs and called it Concepto. I just wanted to see if there was an improvement in the way I can ‘translate’ my ideas into results.
The first version was a simple one, just for creating mobile websites for my framework Creador WAP, but worked perfectly, representing the design structure as well as the code flow, which I haven’t been able to replicate in any other IDE software. I like to think of it as a new way of thinking about how to develop without losing focus on the app’s intention or goal. I made more than 100 mobile websites in a year using it for companies as big as Discovery, Movistar, Sony, to name a few.
The important thing here was not the resulting code but the subtle flow transition from the requirement of the mind and the representation into a product. I’m still very convinced that this way of working is something good and unique; at least it was very cool and productive for me at that time and still is for those working with me.
They say that if you like to use your product, it’s probably going to be loved by others like you.
When I started my company Creador S.A., my first intention was to rent or sell licenses of my tools for other developers; I knew I had a good product, because everyone I showed Concepto as a programming tool love it. Many people wanted it to acquired it to create their apps, but none wanted to pay for it. As a company, we had a hard time realizing we were too ahead of time for the Chilean market. So we started using our tools to create products for our clients instead of renting them to external developers.
I wanted to showcase we were able to use Concepto as an approach to programming from a different perspective instead of just a tool for creating mobile websites, so we started thinking of developing native mobile apps.
I called the process of abstracting the concepts of a programming language into a mindmap representation, a “DSLs” (Domain Specific Language syntax) for Creador framework, so Creador WAP evolved into Creador OPEN, supporting multiple code-generators and Concepto was renamed Concepto DSL.
Our first apps where for J2ME using a DSL for MoSync framework (C++ code). It was way cool to diagram your programming and getting the product on a Nokia device.
As time went by and my company was growing, I realized we wanted to use it for more targets such as webapp development (windows looking webapps using qooxdoo), semi-native mobile apps (appcelerator), native mobile apps (swift, java), backend services (coldfusion, nodejs, ruby), and so on.
The current version of our suite of products its pretty advanced software, but we still don’t rent or sell them, because I don’t know how to get value of them outside the company. Maybe you can help me if I show you what can be accomplish with them.
You can watch some of the current apps made with Concepto DSL in the following links: