Path: rcfnews.cs.umass.edu!barrett From: bscott@nyx10.cs.du.edu (Ben Scott) Newsgroups: comp.sys.amiga.reviews Subject: REVIEW: CanDo version 3.0 Followup-To: comp.sys.amiga.programmer Date: 21 Feb 1995 16:50:59 GMT Organization: The Amiga Online Review Column - ed. Daniel Barrett Lines: 210 Sender: amiga-reviews@math.uh.edu (comp.sys.amiga.reviews moderator) Distribution: world Message-ID: <3id5lj$jfv@kernighan.cs.umass.edu> Reply-To: bscott@nyx10.cs.du.edu (Ben Scott) NNTP-Posting-Host: hobbes.cs.umass.edu Keywords: programmer, multimedia, commercial Originator: barrett@hobbes.cs.umass.edu PRODUCT NAME CanDo v3.0 (v3.006 tested) BRIEF DESCRIPTION CanDo is a 'visual' application development environment, which allows largely mouse-based creation of Amiga software. AUTHOR/COMPANY INFORMATION Name: Inovatronics Address: 8499 Greenville Av. Suite 209B Dallas, TX 75231 Telephone: (214) 340-4991 Fax: (214) 340-8514 (There's also a German office, at +49 89 3173164) LIST PRICE I think the list price is $399 (US), but I only paid a $159 upgrade fee as a registered owner of CanDo v1.5. SPECIAL HARDWARE AND SOFTWARE REQUIREMENTS HARDWARE 2 MB RAM required. Hard drive required. SOFTWARE AmigaDOS 2.04 or higher required. COPY PROTECTION None. MACHINE USED FOR TESTING Amiga 4000/040 with 18 megs of RAM, AmigaDOS 3.0 INSTALLATION Uses the standard Commodore installer - straightforward and simple. REVIEW I won't attempt to describe the program in detail; this is, after all, a short review. CanDo has a very polished interface consisting of scrolling toolbars (horizontal or vertical, depending on your situation) and many types of option-filled windows. You can begin by setting the screenmode and/or window size for your application, then begin adding buttons, menus, timers, graphic elements, ARexx or input event handlers, or whatever else you need for your program, then link them to each other or to script files. CanDo's scripting language seems very complete and clear - some 440 commands with plain-English names (no matter how long that makes them, hence functions like "SetWindowBrushAnimTPS()"...) and a straightforward, forgiving syntax. It also possesses a full set of looping constructs, global and local variables (along with type conversion and both Array and Record types), parameter passing, and surprising speed of execution. It is a rare moment indeed when I come across a situation for which there is no convenient command to handle it. Once, I had to create sets of mutual-exclusion buttons, early on in the learning process, and it took me just 3-4 minutes to set up a quick function to handle the job, despite my inexperience. CanDo also has an outstanding help system and some very nice programming aids. Not only is all information available as an AmigaGuide hypertext file, but simply double-clicking on a command or keyword in the script editor will bring up the relevant page for definitions and explanations. You can also search for commands with the Lexicon Assistant and have it insert them into your code complete with the proper template. But that's only for situations when you actually need to write code - very often, you hand need never leave the mouse if you utilize the toolbar. For example, the "Objects" button brings up a requester which shows every object in your project in one window, and every possible action that can be applied to it in the other. You can disable it, execute one of its scripts, move it, find out its status, and so on, all with mouse clicks that write the code for you. You can also paint graphics (including animbrushes) on the screen, play sounds or MODs, run external commands via DOS or ARexx, and call other routines. CanDo is fairly object-oriented - when displaying or moving an Animbrush buffer, for example, it can have scripts assigned to specific frames (or each frame) that are controlled by accessing the buffer itself, not the calling routine. Keyboard shortcuts for functions are easy to create as well, since you can have them simply call the appropriate script attached to the object in question (button or menu item or whatever). There are facilities for aligning GUI objects on your interface, Another nice aspect of CanDo is its relative efficiency in most areas. Code executes surprisingly fast, at least on my 68040 - I have an appalling brute-force search routine cobbled together in one project, and you can hardly tell it's not a highly optimized algorithm by watching it run. CanDo programs are also quite small - at least until you "bind" them. In order to run on an Amiga without the hefty cando.library installed, you must process them to integrate the library functions into the executable. This can turn a 5K utility into a ~180K monster. But these days, an extra one or two hundred K doesn't seem to bother people like it did in the past, I suppose. Inovatronics has revised its licensing policy to allow freely distributable executables for non-commercial purposes (and, I am told, most commercial products under $50 or so). Other functions include - serial and parallel port handlers, the ability to create ARexx ports and parse incoming commands, the ability to handle mouse or joystick events of any type including doubleclick, drag, RMB up and down, and proportional game controllers, the ability to use brushes for menu items or even button masks for irregular shaped hit areas, a full set of Workbench icon manipulation functions including AppEvent support, about 50 special effect transitions (complete with animated preview), asynchronous timer event objects which enable limited "multithreading", a fairly robust user-definable error handling facility, and even the interesting ability to execute code typed in by the user at runtime, plus lots more of course. There is a separate CanDebug package available as well, to allow single-stepping and a supervised runtime overview among other things - I have not tried this yet, however. DOCUMENTATION There is an excellent ~650 page illustrated manual in a 3-ring binder, and all text is available as an AmigaGuide document online as well. It includes the standard prose explanations of all functions as well as a large reference section, and a full index. LIKES Almost everything. The help system, as I've said, is wonderful. The flexibility and ease of use is fantastic. The manual is nicely written and printed, the software is stable and robust - it's a joy to use, and surpasses many well-known Windows and Mac visual development packages in some areas. DISLIKES AND SUGGESTIONS There are a few features I think they could add to the scripting language, like making it easier to control the opening of screens (as in changing the parameters at runtime, rather than fixing them in stone when the program is written). I have a small list of minor interface improvements, too, like simpler cut-and-paste for multiple objects, a global search-and- replace function for all scripts in a project, more extensive Undo features and so forth. Nothing really fundamental or major, however. COMPARISON TO OTHER SIMILAR PRODUCTS Right now I'm using CanDo to re-implement a project I originally did with SuperBase4 Pro. I wouldn't exactly call it a 'similar' product, though. After less than 3 weeks with CanDo, including learning time, I was at the same point that I was after 4 months with SBase, and the application is vastly better in the bargain. The online help and programming aids are unrivaled. BUGS No crashes yet; once in a while I can click on a button and nothing will happen, but that doesn't usually persist. Also, certain errors you can make in your program can bypass the error handler and cause CanDo to just quit (cleanly, so far as I can tell) without explanation, or sometimes even appear to hang. The latter usually happens only when I try to address an ARexx port improperly, for example. Included are utilities to stop a deck which has hung or is stuck in a loop. I rate it as very stable. VENDOR SUPPORT I wish they had some kind of Net presence. There is a CanDo mailing list but so far it has shown almost no activity. My only contact with tech support came before I ordered the product, to verify that all the functions I need were present, and they seemed informed and helpful at the time. Note that there are rumors Inovatronics is in financial trouble, but they seem to be hanging in there at the time of this writing. CONCLUSIONS This is one of the slickest programs I've ever used on the Amiga. It's actually one of the slickest programs I've used on any platform, when you come right down to it. Anyone who needs to write software on the Amiga and has not already invested lots of time and effort into a more conventional programming language, or does not have the time to use something like C, should take a good look at CanDo. It's useful for everything from multimedia presentations to games, database applications to paint programs. It's also ideal for application prototyping or building front-ends to other software packages. COPYRIGHT NOTICE Copyright 1995 Ben Scott. All rights reserved. --- Daniel Barrett, Moderator, comp.sys.amiga.reviews Send reviews to: amiga-reviews-submissions@math.uh.edu Request information: amiga-reviews-requests@math.uh.edu Moderator mail: amiga-reviews@math.uh.edu Anonymous ftp site: math.uh.edu, in /pub/Amiga/comp.sys.amiga.reviews