I was astonished and gratified by the number of volunteers that contacted me. Could it be that interest in ergonomic computing is finally making it into the mainstream?
After an enthusiastic start in 1997, MacBreakZ went through quite a few releases offering any number of new and improved features. With 20/20 hindsight I made one major mistake in the development of this product: I used RealBasic rather than C++ to develop it.
My reasoning was sound (I think): MacBreakZ would be overwhelmingly a user interface application with little behind the scenes processing and speed was really not much of an issue. Back then, and even today, developers seem to fall over themselves to praise RealBasic’s suitability for developing this type of application.
Not so. In my own personal experience, with each new release the RealBasic compiler and run-time system seemed to fix one bug only to introduce 5 new ones of similar gravity. At one point (I think this was early OS X releases) some customers experienced “rainbow text”: each character in the text of all dialog boxes would be a different rainbow color. This problem, as so many others, eventually did get fixed by RealBasic but my confidence in the tool quickly droped to absolute zero. I decided to freeze development with version 3.6 which had proved stable for fear of introducing arbitrary new bugs just by recompiling with the “new improved” RealBasic compiler.
Before all hell breaks lose and every RealBasic enthusiast on the planet starts flamming me: I know you love RealBasic, have never had any problems at all with it and your software is great and 100% bug free; that’s just not at all my experience with the tool..
Back then in the 3.6 days, I hatched this plan to rewrite MacBreakZ in “a real language with a real api”. The first choice of development environment on Mac OS X is Objective-C with Cocoa using XCode: the same tools used to write OS X itself.
Unfortunately for lack of time, the plans remained just that for almost two years and MacBreakZ 3.6 now clearly shows its age and its legacy.
Back in April when the call for alpha tester went out, there wasn’t much code written. I had a very bare-bones activity monitor (the component that detects your mouse and keyboard activity), a rough state machine implementation and a few user interface elements.
The idea was to involve end-users right from the start well before the application design is fixed and major changes are difficult and costly to make. Getting end-users involved early on also opens your developer’s eyes to end-user issues: sometimes you’re the only person on the planet who thinks that a particular dialog or menu item is intuitive, while the rest of the world scratches its collective head and thinks “What’s that supposed to be when it’s finished?”.
In my experience, early user involvement leads to far better product: a product that actually addresses the needs of its users, rather than showing off the cleverness (in his own head) of the developer.
At this point, I obviously need to thank my alpha testers for the amazing feedback and support I have received from them: Thanks guys!
Not only is the new version fully re-developed in Objective-C and Cocoa, but it also makes big sweeping changes pretty much everywhere. In fact, it is more a new product than a new version of an existing product.
I have blogged about progress on MB4; the earlier post has a number of quicktime movies showing the new interface and some of the cooler new features.
Six months, a couple of hundred posts and ten alpha releases later, MacBreakZ 4 is ready to go into public beta. I’m going to spend the next week getting the “behind the scenes” stuff ready, but next Wednesday MacBreakZ 4 beta 1 will be officially posted to the website (If you write me a real nice email, I may send the new version before then :)).
Current MacBreakZ owners will be interested to know that everybody who bought the product after the 1st of January 2005 will receive a free upgrade. Everybody else may like to know that there will be full-featured 14-day trial available from the website on next Wednesday.
It was great fun developing the new version and I hope you will like it.