Review: Go-DB Lite
Score:
75%
Version Reviewed: 3.6
Buy Link | Download / Information Link
So you've thought about writing a little program for your Series 60 smartphone?
At the one end of the programming spectrum you have the wizards at Zingmagic, EMCC, Synergenix and so on, all working in Symbian-optimised C++. To become productive in C++ for Symbian OS takes a long time, a really long time. We're talking about man months. And at the end of this time if you've not got an IQ of at least 150 then the chances are all you'll have done is give yourself a headache. It's OK if someone's employing you to learn, but the chances are you're having to learn in your spare time, in which case you won't have much of a social life for a while.
Somewhere near the other end of the spectrum is your favourite and mine, OPL, the BASIC like language created by Psion and which has worked well on everything from Psion palmtops to Nokia and Sony Ericsson smartphones. There are keywords for menus and dialogs and a clutch of handy file and graphics routines, but you're largely on your own and can create anything you like. To produce a decent application in OPL, from scratch (with no prior knowledge), you're looking at a week of work, even if you'll be avoiding the headaches of C++. (For more on learning OPL, see Ewan's book). In addition, OPL doesn't currently run on any of the Symbian OS 8 devices, and that's most of the really cool ones.
Go-DB Lite is designed to sit even closer to the 'easy' end of the programming spectrum, letting you produce Series 60 applications quickly and efficiently, although with a few rather important caveats. It's unashamedly a form-based tool, making it superb for typical business 'calculator' or 'data collector' style applications and a pain in the neck for anything graphical or involving real time operations, for which you have to hand craft BASIC-like statements in the code editor windows. If you can define your application idea in terms of a number of separate 'screens' (forms), with text and numbers to be filled in and with other screens and windows appearing depending on what you entered, then you're on your way with Go-DB Lite.
Go-DB (without the Lite) is a lot more expensive and designed to handle 'enterprise' applications, run on any portable device with a Go-DB runtime for Palm, Pocket PC, Series 60, etc. Go-DB Lite is a new venture, with ConsignTech recognising that many hobbyist Series 60 users would find it rather fun to write their own programs. One example of the slightly changed focus of Go-DB here is the inclusion in the excellent Help screens of a section called 'Game functions', which include routines to display images and play sounds. These game functions are very much tacked on to main product, which remains focussed on string variables and forms, but they do work. To prove the point, here are a bouncing ball and TicTacToe in SIS format (try them), both examples supplied with Go-DB Lite. The integration of graphics and sound with the main development system is a little arcane and disappointing: having dragged an image onto a Go-DB form, it's shown only as a black rectangle of the wrong size (though GIF files can be 'rendered' if you dig deep into 'Options'). You then have to manually resize it and generally 'imagine' what it should look like.
Working on a simple application that uses forms and popup boxes is a lot more straightforward, I knocked up this VAT calculator in (literally) 10 minutes. And, unlike the current version of OPL, it runs on any Series 60 phone. Pretty cool if your intended application falls in this genre. Every application is forced to have a 'login' screen (where things like user tracking and activation happen), another result of Go-DB's enterprise heritage, although you can bypass this and move straight to your main form with a single command.
GStudio, the Go-DB IDE (Integrated Development Environment), is pretty comprehensive once you take into account the caveats mentioned above. A browser on the left shows project files (forms and BASIC code modules) and images, with each coming up in its own window in the main space, where it can be tiled, hidden or maximised. A properties pane is usually present on the right hand side and individual properties are easy to change, with alterations shown immediately in the appropriate form windows. An array of tools for designing forms is dominated by form controls (list boxes, etc). Finally, an output window at the bottom of the IDE shows warnings and any success messages, plus any debug information if you've asked for this.
GStudio has been pre-programmed with the right product IDs for most recent Symbian Series 60 devices and the IDE can build SIS files for a particular device if needed. For most purposes though, it's easy enough to specify a 'Generic Series 60 device', which will run on anything from a Nokia 7610 upwards. Your application gets packaged with the 320K Go-DB runtime, making even a trivial utility appear to be the best part of half a Megabyte. When run, the RAM useage is similar.
Quite apart from the omissions in the image-handling department, there are other signs that Go-DB Lite isn't a mature product yet. The main 'Build' menu has options for 'Compile', 'Build', 'Rebuild all', 'Clean', 'Run', and so on. I appreciate that there are probably distinctions between these at the code level, but all a new user wants to see is a single option: 'Build'. Or, better, 'Build and run'. Similarly for the multitude of device build options ('Nokia 6260, Nokia 6600, etc.), when the vast majority of people will simply want to build for a class of device (e.g. Symbian OS 7 or 8), so that their application runs on as many devices as possible without having to make lots of different versions. A 'Check for new updates' option on the main Help menu seems like a good idea but, when run, offers a page of 'more recent' modules - these are largely irrelevant to Go-DB Lite and they're all also around a year old, at which time Go-DB Lite hadn't even been created.
If all this seems over critical, then I make no apologies. If Go-DB wasn't any good then I'd just slam it and move on, but it's actually got potential and I'd rather the developers saw enough interest in the product that they put work into improving it. I'm going to persevere with Go-DB because (in the absence of a OPL runtime for modern devices) it's about the only way for users to program their smartphone without having to spend months learning Symbian dialects of Java or C++.
So, with a view to using Go-DB Lite in earnest, I set up trying to convert my Hangman game (previously written in OPL). First, a couple of screenshots, so that you can see that I did get there in the end:
Most of the core formulae could be used as-is, with GBasic only differing from OPL (or any other BASIC) by a few characters here and there. Even the graphics handling turned out to be similar to OPL. Having to store images on forms, retrieve them to a hidden string buffer and then draw them onto a form as needed, isn't so different from retrieving image files into graphics ids in OPL and then copying them into an on-screen window. The biggest difference was the form-based, object-oriented approach, which means that you have to think in terms of specific forms that paint themselves according to the BASIC code you've specified. Keypresses while a form is shown are handled within a Form_Keypress subroutine, and so on. Once you get used to this, most applications could be adapted fairly easily, although I suspect that real-time arcade games would be somewhat harder.
The main showstoppers I found were to do with the lack of maturity mentioned above. For example, I was trying to use a sprite array (for the Hangman 'hung' images), but a bug in the Go-DB system meant that sprites weren't always shown correctly. I also started getting an 'Internal error, please contact support', which is never a good sign in an application. The building to SIS format is also lacking in sophistication - there's currently no way to automatically include your own version number or include your own certification '.key' file, so that the SIS file is signed as being 'from' you. (In practice, you could build your own SIS using the standard Symbian MAKESIS utility, but this should really be handled by the IDE that you've paid good money for.) Finally, you can only write a single font on screen at present. For most applications this simply isn't good enough.
Back on the positive side, there are some pretty powerful Symbian smartphone-specific system functions, though you have to dig pretty deep into the Help screens to spot how to use them. You can send and receive SMS messages, check GPRS/Bluetooth/battery status, make and receive voice calls and even play back video files directly, which is very cool for such a RAD tool.
Although the purchase price of $200 is enough to put casual users off, there's a trial version, meaning that you've got no excuse for downloading and at least having a play. For the company looking to make a custom 'calculator' or database-driven application for deployment to its employees' smartphone, Go-DB Lite is just the ticket. For the home user with a good idea for an application or game, Go-DB Lite is a viable option, even if you do currently have to work rather harder than you ought to.
With more development and 'polishing' (and I'm sure this will happen in the very near future), Go-DB could become a genuinely mainstream system. Watch this space for an updated review in a month or so, once ConsignTech have released another version or two...
Reviewed by Steve Litchfield at