[comp.sys.ibm.pc] Clipper vs. dBase IV for compiled programs

stevec@hub.toronto.edu (Stephen Curran) (11/15/88)

Does anyone have some experience with these two products that they
would share?

I have a fairly typical application, a client database, that is
accessed through a set of dBase programs (create client, modify
client, etc,) on a LAN.  Occasionally, a user will want interactive
access to the data.  I will soon have several similiar databases
running on different LANs.

In looking at what's available to handle this (better than my current
scheme---straight dBase III Plus LAN), I thought the best choice would
be to use Clipper to create the database programs.  The programs (I
think) will be smaller (VERY important) and faster, especially on
start-up.  dBase III starts up very slowly--painful if you're just
going to run a quick database program and quit again.  In addition,
purchasing dBase III or a clone and running it on a single PC for
interactive use would satisfy that need.  As well, the Clipper
programs could be run on all of the LANs, without purchasing
additional copies of Clipper for each one.

Now dBase IV comes along.  It has a compiler included, and several
features beyond Clipper, and would also seem to do the job.

So, my questions:

1)  Do I have to purchase dBase IV for every LAN to use compiled
    code on each?  Does it create standalone programs?
2)  How big are compiled dBase IV and Clipper applications? (ie. what
    is the minimum size of standalone compiled applications?).  I'd like to
    be able to run the programs while the user has WordPerfect loaded in
    memory---can either do that??
3)  Can Clipper and dBase III be used on the same data files to provide
    both program and interactive access?  dBase IV and Clipper??
4)  Any experience with which is the best way to go for this?

thanks...
...stevec

UUCP:	{decvax,ihnp4,linus,utzoo,uw-beaver}!utcsri!uthub!stevec
ARPA:	stevec%hub.toronto.edu@relay.cs.net
CSNET:	stevec@hub.toronto.edu
CDNNET:	stevec@hub.toronto.cdn
BITNET:	stevec@hub.utoronto (may not work from all sites)

brown@hpccc.HP.COM (Jeffrey L. Brown) (11/17/88)

>/ hpccc:comp.sys.ibm.pc / stevec@hub.toronto.edu (Stephen Curran) /  9:18 pm  Nov 14, 1988 /
>
>So, my questions:
>
>1)  Do I have to purchase dBase IV for every LAN to use compiled
>    code on each?  Does it create standalone programs?
>2)  How big are compiled dBase IV and Clipper applications? (ie. what
>    is the minimum size of standalone compiled applications?).  I'd like to
>    be able to run the programs while the user has WordPerfect loaded in
>    memory---can either do that??
>3)  Can Clipper and dBase III be used on the same data files to provide
>    both program and interactive access?  dBase IV and Clipper??
>4)  Any experience with which is the best way to go for this?
>
>thanks...
>...stevec
>
>UUCP:	{decvax,ihnp4,linus,utzoo,uw-beaver}!utcsri!uthub!stevec
>ARPA:	stevec%hub.toronto.edu@relay.cs.net
>CSNET:	stevec@hub.toronto.edu
>CDNNET:	stevec@hub.toronto.cdn
>BITNET:	stevec@hub.utoronto (may not work from all sites)

I can't say a thing about dbase IV.  However, for 2.5 years I developed
multiuser applications in Clipper on a network running Netware (from 4.6a
all the way through Advanced 2.1 SFT level II).  So I think I can answer a
few questions :-).

When Clipper compiles an application, all of the runtime stuff it needs goes
with it.  Therefore, size starts out large-

? 'Hello, world'
quit

gives an executable of ~130K.  On the lighter side, I was developing large
applications (~15,000 lines of code) with executables of ~250K--read that to
say the size growth rate goes way down.  One of the reasons this all happens is
that Nantucket hasn't taken care to build its library in a modular fashion.
The above program will load the complete math library to resolve some
dependency somewhere.  Believe me, I complained to Nantucket enough for a
lifetime.  Anyway....

If there is enough free memory, Wordperfect can be used while your application
is running.  I used WordPerfect as an editing subsystem and a merge letter
generator.  Made it easy to do merge stuff, since all Clipper had to do was
create the WP R/E-code merge file and then let the user deal with it in
WordPerfect.  Also allowed the user to modify stuff before its printed.  When
WP exited, the user is back in the application, at the point where WP started.
Clipper allows the programmer to tailor memory usage, so usually WP can be
loaded (assuming 640K memory here).  I started running into problems at ~250K
executables--just not enough memory to make both happy campers.  Once DOS 4.0
settles down, this should (I hope!) no longer be a problem.

I've never used dbase III+ with a LAN pack, so I don't know what record
locking is available.  As I said, my applications were multiuser.  They used
record locks to allows any user with proper clearance for record update
to modify a record in a file.  The number of users in that file at any one
time was unlimited.  Until the Winter 87 (I think) release of Clipper, the
index files were incompatible.  Now, if you want, you can use dbase indexes
in Clipper.  You don't want to.  Nantucket's indexing method creates much
faster indexes than A-T's method.  Hopefully A-T fixed this in IV.

PLUG WARNING PLUG WARNING PLUG WARNING PLUG WARNING PLUG WARNING PLUG WARNING

Ok, time for a plug.  Netware SFT provides transaction tracking with full
transaction abort on hardware failure in the server, cabling, netstation, or
when the programmer says "abort me."  Microsoft C 5.0 lets you write routines
that interface to Netware services.  Clipper also lets you write 5.0 C routines
to do stuff that Clipper doesn't have (you can also write your own functions in
Clipper, Pascal, Fortran, or (God forbid) assembler), like specific routines
for your network.  The combination of Clipper's data management and
manipulation facilities and Netware's data protection and tracking facilities
provides a dbms environment very similar to what you would expect in a
mainframe environment.  Things like context sensitive help, the ability to
display a screenful of names while the user is typing a key or using arrow keys
to select the record to work with, or just being able to say "JOE BLOW is
modifying this record right now....please try again in a bit" vs.  "Sorry,
some user has the record locked...you can't use it" are big wins with the user.
Hopefully dbase IV fixes most of the things it was lacking in III+; otherwise,
there's no way I would change (if I was still doing Clipper programming -- see
below).

END PLUG

Ok, everyone can remove their protective suits now.  Back to reality.

Disclaimer:  I had this job while I was in school.  Now I have a real job (from
the money point-of-view; the rest of the job was a blast), so I'm not doing PC
work anymore.  I never worked for Novell or Nantucket; I just used their
products, and think they made useful systems to solve the needs of their
clients at the time and contributed to the evolution of technology in their
respective fields.  If you would like further details, please mail me--that way
I can maybe give pointers to people who use this stuff every day (and give
credit where tons of it is due)....

Jeff Brown
brown%hpccc@hplabs.hp.com
...hplabs!hpccc!brown