Something that has bothered me for a long time is the idea of prototyping software. I think the problem resides in how other engineering disciplines view prototyping.
A few of us at work are working on a fairly sizable equipment control application. Because various pieces of the equipment are pluggable and a single piece of equipment can actually perform several different tasks, we broke the equipment down in terms of interfaces. So far, that has been a great decision… until yesterday.
I must preface this with saying that I don’t do much Java work. Perhaps it’s more friendly for a different domain of work, but at least for me I find that it’s overly complicated to do simple things.
So, I just finished reading the The Book of Qt4 and it has almost convinced to do more C++ programming again. I say almost because there are Python binding for Qt4, so I’ll just use Python instead. However, I did sit down and write several simple applications with it and I must say it is the most well thought out, well designed C++ library I have ever seen. I’ve written several X apps (Motif), MFC, wxWidgets, and several other apps using some obscure toolkits and I must Qt4 is absolutely the best GUI framework I’ve ever seen. The signals and slots paradigm is awesome and exactly the loose coupling that GUI developers need. I wish Java had something similar… I could definitely use it on a project or two right now.
Several of our projects have grown to the point where the test suite and/or the full suite of builds has become time consuming. Moreover, we’ve been faced more and more with the need and desire to have a set of “official” builds that we use for testing. The current scheme of embedding the version number in the binary doesn’t include enough information to let a tester know where the binary came from. That includes which developer as well as which revision of what branch in the source tree. So I finally got a build server cobbled together (actually two: one for Windows and one for Linux). Myself and one other co-worker did a pretty exhaustive survey of build servers and finally settled on one: Quickbuild. We did so mainly because it seemed the easiest to configure, authenticated against Active Directory, and could support multi-platform builds.