Copyright 1988 by CompuServe AmigaForum, William Hawes. A formal conference with William Hawes was held in AmigaForum conference room 2 on 25-MAY-1988. The topic was ARexx, ConMan, WShell, and shareware in general. The following is a heavily edited transcript of that conference. Guest speaker's and moderator's comments are identified with their initials, I.E., "WH:". Forum members are designated with their names inside parenthesis, I.E., (tim smith). Other editing included the unraveling of interleaved comments, correction of obvious line noise problems, deletion of unrelated remarks, and paragraph formatting. Editorial comments added after the fact (by me) are presented in square brackets. The original, unedited conference transcript will be available through the end of the month; please contact me if interested. Thanks to everyone who participated! Rick Rae [76703,4253] ----------------------------------------------------------------------------- RR: Okay, let's get started. Everyone here knows or knows OF William Hawes, I'm sure... William, care to offer an opening comment? WH: Sure, Rick. Greetings, all. I'll be "Bill", if that's ok. RR: Fine! The floor is open. Tim Smith, go ahead please! (tim smith) I just tried ConMan and it is very good. Do you offer the source to registered owners? WH: I haven't released the source code, though it's under consideration The chief issue is one of support -- I'm using some of the extensions in ConMan with my other products, and need to be sure they work. The concern is that source code would lead to a profusion of versions, some lacking needed features. ConMan replaces part of DOS and could affect other programs, so I'm being cautious with it. RR: Henry Colonna, go ahead please. (Henry) Arexx is on the lips of everyone these days. Unfortunately for some of us who aren't programmers, the concept is a little bit hard to grasp, and even after several explanations some of us thickheaded types still don't quite understand. Could you give a simple explanation of what this could/may mean.. to the Amiga at large? WH: ARexx is a programming language, but one that was specificaly designed to be accessible even to novice programmers. Once we have lots of software that supports the ARexx command interface, end users will be able to change, extend, and integrate software packages by means of REXX language "scripts". Whether _every_ user learns to write simple programs in REXX isn't the real issue; the important thing is that you, or someone in your user group, or someone on Compuserve, or whatever, will be able to customize and modify software in a way that's not possible now. This flexibility and the integration possibilities are what people are so interested about. (Henry) What is meant by inter-program communications? WH: The Amiga provides system calls for low-level communication between tasks. Inter-program communication is the ability to exchange data and control software from within another package. It could allow you to set up an integrated environment with your favorite Word Processor, graphics programs, etc... without all of it having been done by one developer. RR: Bill, forgive me if I mis-state this, as I haven't had a chance to use ARexx... but my understanding is that ARexx is a programming language more like execute scripts or MS-DOS's ".BAT" files than C or BASIC. How accurate is this statement, and where does ARexx depart from the simpler approaches? What can I do with ARexx that I can't do with a script file? WH: ARexx is a much higher-level language than C or Basic -- you can pass programs as arguments to functions, or use the compound variables as a content-addressable memory. It's true that it makes a great scripting language, but the uses are much more general. As to examples of things that can be done in REXX but not in a script file, how about math? String functions? (substr, left(), right(), translate()). How about reading/ writing files directly? It's just a much more powerful language. RR: Thanks. John Toebes, you had a comment? (John Toebes) Yes. I wanted to point out what I saw in AREXX from a user standpoint. The program interface that Bill has designed doesn't ever have to be seen by the user in a script. In fact if it is done right, it works transparently. One excellent example is the TeX environment set up by Thomas Rokicki in which TeX talks to the previewer through an ARexx port. Because of the tight interaction of the two programs and an Arexx port on TeX itself, I can edit my file, press a key and have it send it off to TeX which then turns around and talks to the Previewer to display the file. In this way the 3 programs communincate quickly to give me an almost WYSIWYG environment. It is this form of program communication that we get and can hope to see more of. RR: How much of a programmer does one need to be to set up this sort of environment? (John Toebes) I wrote 0 lines of ARexx code. (Tom supplies a short 12 line Arexx script that I just copied into the REXX: directory and away I went). WH: Rick, were you asking about the interfacing itself? RR: Bill, it's difficult for me to speak intelligently (should I stop right there?) about ARexx since I haven't used it. But it sounds as if one could use it on a very superficial level as a super script language, OR one could treat it as a very high level programming language. I suppose what I was asking is "how deeply must one program and understand ARexx to do the sort of thing John was highlighting?". WH: The crux of it's use is in the "super script language" or "very high level programming language". These are really the same thing; a script is a simple "program" that exercises high-level commands, whether CLI commands or graphics primitives in a paint program. A program with an ARexx interface is essentially bringing out its internal operations so that others (possible just novice programmers) can use them in ways that the original designer may not have foreseen. You don't necessarily need an in depth knowledge of REXX itself in order to exercise the command primitives. RR: So what ARexx can "do" with any given program depends on the program itself... as long as it has an ARexx port, the sky's the limit? WH: In principle, yes. In order for the program to be effectively used, the developer needs to bring out a reasonable set of its internal operations -- usually along the lines of what's available in the direct user interface. RR: Dean, go ahead please. (Dean) From a developers point of view, does the AREXX port just look for globally defined commands specific to my (for example) program (such as LOAD file, SEARCH for a string, REPLACE with "" (if the program were a text editor)), and some other command set if some other type of program? WH: The ARexx interface sends command strings to your public message port, and you interpret these commands however you want. The specific comamnd set is always at the developer's discretion, though most will choose to support a fairly standard set (like LOAD, SEARCH, REPLACE in the editor example). Because the operations are performed by your program, you can be sure that each command is safe for your data structures, and a properly designed interface should be crash-proof -- a big advantage if people are developing macro programs in a multitasking environment. RR: Tim Smith, go ahead (tim smith) What programs support AREXX ? WH: Currently available products are Txed-Plus, CAPE68K, Amiga TeX, and WShell (my new command shell). There are at least a dozen products in the works at stages from "late beta" to "still developing". Others due out in the next few months include Microfiche Filer, Zing!Spell, several term programs, a couple of editors. Also, UEdit has just announced their ARexx version, and PCLO (from SoftCircuits) has ARexx support. The number is growing rapidly (and I don't necessarily know of all of the projects under way). (tim smith) Is the programming interface documented in the software package, or is there a developers package? WH: The ARexx package includes developer tools and information (header/include files, program examples). I expected most of my early sales to be to developers, and so concentrated on Language Reference/Technical documentation for the manual. It's actually remarkably easy to get an ARexx interface up and running... I've had developers call me up and tell me that they got the package two days ago and now their software is fully programmable. I do hope to have a more tutorial manual done at some point. RR: Glenn, go ahead please. (Glenn) Bill, Tim used up my questions on AREXX, so how about a description of the features of WSHELL? WH: Oh, sure. WShell is a much enhanced but fully compatible replacement for the CLI. It provides command aliases/ abbreviations, resident commands, built-in commands, an implicit "CD", piping (done concurrently, like U*IX), and a REXX interface of course. WShell provides a bunch of prompt string/window title "variables" so you can put things like time of day, return codes, stack size, current dir, process number, etc. in either your prompt or the window's title. It has other features like "echoing" commands, script-bit support, and so on. I tried to provide all the things that a command shell should do. RR: Bill, how would you compare WShell and ConMan? WH: ConMan and WShell are each parts of a "layered" software system. WShell uses ConMan for its line editing/command history features, as that was the original design intent of ConMan (to offload the ugly line-oriented stuff). The advantages of this approach are that you can replace individual components if a better one becomes available. For example, if someone writes a better ConMan, WSHell will work with it with no modification (assuming that they correctly implement the DOS handler interface). RR: Ah, I didn't realize WShell sat on TOP of ConMan, thanks. Bill, what do you see as 1.3's effects on, say, ConMan? I understand that this release has a lot of the features of ConMan built in. Any projections? WH: From a business standpoint? It's true that the 1.3 NEWCON: provides some of the features, but I doubt that anyone that tries them both will prefer the 1.3 alternative. Of course, many people won't ever _try_ ConMan, thinking that the stock software must be best. This is already a problem, though; one of the ironic things about having a shareware product is that you not only don't get many contributions from those who use it, but a lot of people don't even try it because they equate "free=junk". On the other hand, 1.3 may turn out to give a real boost to ConMan and WShell. Amiga users are expecting a lot of 1.3, and they may be disappointed that there's already better software available. RR: A good lead-in to a question I've been meaning to ask you all night: what sort of response have you been seeing on your shareware? What sort of returns are you getting, can you estimate the percentage of users to registrants, what's your overall view of shareware, and so on? WH: By shareware standards ConMan is a huge success; I'm up to 297 customers. But as a one-person company trying to make a living at Amiga software, it's very distressing that something as popular has failed to even cover the time it took to write and maintain it. I have no way of knowing exactly, but there are probably tens of thousands of ConMen in everyday use, and yet it's had only a fraction of the sales that a popular game would have. (Which then gathers dust after a few weeks). But I'm glad that ConMan has helped get my business going, and it's very satisfying to receive letters from people who like it. RR: How are you offering ARexx and WShell? ShareWare or retail? WH: Both ARexx and WShell are commercial, and both are doing quite well. I haven't even had time to advertise WShell yet and it's already out in lots of stores. I may do more shareware or freeware in the future, but not until I have a thriving commercial operation to keep the bills paid :-) RR: Marlene, go ahead please. (Marlene/Sysop) I just was curious as to how you got the idea to do ARexx for the AMigo ahead.. were you working in an IBM VM/CMS environment? WH: Yes, I used to do consulting work on IBM mainframes, and learned REXX there. When I got the Amiga and realized how cleanly you could do things with the multitasking OS, it seemed like you _had_ to have some sort of facility to make software more extensible, and to allow different programs to talk to one another. I had originally planned to do a programmable database package, and figured I'd need the macro language anyway, so REXX seemed like a good place to start... of course, I didn't think it would take so long to finish! RR: Doug, go ahead please. (Doug) Bill. has there been any sort of "official" recognition from CBM on ARexx? WH: C-A has been interested in ARexx since last summer, when they first saw what was being done with it at Stanford (Linear Accelerator, first beta-test site). Discussions are still ongoing and I hope that they will license it; that was my intention from early on. It's a matter of working out a business deal, perhaps somewhat more difficult since ARexx doesn't fit into any convenient categories as a software product. I will be doing all I can to work out a licensing arrangement, and in the meantime am concentrating on getting as many developers as possible to support the ARexx command interface. By year's end there will be at least a dozen packages with an ARexx interface, and possibly many more. (Doug) If it is officially adopted by CBM, where do you personally see it fitting into the scheme of things? WH: It will go out as part of the WorkBench disk and will be available to any software that needs it, much as Intuition is used. ARexx is built as a shared library so that it looks like an extension of the operating system. I foresee it being used by a wide variety of software products, making the Amiga an incredibly rich environment for consultants or VAR's who want to combine software packages into specific solutions. RR: Perry Kivolowitz, go ahead. (PSKivolowitz) Bill, Hi. First I want to say that ASDG is releasing a product which gives AREXX access to over 80 commands and variables, RSN. But for my question, everytime someone speaks of some ill about the Amiga these days someone pipes in ``USE AREXX'' as if AREXX is all things to all people. Bill, can you tell us in your words what AREXX is NOT? WH: Hmm, well, it's not all things to all people :-). The important thing is to start with well-designed, reliable software -- hopefully that makes good use of the many strengths of the Amiga. Given this, ARexx will make that software more flexible -- to allow the user to customize it for their environment. And it will provide a very powerful tool for building integrated applications from a "building blocks" approach; this will make Amiga software more directly useful in markets where it lacks strength now. (PSKivolowitz) On a different but related topic, what does a third party have to do to distribute a demo AREXX with their product? WH: At the moment only TxEd-Plus has a demo version; it's really an experiment to see a) whether it's enough of a demo to get the ideas across, and b) whether it still leaves an inducement to then buy the full package. A number of people are interested in distributing demo versions, and I want to be sure that it accomplishes the desired task before expanding the distribution (like doing a Fred Fish disk demo, for instance). Otherwise, what the products are doing is just listing the ARexx interface in the feature list, and letting me advertise their software as supporting ARexx. A couple of developers are discussing bundling ARexx with their products, but economically it makes the most sense to let the end user decide. That way, no one ends up with 2 copies of ARexx when they only need one. RR: Folks, I think it's time to put this one to bed and go informal. Thanks a million for your great efforts for the Amiga community, and continued success to you! All are free to chat. Thanks for participating! [At this point the conference broke up and went informal. Following are selected excerpts from that chat.] (Keith) Hi Bill, I might have missed it, but some example 'C' interface code would be nice for us lazy people WH: Keith -- I'm putting together a 'C" code disk, will be out soon. Better example! (Dean) Bill, Have you heard of any products that are AREXX only operable. (and do you think such programs might be useful)? WH: Dean -- a couple of developers are interested in bundling ARexx, if their application _has_ to have it. (Dean) I was thinking more along the lines of a simple program to say, display IFF pics under AREXX control. Replace DPslide and such pgms. It would assume that the user already has AREXX. Good for PD pgms. WH: Dean, there are some BBS's that now have ARexx sections, and such programs would presume having the full package. A slide- show pgm would certainly be a good application, but adding an ARexx interface usually leaves the current interface (menues, gadgets, etc.) intact. (Dean) Are they not AREXX scripts? I was speaking of executables. Hmm... unless I'm missing something? WH: Dean, yes, mostly ARexx programs, but sometimes executables to go along. (Keith) Bill, on the WShell disk there was some kind of "fix execute" prgm... what excactly does that do? (or am I mistaken?) WH: Keith -- yes, setexecute (=PatchDOS) fixes the DOS execute, so it inherits directory, path, and doesn't crash from WB (Keith) great! so the dos 'execute()' function can be called from a WBench invoked prgm?? (safely?) WH: Keith -- yes, though there's a WB patch that should be done too. After setexecte, PopCLI comes up much quicker, cause no C:RUN gets loaded