Subject: REVIEW: CanDo version 3.0
From: [email-masked] (Ben Scott)
Date: 21 Feb 1995 16:50:59 GMT
Newsgroups: comp.sys.amiga.reviews

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:	[email-masked]
   Request information:	[email-masked]
   Moderator mail:	[email-masked]
   Anonymous ftp site:  math.uh.edu, in /pub/Amiga/comp.sys.amiga.reviews