FlagShip is a cross-platform database development and xBase porting system for any Unix OS. It is source compatible to CA/Clipper 5.x and earlier.
FlagShip is an easy, productive 4GL programming language and database engine ideally suited to building data oriented business applications. With CA/Clipper compatibility, FlagShip allows you to build cross-platform applications for DOS and Unix. Companies choosing have access to millions of trained CA/Clipper & xBase Programmers.
Unix has multi-tasking, multi-processing, multi-threading, Client/Server support, and virtually no memory limitations. Unix is also available from the smallest to largest of hardware.
FlagShip is source code compatible with CA/Clipper 5.x, FoxBase 2.x (With FoxKit), and Dbase III. FlagShip supports In-line "C" code and the Clipper Extend System. You can also use FlagShip as a DBMS and/or I/O library for "C" with its "Open C API" Interface. FlagShip allows you to have a common set of source code for Unix and DOS.
Reduce coding time without leaving "C" Behind. FlagShip supports In-line "C" code, and the Clipper Extend System; you can use FlagShip as a DBMS library for "C" with its Open "C" Interface. With add-on software drivers, FlagShip can be the 4GL language of choice working in Client/Server fashion against Oracle, Informix, Ingres, Sybase and other SQL DBMS engines. FlagShip allows creation of true executable code to be distributed with no payment of royalty or runtime fees!! FlagShip also allows you to have a common set of source code for Unix and DOS.
Mainframers, MIS, or Network Administrators can take the lead once again, bringing order to the chaos in most corporations. Fancy applications have popped up on PC LANs. Departmental PC programmers have been going wild with a language (Clipper) that allowed them to do the "End Run" around your applications development staff. Order can come as MIS rightsizes to Unix with FlagShip. Give your staff a superset of that same language that has worked so well at the departmental level. Move the PC applications to Unix. Moving these applications adds serious computing power, as well as providing for better data-sharing. Let those productive PC developers work for you as you also continue to do development and then deploy it for them. You could usher in a whole new era of co-operation!!!
FlagShip has a large installed base, and an active third party market from whom you can buy pre-made add-ons and utilities if you wish to accelerate your productivity. There is also room for you to enhance and sell the libraries and applications you have created in this marketplace.
One of the strengths of Clipper has been the capability to do "trial and error" programming without endangering your system. As any experienced C programmer knows, it is possible for a neophyte let loose with "C" and the right permissions to crash a Unix system by mistake. This is not the fault of Unix, but rather a testimony to the power of "C". It is just as easy to crash a DOS or any other system. FlagShip goes a long ways toward removing this danger, by allowing "trial and error" programming without danger to systems. It does so without losing the power of "C" when nothing else will do.
When used with a Unix development system, FlagShip has make utilities, editors, and debugger. It has dynamic and lexical variable scoping, user defined commands, and functions, code blocks, nested multidimensional arrays, pre-defined object classes and other features. FlagShip variables can be modified from the debugger, and reactive error handling is customizable. FlagShip reads and writes Clipper native Data files, and can also be attached to other data engines. FlagShip also provides substantial screen and user interface handling utility.
FlagShip allows seamless integration with other languages such as C, C++, C Shell, Bourne Shell, Korn Shell, Dbase, Informix, Oracle, Sybase and others.
If you have run into the speed or language limits using Oracle, Sybase, or Informix's 4GL tools, take a serious look at the FlagShip/Clipper 4GL Language. It is complete, extensible, and excellent for downsizing (right sizing) while creating the kinds of fancy applications that PC users have come to expect. All this in a heterogeneous, scale-able, environment that can be extremely cost effective while still use the SQL data engines you have.
Press hype aside, as a general solution, FlagShip excels.
Q: I am new to unix and would like to know a couple of things. How in simple terms is UNIX better than MS-DOS or MS-Windows??No more memory limitations! You can build executables up to 2 Gigabytes in size, provided your system is properly configured. Questions like, "Will the program still run on my PC with only 520KB of memory available are History!!"A: I work with MS-DOS, Unix, and MS-Windows everyday. Below are descriptions of the psychologically feelings that I have when working with these systems.
Working under MS-DOS is like being in a small room with no windows and no doors.Working under MS-Windows is like being in the same room with no doors and no windows but with lots of mirrors on the walls. It looks a lot bigger but I am still stuck in the same room.
When working under Unix, I have doors and windows in the room. I can move from one room to another. There is alot of freedom.
Unix and FlagShip support multi-user AND multi-tasking AND multi- processing, all at the same time! You don't have to fake Unix out to do these things as many try to do to DOS; just use it! Unix will allow many people to use it at once, with each doing many things at the same time, and toggling between them. With FlagShip you can even emulate an entire PC LAN on a single computer; therefore it may even be practical for you to use FlagShip to develop software for PC LANs! It makes for less money invested in your hardware for development purposes.
No more speed limitations (scalability)! You can start with a 386/SX and Linux; whatever you create will work on a 386/40, a 486/33 or 50 or 66, or Pentium, or even a Multiple Pentium box. It will even work in machines from a number of vendors with 2 to 100 processors. You need never change the binary you created to run the full scale. Very similar machines can support one to several hundred simultaneous users; they can each have any number of sessions or programs running at the same time. For instance, a 386/40 does a respectable job of supporting 5 to 10 simultaneous users. Scalability is one of the promises that NT has been holding out. Many buyers do not realize that Unix has had it for years. While Unix at first may appear to be expensive, when you compare systems to a PC-LAN with a similar number of users, Unix is usually quite a bit less expensive.
More Speed! When you use a PC on a typical PC LAN, it stores its files on a Novell or similar file server. The PC does the sifting, sorting, indexing, etc. in the files. As a result far more data is transferred across the LAN than just the data the program is supposed to work with. In fact, often the whole file is transferred across the network cable hundreds or even thousands of times during a user session. This is impractical, and can really bog down everything on the network. It is practical to do word processing (Files are only occasionally retrieved or save, mostly manipulated in RAM) this way, but not data access, especially as the file sizes increase. A local user's PC on a LAN is often far less powerful than the network file server, and yet it is the one that actually has to so the seeking, calculating, indexing, etc. with database applications.
In a Unix configuration, the power of a host machine is shared between users. This relieves the network of all the extraneous data transfer. One attempt at this in the past has been to use xBase or other Client-Server NLM's on a Novell server. FlagShip/Unix does not prevent this, but in fact takes this concept to the next logical step.
Availability of larger file systems, RAID, Optical jukebox, LAN Wide backups! DOS does not handle large file systems very well. Unix systems can easily be configured for 1 to Hundreds of Gigabytes if you wish, using RAID (Redundant array of inexpensive drives) techniques, Optical media, and even optical jukeboxes.
In addition, Unix has Peer to Peer LAN capability to share file systems among machines. Unix file systems can easily be set up for fault tolerance. It is also easy to set up dual fault tolerant systems configurations if you wish. Unix can have file systems and I/O throughput rates that DOS users only dream about.
Inexpensive terminals OR PCs allow very low cost per user. You can connect inexpensive terminals costing 200-400 dollars to a very high powered Unix server. This will be MUCH less expensive than a PC LAN because it does not require high-powered PCs at each station. The Unix machine in fact does not have to cost any more than a Novell Server would. Also sharing the hardware, and centralized maintenance can result in higher quality, and lower cost overall than PC LANs.
Expensive hardware attached to a Unix system can easily be shared by all users on the system; on a PC LAN each user may need their own.
Centralized maintenance of one machine is often far more practical than maintaining separate software on a lot of PCs. Any update done on a PC LAN must be done on each station. On a Unix system it can be done in only one place, the main system for all users. Backups on the Unix system are generally done automatically and at night for all users, programs, and data.
You do not have to worry about individual CONFIG.SYS and AUTOEXEC.BAT settings for individual machines when terminals instead of PCs.
Unix is a perfect Network Server for PC LAN or other Unix machines! You do not have to give up PC LAN capability to get Unix. Unix can support inexpensive terminals simultaneously to providing file service as well as print and other services to a network of DOS/Windows PC's.
Unparalleled communications capabilities! Unix was designed and used by AT&T for many years to support the International Telephone network. Every time you make a phone call you are using one or more Unix systems. Unix communicates to other machines with TCP/IP, NFS, Netbios, IPX, SPX, 3270, Token Ring, Ethernet, RS232 and every other method you have ever heard of when used with the appropriate software and hardware. It can do them all simultaneously if so configured. It has a large library of functions and routines that can be used to allow your programs to interface with these capabilities.
Data Security! Unix brings complete and well-tested security mechanisms with it. You can choose to make your data as available, or as protected as you like. In a central Unix system with appropriate security, someone cannot just slip a diskette into the drive and walk off with your data files; they often can on a PC LAN.
You can use any hardware and processor type! Unlike DOS or MS-Windows which is for only one hardware platform, some version of Unix is available for nearly every hardware platform known to man, from nearly the smallest to the largest.
Superb programmers development system, utilities, and tools, source code control, make, linking, etc., etc! Most of the things you have to buy separately for DOS, already come with a Unix system. If you have some utilities in DOS from which you are inseparable, generally there are Unix versions of them, or very similar add-on products for Unix that you can buy separately. Don't forget, you can always share the Unix file system with a DOS machine, or a DOS emulator for that matter. You can still use a lot of the utilities you currently use (editors, for instance).
In fact, on Unix you can easily test and debug one program while another is compiling. You can test entire network environment on just one terminal simply by switching sessions.
Virus Protection! There are very few virus programs for Unix. Because of the way Unix is designed, it is nearly impossible to design a virus that will work in the destructive way the ones in the DOS world do. Only by getting super user privileges can it have the system access it needs. This kind of privilege must first be granted by an administrator who has been deceived, or who is not setting passwords on accounts, or making other obvious errors. Any other kind of virus can only cause minor annoyances without really doing any serious damage.
Unix is very stable. It has capabilities that NT and OS/2, and Novell are only just now beginning to talk about & implement, such as ability to distribute applications and computing resources logically.
You can use Unix as a file server to PC apps, as a database data server to PC clients for database programs. You can use it as an application server for big power-hungry apps, which are still displayed on the PC. Unix can be both an applications machine, and a server machine, even at the same time.
There are millions of existing Unix users and xBase programmers available to help with questions electronically any time of the day or night. Many are on the Internet's Usenet News worldwide Bulletin Board system. More are on CompuServe, as well as other electronic networks and Bulletin Boards, and this doesn't even count the WorldWide Web, where over 80% of the connected machines are Unix boxes. It would not have been possible to build the Internet without Unix, Unix power provides the backbone and the flexibility.
Unix is super stable, tested, and proven. Unix is cost effective when used with inexpensive character based terminals. Unix can have graphical windowing, nearly indistinguishable from MS-Windows by users. Unix can run DOS and MS Windows applications while multitasking, multiprocessing these and other applications. Unix on the right hardware has power to burn, ease of use, and has flexible networking built in. Unix can be used as a Data Client/Server, File Server, Application Server and other kinds of servers simultaneously. Unix can be mix & matched with PC machines and networks, and allows distributed processing. Unix has hundreds of thousands of pre- trained users. What more could you want?
Most of it comes from the observation that the manuals are so thick, that there are so many different versions, and that the commands are often missing their vowels, and have so many options.
The majority of the problem has occurred because every vendor of hardware that has given Unix their own name and added few utilities of their own. They then proceeded to advertise it as different and better. In actual fact among the 100 or so versions of Unix, there are only three major versions. Even these major versions are so alike that moving from one to the other is rather trivial. The percentage in which they differ is as small as the differences when comparing MS DOS, IBM PC DOS, and Novell DR DOS. Only a few commands really differ. If you know one, you may be a bit annoyed for a few hours when moving to a different version, but then you get used to the difference, and become productive again.
Unix could be difficult if you tried to learn everything it has to offer all at once. But the same occurs when learning DOS, and especially Windows. In fact, the configuration files under the hood of MS-Windows are more complex than Unix's.
Keep in mind that when you first learned DOS, there were about 20 basic commands that you needed to understand; the rest could be looked up and learned as needed. It is the same with Unix; each command that you learned in DOS actually has a direct parallel in Unix. To do what you need with FlagShip should not require more than these.
You could even write a very short Shell Script (Read "batch file") which would actually allow you to use the same DOS commands you already know. It is possible to purchase utilities where this has already been done. Yes, there are hundreds, and even thousands of commands, choices and options available in Unix. This is one reason Unix is so powerful. It is comforting when you think about it, if you need the power it is there; if not, then you can just safely ignore it.
The remainder of this section assumes that you already know DOS commands and concepts. The Unix equivalents of these DOS commands is the same as the Unix commands that it is necessary to know. By the time you get done, you will see how much Unix you already know.
As you look at the following list of commands, keep in mind that the DOS file system of Directories and Sub directories concept was adopted from Unix. Where DOS uses "\" (Path name separator) Unix uses "/", where DOS uses "/" (Options to a command) Unix uses "-". DOS also adopted from Unix the concept of filters and piping ("|" connects output of one program to the input of another [i.e. "type filename|more"], and ">" or ">>" redirect output and "<" redirects input). When you are using DOS, though you may not realize it, you have been using a subset of Unix (in concept) all along. You need to learn more, only if you want to expand your use of the power of Unix.
DOS does not care about upper or lower case; Unix does. By default, in Unix always use lowercase unless you have a specific reason for uppercase. This is a bother at first, but as you get used to it you will realize how great a strength it is for flexibility of file naming. DOS requires 8 Digits of letters followed by a three letter extension (XXXXXXXX.XXX) for filenames. Unix allows this as well, but also allows very long names (up to 256 characters in most versions) using either case or both. When you do networking with DOS systems however, you will want to be careful and restrict yourself to the DOS naming conventions.
DOS/Novell UNIX Description Supervisor su, root Super-User login id, can do anything regardless of file permissions, or other restrictions, keep password protected n/a ln LiNks a file in one directory to a name in another, allows files to have more than one name in more than one place. If one gets changed so does the other. Very useful when you want the same data in more than one place but do not want the overhead of duplicate storage, or to have to maintain them both separately. Not possible on DOS, Novell, or Windows NT. ATTRIB chmod CHange MODe, where -rwxrwxrwx on the directory listing refers to {-}Type of file, d for directory, - for standard file, etc. First {rwx} is permissions for the owner read, write and execute, second {rwx} is the permissions for the group of people the file belongs to, read write and execute, and the last {rwx} refers to everyone else. If the letter exists, then the permission does, if replaced with - then it doesn't. See also LNG.3.3 in the online FlagShip manual. n/a chown CHange OWNer on file or directory and n/a chgrp CHange GRouP on file or directory. This is actually simpler and more elegant than the permissions and methods of setting them which Novell uses. BACKUP, tar, Tape ARchiver, or CoPy In/Out can move entire RESTORE cpio directory trees or individual files into a XCOPY holding file, floppy disks, or from one directory or file system to another. CD or CHDIR cd Change Directory and remember to use "/" instead of "\" as the pathname separator. Plain cd without a path moves to the home directory assigned to the user you logged in as. CHKDSK df,du Disk Free, and Disk Used utility, can report on the entire file system with everything, individual directories, or specific directory trees. COMP or FC diff,cmp CoMPares files, or directories to one another, and displays DIFFerences, similarities, etc. as defined by options supplied by the user. COPY cp CoPy by using of dot (.) for the current dir instead of nothing on DOS. Example: DOS: copy \tmp\file would bring the file from \tmp to the current directory. In Unix: cp /tmp/file. DATE, TIME date Unix includes both functions within one command, you simply use - options to determine which you want, and in what format. DIR ls LiSt directory, almost always used with the "-l" option, like ls -l *. These options are similar but have a more extensive range of choices than the DOS / options to the DIR command. ERASE, DEL rm ReMove a file. EXIT exit Exits the current Shell (COMMAND.COM on DOS). FDISK fdisk This is correct on SCO Unix, others may call it something else, but will have the equivalent functionality. FIND grep Get REPetitions or Get Regular ExPressions Retrieve lines that match a pattern from a file, similar to Norton ts (text search). Also egrep and fgrep which extend capabilities further are available on most Unix systems. FORMAT format Formats a floppy diskette. MD, MKDIR md Make Directory. MODE,CTTY, stty Sets modes such as baud rate, parity and other BREAK attributes on a tty (serial port or printer port). MORE more, pg Pages output for display on the screen. PATH PATH Environment variable which tells the system where to look for files to execute when named. Each user can have their own, which is usually in addition to a system wide path statement for sharing of the most common utilities. print lp Line Printer. Print spooling facility, runs in the background. lpstat tells status, lpshut shuts it down, lpsched starts it again, enable enables a printer, disable disables a printer, accept tells it to accept print jobs, reject tells it to reject print jobs, cancel tells it to cancel a print job. RENAME mv MoVe a file from one place to another, or just rename it. RMDIR rmdir ReMove a DIRectory. rm -r ReMove a directory, including all files and subdirectories. SET = <VarName> = <Value>, same as DOS but don't need the keyword SET in sh, or ksh (Bourne Shell or Korn Shell). To make the variable visible in sh and ksh, export it using "export <VarName>". On csh (C shell), use the "set" keyword (to set) or "setenv" keyword (to set and export) the environment variable. SORT sort SORT the contents of a file TYPE cat conCATenate: to add characters to a file, or from one file to another, more powerful than DOS type but includes it's functionality) ANSI.SYS TERM=ansi; export TERM (Setting Environment Variable for Screen output). Better: TERM=FSansi ; export TERM for the extended FlagShip support. Batch file Shell script (DOS Batch .BAT were designed after these, and have similar syntax. The unix versions have far more options and power. Refer to "man sh" manual pages. AUTOEXEC.BAT .profile There is a system wide profile for every user on .login the system, and an individual profile that adds to or overrides whatever is in the system wide profile. .profile in the user's home directory is used by sh and ksh, .login is used by csh. CONFIG.SYS sysadmsh SYStem ADMinistration SHell On SCO, SAM on HP, SMIT on AIX, and other names on other systems. also see Kernel Parameters in your system documentation for the system tuning information which is rarely needed, but useful. Menu Driven system modifications configurations & Options may be done with the administration shells. Also Refer to FlagShip online manual (fsman), section SYS.3. shell= sh,csh, simply different command line or Batch file command.com ksh interpreters, very similar but have differing capabilities. A: B: C: etc n/a Unix does not use these by default, although it can. (SCO Unix does come configured with a: and b:) View the Unix filesystem as your C: drive (Without the Drive letter attached), and everything, including floppy drives, tape drives, etc, are sub directories to the main file system. Usually these types of things are kept in the /dev (Devices) sub directory, but do not have to be. For instance you could create a file in the root (/) file system called A: or a: which then refers to /dev/fd0(Floppy Drive 0). Any additional hard disks also simply become sub directories "mounted" to the main one. Think of One Huge Directory tree on your C drive, with many sub directories. Refer also to FlagShip online manual sections LNG.3, LNG.9, SYS.1.1. Networking NFS & TCP/IP Many Different networking possibilities are available on Unix Systems, but the ones listed here are most common on UNIX systems (Often included at no extra charge), and are becoming more common on all other operating systems. Microsoft and Novell both support TCP/IP.
One of these ways is to simply copy all your files, .prg, .mem, .dbf, .dbt, .frm, .ch, etc files to floppy disks. Then put those disks one by one in the floppy drive on the Unix machine, and run the FlagShip supplied "FSload" utility. Other possibility is to connect the DOS drives directly (mount) or via NFS, TCP/IP, Internet, Intranet, LAN, serial cable and copy it directly....
"FSload" imports the files into the current directory on the Unix system. It strips the ^M, and ^Z symbols which DOS has in its text files in the process. (DOS uses linefeed-carriage return pair to end lines of text in a file, Unix uses only line feed, DOS uses Ctrl-Z to end a file, Unix needs no file end character) This is for convenience in editing only. In most cases FlagShip does not care whether these characters are in the file or not, providing they follow DOS' rules. Sometimes a ^Z at the end of a line, rather on its own line can cause problems, as can ^M in .ch files. So it is safer to remove them.
Compile the code with the command "FlagShip program.prg" (where program.prg is the main entry routine to your programs, it could have any name and/or UNIX wildcards), see more in the manual section FSC.1.
Run the Executable, your program is converted.
Possible issues I may deal with?
The way you program in DOS with Clipper, is to write Clipper Code using a Text Editor, Compile and Link using the Clipper compiler, and then Debug using the Clipper debugger.
The way you use FlagShip is exactly the same on the Unix machine. Simply replace the appearances of the word Clipper above with the word FlagShip, and the word DOS with Unix.
FlagShip code that you have created on one Unix System can be moved and compiled by FlagShip on any other Unix system without changes, so long as you have the FlagShip libraries for the target system.
So FlagShip is not a porting tool, but it can certainly be used as one!
Right now, everything that these operating systems claim to bring to the world have been standard features of Unix for years; Unix is stable as a rock. I would not bet my future on an unproved environment for lack of knowing what the alternatives are.
What these operating systems have going for them is only big advertising bucks, and press attention. If Unix vendors were to pull together on common advertising campaigns, these products would be totally dwarfed. In fact Bill Gates recently said in a public address at a major trade show, that NT WILL BE (Get the future tense here) a better Unix than Unix. Then he listed various things that NT is going to have, that Unix already does....
Also IDC (International Data Corp) states that nearly 95% of the World's business is transacted on Unix machines, and that there are still more seats (people using) Unix than ANY other operating system, including DOS/Windows. Yes, there are less Unix Machines than DOS PCs, but that is an unfair comparison. The number of users supported is a better apples to apples comparison.
IBM, pushing the RS/6000 with their new version of Unix (AIX), is advertising that OS/2 is going to have a Mach Kernel (one form of Unix). Their deal with Apple for PINK (The object oriented operating system) is based on putting the Apple interface onto the Unix operating system. NEXT STEP is the Unix operating system with a Mach Kernel and a nice object oriented User Interface. Solaris from Sun is also true Unix. I, for one, think that the Future is in Unix (or what it becomes). If you use any version, you need learn only a few minor things to use another version. A FlagShip developed product can be ported very quickly and made available easily on virtually any Unix based system. Simply buy an additional development library, copy your code, and compile.
There is no hardware vendor we know of, which does not already sell Unix, or hardware on which Unix will run. The dreams of scalability that Microsoft and IBM tout already exist. The "Binary Compatibility Daydream" cannot exist even under NT, except where the processor type used on each system is the same. Unix already is criticized for this. In NT, the implementation and therefore the criticism are yet to come. And the story goes on. Please refer to other parts of this document for more details.
Throughout the world, there may be as many users, if not more, connected to Unix systems than there are users of DOS machines. OS/2 and NT have an uphill battle to overcome Unix's lead in the Server market.
Moreover, Unix can be the File Server for PCs running Microsoft Windows. You can simultaneously have a Unix session with in a window on the PC. You can even run X-Windows applications within MS-Windows on a PC.
For that matter DOS emulators exist which run on Unix, and will allow the use of DOS or MS-Windows applications on Unix systems. Linux, SCO Open Desktop, UnixWare and others have this available automatically as a standard part of the operating system.
FlagShip runs in the X-Windows environment. Currently in text mode (e.g. without the proportional and scaleable typeset and mouse), but will use all the X-Windows features in upcoming releases.
You could also run the application and the data on a powerful Unix box, and simply have the PC (Even a lowly XT, or Cheap Terminal) share that power. Some applications make sense to have on a PC. Example of this are personal applications such as; a word processor, a spreadsheet, a drawing program, etc. Other applications which require high power, and multi-user simultaneous access to shared files make much more sense to have on the Server/High powered Unix box: Accounting, and most Database functions, or business processes requiring work to flow from one person to the next.
We and several Third Party suppliers are working on RDD (Replaceable Database Drivers) to provide complete and sharable compatibility with Clipper .ntx or Fox .cdx index files, and as well as the full file structures of the other xBase variants. Some additional RDDs are already available in the distribution (e.g. for CodeBase) or are downloadable for free (e.g. for SQL) from our ftp or Web server.
FoxKit is available, and has a processor that will convert the array and other syntax in the source code. It also adds more complete Fox compatibility to FlagShip with additional commands and functions from FoxBase. Same as with FoxPro, the FoxBase toolkit and/or the stdfoxpro.fh file may be used for additional compatibility.
FlagShip and Clipper are such flexible and stable object oriented products, that other xBase variants can be largely emulated by them, simply by defining new commands and functions. This is how our compatibility kits will be largely implemented.
Typically Informix (and other) 4GL Tools work by issuing an SQL request for data, which is then retrieved into an array within which it is manipulated. When finished, the changes are flushed back into the database with another SQL command.
With FlagShip you simply write a routine (UDF or User Defined Function) to call the database engine vendor's ESQL/C access library. This library call can fetch data into an array, or .dbf file. Then operate on the data with your code, followed by a flush with another function when finished.
Nevertheless, add-on software, FlagShip's RDDs (Replaceable Database Drivers) will be soon included as separately purchasable kits for FlagShip in order to integrate this capability directly into the FlagShip development system. The result will be that using other database engines will be as easy as using .dbf's. Visit the FlagShip's Web site (RDDs or Tools), some of the SQL drivers are already available there for free.
Not for 16-bit systems! When you take into account all the pros and cons, this no longer looks anywhere near as attractive as it does at first thought. DOS has such memory limitations that it is not practical to do such a thing. There are other products that do portions of this task, such as X2c, CodeBase, or Force, among others. But due to the memory limitations they are nowhere as complete a product as FlagShip. It is like comparing a Ford Pinto to a Cadillac.
True Executable code is almost always larger than Psuedo code with an embedded interpreter such as Clipper is. Our executables are about three times the size on the average as Clipper's. Even the smaller Clipper executable has terrible problems with memory management, and we are not willing to play those games. Not when we can give you something much better.
The idea of FlagShip is to allow the language that makes you productive, to let you work in Unix with very little additional knowledge. All this in an environment that also will add to rather than detract from your productivity. DOS will be around for a long time. We consider CA/Clipper to be our DOS version, while FlagShip is the Unix version.
Put away the fear. Do a little investigating on your own of the advantages Unix brings to you, advantages you have probably already thought of and wanted but not known where to find. Or check for the native FlagShip port to 32bit MS-Window systems.
FlagShip has a number of features which make it very easy to write code that is easily copied back to DOS and compiled with Clipper, or for that matter maintained on a common network file system available to both DOS and Unix.
Compile ONE version of code with Clipper for DOS executables, or with FlagShip for Unix executables...
FlagShip is licensed for the developer only, similar to the way Clipper is. You may compile as many applications as you like and sell as many copies of your executables as you will and can.
Upgrades to newer versions are always a percentage of the list price of the new version at the same license level you already own.
Since there are many different versions of Unix running on many machines with differing processor types, we have to produce and test FlagShip on each of them. If you have your product working with FlagShip on one machine, you do not need to make any changes to your code to use it on another type of machine. You will already know, and have everything you need to move from one system to the next. FlagShip insulates you from most details that might differ between versions.
You do however need to have a FlagShip for each type of Machine you support, and each machine on which you do development work. This is because a binary created on one will not work on another. There are two ways to accomplish this.
If you move the produced binary/executable code to the HP, it will not work. You therefore add to the client's bill, or pay for yourself, another heavily discounted FlagShip, copy the Clipper or FlagShip Source Code or the "C" Code, and tell FlagShip to compile. Then collect the customers money and move on. If someone then wants your program on an RS/6000, it is the same story as the HP, and SUN, and Data General, and so on. As soon as you have created the executable code for another platform, you may then sell that code to as many people owning the same platform as you like without restrictions.
Be aware that you may sell less copies of your software for Unix than for DOS, but you can charge substantially more money for your program running on a Unix system than on a DOS or Network system.
SCO, IBM, SUN, AT&T, HP, Data General, Motorola, Unisys, NCR, UnixWare, Linux, Silicon Graphics and many others. See our FTP site, or Contact us for a current version of the Porting list containing more than 50 systems.
But the *BSD Unix varaints have Linux binary compatibility box, so you may compile the application on Linux and execute it freely on NetBSD, FreeBSD etc.
In addition, if you own a particular special Unix system not on our porting list, we may be able to port to it under an individual contract with you.
The size of the executable depends on the assembler translation produced from C for the target processor. A RISC processor always produces significantly larger code than a CISC (the program of 1.5 MB on SCO may reach 7.5 MB on DEC).
In the FlagShip library there are more than 400 standard functions available for the user (from the sum of more than 900). That's much more, then in any other standard xBase library. The portions of the FlagShip library actually used are linked into the executable. This includes the limited interpreter module necessary for dynamic support of the xBase language and the UNIX system, such as:
Macros, Runtime Variable typing, and Runtime Code block evaluation tend to slow any application down. These issues are frequently overlooked in comparisons of FS produced code to C code, or CodeBase code, neither of which have these capabilities.
If these capabilities are not used in FlagShip, then our code does not pay the speed price either.
Users reporting speed problems are almost always older SUN Sparc, or especially IBM AIX owners that have been sold on unrealistic expectations of the machine they own and also of the Intel Boxes they have spurned.
On database and index access, faster access is always observed if Unix I/O speeds are equivalent to the DOS machine, and if the hardware is not otherwise too loaded. The only difference is the Clipper database and index access in single user mode, where the Clipper uses RAM only (does not r/w on the disk !!!) This is not possible in the same manner on Unix. In SHARED mode, FS is also faster than Clipper. In order to be a fair comparison, make sure Clipper has the files open in SHARED MODE.
All times in seconds.
The speed difference <faster> is calculated by: Clipper
(sec) / FlagShip (sec)
Source: bench1.prg (primes, Sieve of Erotosthenes)
Guideline values for identical hardware
a) 80486DX50, 16MB, DOS5 vs. SCO UNIX: Clipper 5.2 FlagShip 4.3 = faster
1. numer.calculation, 200 interations
4.78 sec 0.92 sec = 5.2 x
2. string manipulation, 200 interations
41.19 sec 1.91 sec = 21.5 x
3. num.calc, C-inline, 200 interations
4.78 sec 0.04 sec = 119.5 x
b) PP200, 64MB, Win-NT4 vs. Linux or SCO: Clipper 5.3 FlagShip 4.4 = faster
1. numer.calculation, 500 interations
9.61 sec 1.27 sec = 7.6 x
2. string manipulation, 500 interations
76.35 sec 2.51 sec = 30.4 x
3. num.calc, C-inline, 500 interations
9.61 sec 0.07 sec = 137.2 x
Source: bench2.prg (calculations, database)
Guideline values for identical hardware (PP200, 64MB)
Clipper 5.3 on DOS/WinNT+Novell vs. FlagShip 4.42
Clipper FS = faster
Empty loop 200,000 x .............................
1.37 vs. 0.03 = 45.7 x
Addition 200,000 x integer
..................... 1.71 vs. 0.48 = 3.6 x
Addition 200,000 x typed int
................... 1.70 vs. 0.06 = 28.3 x
Increment 200,000 x integer .....................
1.65 vs. 0.46 = 3.6 x
Increment 200,000 x typed int ...................
1.65 vs. 0.05 = 33.0 x
Multiplication 200,000 x integer ..................... 2.53
vs. 0.37 = 6.8 x
Multiplication 200,000 x typed int ................... 2.52
vs. 0.09 = 28.0 x
Multiplication 200,000 x float ....................... 2.31
vs. 0.33 = 7.0 x
Multiplication 200,000 x typed float ................. 2.31
vs. 0.09 = 25.7 x
Division 200,000 x float .......................
2.31 vs. 0.37 = 6.2 x
Division 200,000 x typed float
................. 2.37 vs. 0.11 = 21.5 x
Create database ...................................... 0.05
vs. 0.04 = 1.3 x
Append 10000 records, exclusive ..................
1.49 vs. 0.35 = 4.3 x
Append 10000 records, shared .....................
57.61 vs. 1.76 = 32.7 x
Replace 2x 10000 records, shared ..................... 34.06 vs.
7.24 = 4.7 x
Index 10000 records on character
................ 8.91 vs. 1.95 = 4.6 x
Index 10000 records on number ...................
8.52 vs. 1.96 = 4.3 x
Seek 1000x shared on character
................. 2.70 vs. 0.46 = 5.9 x
Seek 1000x shared on numeric
................... 2.64 vs. 0.43 = 6.1 x
Replace 2x 1000x records, shared w.2 indices ......... 12.68 vs.
0.98 = 12.9 x
Replace 2x 1000x records, shared w.2 ind. & DbCommit() 17.91
vs. 1.09 = 16.4 x
Replace 2x 1000x records, shared w.2 ind. & COMMIT ... 17.96
vs. 5.41 = 3.3 x
Append 1000x records, shared w.2 indices
......... 17.35 vs. 0.51 = 34.0 x
Append 1000x records, shared w.2 ind. &
SKIP 0 ... 17.35 vs. 0.71 = 24.4 x
Append 1000x records, shared w.2 ind. &
DbCommit() 22.74 vs. 0.71 = 32.0 x
Your results may differ according to the processor and operating system
used, try it by yourself by recompiling the sources available in the ftp://flagship.de/pub/multisoft/flagship/docu/bench-src.tar
file or accessable via Web by the "Docu" button in http://www.flagship.deThe
speed on Unix workstations may even be significantly faster.
Many workstations from Sun, HP, DEC, Motorola, Silicon Graphics, Sequent etc. may be SIGNIFICANTLY faster than a 486 processor, but may not be. It depends on the manufacturer model used (the CPU and clock speed), and the task being performed. Some RISC hardware may run noticeably slower, than a 486/50 or Pentium CPU. Linux for instance performs startlingly well on all platforms we have used it with. The Intel chips are a lot more powerful than they seem when handicapped by DOS, or MS-Windows.
You have to either recompile the sources on the target UNIX system, or purchase the special UNIX release of the third party library.
The easiest way is, when you own the source code of the library (Clipper, xBase, C)is to recompile it with FlagShip (see also paragraph 10 below) - and it is ready for your UNIX application!
We have ported a number of programs that used third party libraries to Unix. These are the steps we have found practical.
The FS2 Toolbox for FlagShip is call-compatible to Clipper Tools, formerly the NT2.LIB (CA/Nantucket) and is available for the same range of operating systems as FlagShip. See also the list of additional tools on http://www.flagship.de/tools.html and http://www.flagship.de/rdds.html for replaceable database drives (RDDs).
Back to FlagShip home page