wiz@wiznet.UUCP (Kean Johnston) (08/19/90)
To start off with, I'm not sure which platform this conference addresses, but since it isn't a comp.UNIX.databases, I am assuming that I won't step on any Unix nuts toes by talking about a DOS product. The product I wish to draw your attention to is the Clarion Professional Developer, by the Clarion Software Corporation, 150 East Sample Road, Pompano Beach, Florida 33064, Tel 305-785-4555, Fax 305-946-1650. Let me preface this review with the statement that never, in all the years that I have had any experience with database tools, have I been as impressed with a product. I am quite frankly of the opinion that Clarion is the perfect product. I was so impressed with my pirate copy (yes, I actually admit it :-)) that I rushed out and purchased a copy. Not that I actually NEEDED to, the on-line help is so good and comprehensive, that it covers all but the nastiest of topics. However, let me back up a bit and explain what Clarion is: Clarion is a data- base design and and prototyping tool, to put it simply. Clarion allows you to quickly and easily prototype relational database systems. From a single screen you can create a plethora of database files for your system, and then go and fill in all the fields for these files. This design display tells you at a glance what files you have defined, and when you are editing the fields of a file, it displays in a neat and logical fashion the fields and file indeces. As a prototyping tool, Clarion is not a fore-runner. However, it is so quick and simple to change your mind that using Clarion as a prototyping tools can make your life a little simpler. Once you have your basic file structure and field format done, you are ready to define a full-scale application. You can create menus, tables(more on tables later), data entry forms, reports, and you can even make provision in your application layout for external programs and Clarion modules. The format in which the application is presented is quite intuitive: You get an overall picture of the application by means of a tree disgram of the application, with any procedures which you have not completed marked as "ToDo" items. Thus, with very few keystrokes, you can see exactly where you are in an application, and how much you have still to do. While designing menus,tables,forms and reports, you use a very flexible screen painter, which allows you to totally control the appearance of your screens and reports. Changing your mind is trivial: you can move fields or blocks of text, copy from one place on screen to another, paint areas of the screen, draw lines, and you can even import screens or reports from other applications. Once you have completed the layout of your application, and you have defined all your tables,reports,forms and menus, you then let Clarion go and write the necessary source code for your application. This is not very quick, but the source code generator id clever enough to change only those modules which NEED changing, unless any globals have changed, in which case the entire application is re-written. Even at this level you have total control over Clarion. The Designer (the program which lets you design screens and applications) uses a "model" file, and this model file controls how Clarion writes its source code. If you don't like the style of the code it generates, then you simply change the model file, and from that point on, all the code looks as you specified. The result of about 2 hours work with Clarion, with no documentation, was a name and address databases, with related databases in which I could store things like, books lent to the person, (the book titles were maintained in a separate database, and appear as a pop-up list), the last time the person was contacted, and a memo field for each person in the database. The user inter- face is something to be marvelled at for so little work. It looks really neat and professional, and every field in every database had a help field attached to it, so the user could get help at any stage (although hitting F1 would just pop up a "No-help" available message, as I hadn't designed the help screens yet). Clarion can generate stand-alone executables which you can distribute royalty-free to your customers, or you can have your application use the RTLink run-time library, the choice is yours. The executable size is not small, but then the programs do a lot! As regards speed, well, Clarion REALLY impressed me here. Until I found Clarion, all our heavy-duty DBMS's were written in C, using Faircom's c-tree file handler, which is probably one of the fastest database engines availible today. Our low-grade stuff was done in Paradox. Because I have been spoiled by c-tree's speed, I was expecting another Paradox type snail, which would take 13 seconds to scan a 100 000 record database. But boy, was I in for a BIG surprise, when Clarion actually performed AS FAST AS c-tree! I was so impressed that I immediately smelt a rat, and looked int he Clarion library and lo and behold, there were c-tree's low-level index function names. This is not to say that Clarion DOES use c-tree, the tech-support people denied it emphatically when I asked them, but it does make you raise your eyebrows. So, just how fast is Clarion? To give you an indication, when we tested Clarion against Paradox 3.01, which is reputed to be one of the fastest PC databases around, Paradox didn't even come CLOSE to Clarion. The way we did the test was to create, in the respective languages, a program which would generate a database of 100 000 records, each of which consisted of 1 six character, randomly generated surname, and a 4 character first name field. The databases were indexed on the surname. To test the speed of the database indexing, we searched for the first surname beginning with an A, then the first Z, then the first N. This gives the two extremes of the index, and the middle. Paradox took over 13 seconds to get to the Z, and about 7 seconds to get to the first N. (I don't know how to time these things exactly). Clarion was ... wait for it ... KEYPRESS TIME! As I hit the Z, there first surname to begin with a Z appeared. And, just so I could boast about the speed of Clarion, I then created a 250 000 record database and the speed was NO DIFFERENT! This thing REEKS of power. So many things about Clarion stick out above the rest of the competition. Their use of database "tables" for example. These tables are basically "browse windows" into your database. A table usually contains an abbreviated entry from the database to which it is attached, which allows the user to scroll through the database until he finds the record he wished to delete or edit. In a table you can set up a "locator", which will search the defined index for any matching entry that the user types. The way THIS is done is also pretty niffty. As an example, in the surname and first name database, I set up a table with those two fields in it, and a locator for the surname. Then, to find the surname "JOHNS" as an example, I press the 'J' key. The first entry which begins with a J is brought to the top of the table. Then I hit the 'O', and the first surname to begin with JO appears, and so you go on, until you are within range of the surname you desire, at which stage you can scroll down the table until the desired entry is highlighted. Users just love this sort of thing, as it makes searching so easy and quick. Now that I have had the documentation for a while and I have had a chance to play with the language itself, I am quite convinced that Clarion has all it will ever need to kick Paradox and dBASE right out the water. That is, of course, if Clarion start marketing their product properly. The language is different to anything else you have seen, but once you are used to it, it makes a lot of sense. The Clarion Editor is a marvel as well. From within the editor you can call up a screen or report painter, design the screen in your editor, and all the source gets written directly into your editor buffer. From there you can fine-tune it if you wish, or you can get on with writing support code of the screen or report. This is only necessary, of course, if you are doing something very nasty which you can't do from within the Designer. All in all, Clarion is the most professional looking program I have seen in this market. Clarion Software have thought of just about everything that a programmer would need to make his life easier. The result of very little work is a professional, elegant, smooth-flowing program which your customers will all love. The context-sensitive, hyper-linked help which you can generate makes the application all the more professional too. The overall "feel" of a Clarion program is that the designers must have worked for years to create such an application. And the speed at which this is achieved is phenomenal. So, do yourself a favour. If you need a database development environment, or even if you just need a database system for the office, buy a copy of Clarion. You can run it on your network, and you will love every minute of the develop- ment cycle. And before anyone asks it, or accuses me of it, NO, I am NOT a Clarion employee :-) Just a VERY satisfied customer. And for $549 from the Programmers Shop, its a real bargain. -- Kean Johnston: wiz@wiznet.UUCP Bang: ..!ddsw1!olsa99!tabbs!wiznet!wiz "I think, therefore I am" - Rene Descartes
paul@frcs.UUCP (Paul Nash) (08/20/90)
From article <1562@wiznet.UUCP>, by wiz@wiznet.UUCP (Kean Johnston): > Once you have completed the layout of your application, and you have defined > all your tables,reports,forms and menus, you then let Clarion go and write > the necessary source code for your application. What language does it generate? Is it (hold thumbs :-) ``C'', and if so ... > looked in the Clarion library > and lo and behold, there were c-tree's low-level index function names. ... is it portable to other machines (like Unix boxes)? It sounds as though there is a special run-time library needed (not surprising!). Do you know whether this is available in source form, for other machines, or could be developed for other machines? This could be a nice way to cross-develop databane systems ... -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Paul Nash paul@frcs.UUCP ddsw1!proxima!frcs!paul
wiz@wiznet.UUCP (Kean Johnston) (08/22/90)
From article <54@frcs.UUCP>, by paul@frcs.UUCP (Paul Nash): > What language does it generate? Is it (hold thumbs :-) ``C'', and if > so ... Unfortunately not - I writes the applications in its own language which you then compile and translate into a raw .EXE file. As yet, Clarion has no Unix version, but they are working on it in the background. I spoke to one of the international sales ladies at Clarion, and she said that they did have plans on releasing a Unix version once they had completed version 3.0 of the designer. Thy are also working on a GUI version so that it will run on Macs and (I think) under Windows. Don't quote me though :-) > ... is it portable to other machines (like Unix boxes)? It sounds as > though there is a special run-time library needed (not surprising!). > Do you know whether this is available in source form, for other machines, > or could be developed for other machines? This could be a nice way > to cross-develop databane systems ... Again, no go. Right now it is a purely DOS product. -- Kean Johnston: wiz@wiznet.UUCP Bang: ..!ddsw1!olsa99!tabbs!wiznet!wiz "I think, therefore I am" - Rene Descartes
wiz@wiznet.UUCP (Kean Johnston) (08/22/90)
Here is a copy of a reply to some mail concerning Clarion which may answer some questions yet unasked ... From wiz Wed Aug 22 14:02:04 1990 Subject: Re: Clarion DBMS To: ddsw1!riacs!rutgers!mona.jpl.nasa.gov!khioe (Kent Hioe) Date: Wed, 22 Aug 90 14:02:04 GMT From: Kean Johnston <wiz@wiznet.UUCP> In-Reply-To: <9008212148.AA06884@mona.Jpl.Nasa.Gov>; from "Kent Hioe" at Aug 21, 90 2:48 pm X-Mailer: ELM [version 2.3 PL0] > I am currently searching for a good data base that can support the following > features: > > 1. muti-user. > 2. record locking for multi-user environment. > 3. support LAN (NOVELL or 3COM, or other LAN). Clarion uses a very neat feature called "MODELS" when it generates your source code for you. Proviced standard with Clarion is a NETWORK model file, which has full support for record and file locking. As regards data security on a LAN, or in fact with ANY Clarion application, you can set an owner password on a file which makes the file invisible to external Clarion applications like the Scanner (which views data in its raw format). Using these passwords and making a safe, secure LAN, you can pretty much guarantee the security of your data. > 4. support programming feature like Dbase langauge ( not necessarily dBASE > compatible). Clarion has its own language, in which you can manually write your programs. However, the Clarion Designer offers so much power and flexibility, that in a VERY large application which I have written in Clarion, I have only had to write about 40 lines of code manually, and that was for setting up tables and doing program serialisation. The language is unlike anything you have seen before, but it is nonetheless very powerful once you get into it. > 5. menu style. This is where Clarion stands out head and shoulders above the rest. The professional look of the programs you can create is unlike anything I have seen in any other DBMS. You have full control over the screen, as well as a very neat feature called a "transparrent" attribute. This allows you to create a help screen, for example, which will have a transparent region which overlays a data entry field. The result of this is that when the user presses F1 for help, you can build your help around the field he is entering. He can then see, in the middle of the help text, the data that he has entered. This REALLY impresses the users :-) > 6. Data entry control key: > - redefine exit key during data entry mode. > - browse record at particuler fields. > - help key. > - support function key. > - field validation. Again, using the model file to customise the source code generation, you can assign any key to do anything you wish. By default, the keys are pretty logical: INS adds a record, DEL deletes one, ESC backs you up a field CTRL-ENTER does a "screen accept" CTRL-ESC does a screen abort. From within the designer you can define up to 3 hot-keys which can execute any function you specify, be it a Clarion Designer function or something you have written externally. With regards to browsers, when you set up your browse tables, you can select any fields you like. If you use the "locator" feature (see original review), then this field MUSt be the field which forms part of an index, but all other fields are optional. You can even display fields from other databases in a table, as well as doing computed fields, total fields, and lookups into other databases. The help key is by default the F1 key, and unless you are a WordPerfect fan you would want to leave this as it is. However, you can assign it to anything you like bu modifying one single EQUATE value. I'm not sure what you mean by "support function key", but as I have just said, you can assign hot-keys to any form or indeed any part of the program. From within the designer, you are limited to 3 hot-keys per form, table or menu, but if you are writting the code manually, I don't think there is any limit. With regard to field validation, you can set any field to be a compulsory field, or you can write in your own code for field validation and sanity checks. > 7. support external routine (written in C language). Yes, this you can do, but you are limited in the complexity of the C you want to link in. You can not link in any C code which relies on the C startup code, as Clarion itself already has C startup code, and you can immagine the confusion that will reign if you have two run-times running. However, it is my experience that just about everything can be written in Clarion's language. I have linked in an external module which I use to serialise copies of my program, and it works well. I initially had a problem when using Microsoft C, but when converting to Turbo C (which is what Clarion was written in after all), I had no problems. Another work-around is to get the compiler to generate the assembler instructions for your C, and then remove all the "obnoxious" run-time stuff. A long way around the problem, but it works :-) > 8. produce .EXE file. Yes, Clarion produces EXE files without a hitch. This is how I distribute my application. You can also distribute applications in Clarions's compiled format and provide the Clarion run-time module, but producing EXEs makes the application faster. > 9. multiple index files and automatic update. This is what makes Clarion so fast. All files can have multiple indices and keys, and these keys/indices can be composite keys, IE use multiple fields for the key value. The way Clarion differentiates between an INDEX and a KEY is thus: An index if automatically updated every time you add a record. A key file must be built using the BUILD command. This gives you control of the index generation. > Kent Hioe > khioe@mona.jpl.nasa.gov I hope this answers your questions. I will be posting this to the net as well, as I'm sure it will answer others user's questions as well. Regards, -- Kean Johnston: wiz@wiznet.UUCP Bang: ..!ddsw1!olsa99!tabbs!wiznet!wiz "I think, therefore I am" - Rene Descartes
todd@slammer.UUCP (Todd Merriman) (08/23/90)
In article <1562@wiznet.UUCP> wiz@wiznet.UUCP (Kean Johnston) writes: > > [ praise be to Clarion ] > I, too, just bought Clarion and have a somewhat different view of how well the product was done. I have only used the application code generator as I am not interested in learning the database language (unless I absolutely have to). The code generator, "Designer," is easy to use, but it is difficult to do some things because the documentation is poorly written. In fact, if it weren't for the on-line help, you'd be lost. I have other experience with application generators using DataEase (MSDOS) and Unify (Unix), and they both blow Clarion away with regards to both functionality and quality of documentation. The underlying architecture of Clarion is awkward and unconventional, which makes it unintuitive to use. The lack of intuitiveness and poor documentation means that it will be difficult to learn its ins and outs. You had better shop around before you make the kind of investment that these kinds of packages require. Todd Merriman Software Toolz, Inc. 8030 Pooles Mill Dr., Ball Ground, GA 30107-9610 todd@slammer.UUCP, V-mail (800) 869-3878, (404) 889-8264
cortesi@infmx.UUCP (David Cortesi) (08/23/90)
In article <1562@wiznet.UUCP> wiz@wiznet.UUCP (Kean Johnston) writes: >The product I wish to draw your attention to is the Clarion Professional >Developer, by the Clarion Software Corporation, 150 East Sample Road, Pompano >Beach, Florida 33064, Tel 305-785-4555, Fax 305-946-1650. > [ ... ] >As regards speed, well, Clarion REALLY impressed me here [...] The way we >did the test was to create, in the respective languages, a program which would >generate a database of 100 000 records, each of which consisted of 1 six >character, randomly generated surname, and a 4 character first name field. >The databases were indexed on the surname. To test the speed of the database >indexing, we searched for the first surname beginning with an A, then the first >Z, then the first N. This gives the two extremes of the index, and the middle. >Paradox took over 13 seconds to get to the Z, and about 7 seconds to get to >the first N. (I don't know how to time these things exactly). Clarion was ... >wait for it ... KEYPRESS TIME! [...] >I then created a 250 000 record database and the speed was NO DIFFERENT! Seems to me you are making a lot out of a rather undemanding performance test. As usually implemented, an inverted index is a B-tree, and to look up ANY given key should entail reading no more than d+1 disk pages, where d is the depth of the tree and the "+1" is for reading the page that contains the target row. Lessee: speculate that a disk page is 512 bytes (common in DOS) and that allowing for overhead there are roughly 40, 6-byte keys per leaf page. There would be about 2,500 leaf pages in your index. The next level would have about 65 pages, then two, then the root, so d=4. The first probe for an arbitrary row should take 5 disk reads, and all subsequent ones should take either 3 or 2 depending on whether an intermediate page is cached. So the response time should consistently be the time to do 3 longish seeks on your hard disk, or roughly "chk-chk-chk-blink." I cannot imagine what Paradox is doing that takes multiple seconds. To verify my guesses, I ran a comparable test using Informix OnLine executing in a Sun 3/80 (M68030, not a SPARC) with a local SCSI drive. I made up a dbload file to your recipe (actually I used unix tools to make up the file from the contents of /usr/dict/words), 100572 unique rows in all. You didn't mention how long it took to load this table. In my setup, it took 4 min 15 sec to load the table without an index in place, and an additional 3 min 40 sec to create the index afterward. As I expected, the execution time for SELECT * FROM test_table WHERE lname MATCHES "A*" (or "Z*" or any other initial letter) was between 1 and 2 seconds. This is the time to find and display the first screen of 20 matching rows. I do not intend this as bragging; I would have serious reservations about any database that didn't do as well on this not-very-difficult test. This Clarion sounds nice, but with respect to performance you should maybe test it more thoroughly and compare to better competitors.
jstuart@kentvax.kent.edu (Jeff Stuart) (08/23/90)
In article <54@frcs.UUCP> paul@frcs.UUCP (Paul Nash) writes: >What language does it generate? Is it (hold thumbs :-) ``C'', and if >so ... No. The language is Clarion's own. >... is it portable to other machines (like Unix boxes)? It sounds as >though there is a special run-time library needed (not surprising!). Not at this time. The orignal author also mentioned the real LACK of advertising by Clarion Software but if you call them, (sorry I don't remember the number off hand) they will send you their current newsletter. I have worked with Clarion's product for the past two and a half years and have been REALLY impressed with it. Unfortunatly my current job does not use PC's so we can't use Clarion :-( (We are using Accell and Unify Aghhh.) . I am curious as to how many people are using clarion out there and what it is being used for. If you are using clarion would you please send me your name, how long you have been using it and what you are using it for. I'll start off with myself. I am Jeff Stuart, I have been using clarion for the past two and a half years, and my previous job we used to write an appraisal package. Please send it in email to either the address above or to jstuart@math-cs.kent.edu. -- Jeff Stuart Internet: kentba!jstuart@math-cs.kent.edu Kent State University UUCP : ...!uunet!telxon!teleng!kentba!jstuart Kent, Ohio 44449 (216) 672-3282 #include std.disclaimer
jstuart@kentvax.kent.edu (Jeff Stuart) (08/25/90)
In article <1564@wiznet.UUCP> wiz@wiznet.UUCP (Kean Johnston) writes: >I'm not sure what you mean by "support function key", but as I have just said, >you can assign hot-keys to any form or indeed any part of the program. From >within the designer, you are limited to 3 hot-keys per form, table or menu, >but if you are writting the code manually, I don't think there is any limit. At least with version 2.0 and probally version 2.1 you can have at most 16 keys or key ranges alerted. A key range is basiclly a range of keys like F1 to F10. The alert is used so that in the code you can automaticlly check to see if a certain key was pressed. If I remember correctly ( I ought to but I probably don't, I spent over 2 years working with clarion! ) you can also check for more than 16 keys or key ranges. > >> 9. multiple index files and automatic update. >This is what makes Clarion so fast. All files can have multiple indices and >keys, and these keys/indices can be composite keys, IE use multiple fields >for the key value. The way Clarion differentiates between an INDEX and a KEY >is thus: An index if automatically updated every time you add a record. A key ^^^^^ This should be a key. You have them mixed up. >> Kent Hioe >> khioe@mona.jpl.nasa.gov > >-- > Kean Johnston: wiz@wiznet.UUCP Bang: ..!ddsw1!olsa99!tabbs!wiznet!wiz > "I think, therefore I am" - Rene Descartes Hey when did Rene write that ^^^? -- Jeff Stuart Internet: kentba!jstuart@math-cs.kent.edu Kent State University UUCP : ...!uunet!telxon!teleng!kentba!jstuart Kent, Ohio 44449 (216) 672-3282 #include std.disclaimer
dafuller@sequent.UUCP (David Fuller) (08/28/90)
I believe that Clarion and its ilk are examples of the axiom that expression does not necessarily imply communication. As a Smalltalk dillitente, I have often bemoaned the lack of a Networked Smalltalk. I love Smalltalk for its expressiveness in the face of a windowed user interface and the delightful conundra it can generate ("let's throw the system clock icon into the trash and see what happens"), but developing a multiuser Smalltalk application leaves me cold. The hooks just aren't there. I have dealt with a number of Expressive Environments. The problem tends to be that they fall victim of their organization's success; that a platform which is productive in the early phases of implementation proves to be a problem during large-scale production. I do not mean to bemoan fast prototyping; the ability to get something going and ideate concepts early is crucial. But I believe that the long end of the software lifecycle demands tools that do not exist in the same quality and quantity as Things Which Generate More Code. I believe that our tool crafting efforts are largely misplaced; that we do not need more development tools. We need production maintenance tools. Hoorah for Clarion and its friends; but let's not get carried away until the other 90% of the software lifecycle are similarly addressed. Dave -- Dave Fuller Sequent Computer Systems Think of this as the hyper-signature. (708) 318-0050 (humans) It means all things to all people. dafuller@sequent.com