VIMAT – first steps

One of my favorite quotes is “if a thing is worth doing, it is worth doing badly” (Gilbert Chesterton). Another one I like that I heard Charlie Rose say (not sure who said it first) is “Do you want to be a writer or do you want to write?” What does this have to do with anything? I have a BS in IT, but no experience in the field. If I want to be a programmer, I have to program. If VIMAT is worth coding, it’s worth coding badly. Through iteration, experience, and dedication I will acquire the skills necessary for being a programmer and VIMAT will be coded well.

I’ve chosen to get my hands dirty with Qt and C++. I had been introduced to BASIC, Pascal,  and C back in high school. Thus, the procedural style and C-like syntax of C++ comes easily. In college I learned Java and C#. So, the object-oriented nature of C++ also comes naturally. There are some gaps in my knowledge that I hope to fill soon through experience. One of these is pointers. They look tricky at first glance, but once I read a little more about them, it doesn’t seem like a concept that will be too difficult to grasp. Another is generic programming (templates). This actually looks quite fun and useful. It seems like it would be a great tool for refactoring.

That takes us to Qt which, to me, just seems like the way to go. It’s been around for ages, so it has lots of users and, so far, they have been very friendly and willing to help. Qt is a collection of libraries to use with C++ that helps take care of not only the graphical user interface, but also database handling and other stuff that does not need to be reinvented every time a program is written. It’s cross-platform, easy to use, and well documented.

One of the mottoes of free or open-source software is “release early, release often.” In that spirit, I have been determined to come up with a prototype with just one feature as quickly as possible. If anyone is able and willing to try this out for me, just remember the first paragraph here. It’s not pretty at the moment, but some day it will be. The operating system that I develop in is Ubuntu. So, my first file release (executable) will be for Ubuntu and will probably be followed very closely by Android. The executables are not available yet, but the code is via Git at SourceForge.