Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!decvax!decwrl!ucbvax!AI.AI.MIT.EDU!KFL From: KFL@AI.AI.MIT.EDU.UUCP Newsgroups: mod.computers.vax Subject: Re: VMS and programmer unfriendliness Message-ID: <[AI.AI.MIT.EDU].67100.860708.KFL> Date: Tue, 8-Jul-86 22:35:41 EDT Article-I.D.: <[AI.AI.MIT.EDU].67100.860708.KFL> Posted: Tue Jul 8 22:35:41 1986 Date-Received: Wed, 9-Jul-86 19:16:51 EDT Sender: daemon@ucbvax.BERKELEY.EDU Organization: The ARPA Internet Lines: 97 Approved: info-vax@sri-kl.arpa From: sasaki@harvard.harvard.edu (Marty Sasaki) VMS tries very hard to provide flexibility in the way a programmer can do things. As an example, the Emacs text editor (any implementation) will run a lot more efficiently on VMS if it took advantage of the qiow more fully to read in N printable characters, but to return as soon as it found a control character (normal characters insert, control characters are usually commands). Instead, most implementations read in a single character (no echo) then decide whether the character should be echoed or not (echo it if it should be echoed). I see your point, but this would not be a good idea in an Emacs. Printing characters normally self-insert, but can be and often are rebound to be commands. Especially in packages such as RMAIL and DIRED. And what about expansion of abbreviations? And what happens in the last column? Or on the last line of the screen? Are you sure VMS will echo every character in the same place as Emacs would? In general, echoing should occur as deep as possible. It is better for your modem to echo than for your terminal to do so. It is even better for the host to do so. It is best of all for the applications program on the host to do so. This is one of my main problems with VMS. Getting it out of the way. I want to handle things myself. This is not because I like low level programming. I don't. It is because VMS so often does things in ways I don't like. For instance: 1) Uploading files from word processors. The WPs often want to send thousands of characters none of which happen to be CRs. VMS is the only OS I know of which has a problem with this. I don't think this is complicated or hairy. I just want to do a read. I don't care if it is done in characters, words, lines, or whatever. So why do I have to use SYS$QIOW? I don't mind funny FORMAT statements or unusual arguments to OPEN. I *LIKE* the VMS Fortran extensions. But suddenly, it isn't Kansas anymore. The manual is talking about pointers to double longwords in P0 space. It doesn't say a word about what lines to put in my FORTRAN program. It might be nice learning MACRO someday, but not when I've got a deadline. a) A Wizard gives me a character-at-a-time FORTRAN callable input routine. I use it to upload the WP files through a 1200 baud modem. This is too fast for the 11/785, so it sends ^S. The WP doesn't recognize ^S so it keeps sending. Disaster. b) With the 11/785 all to myself, I am later able to upload it. It uses massive amount of CPU and DIO. c) A couple years later. Same problem, different solution. I write a program in Pascal on a PC. The program requires no internals or escape to assembler, just plain (Turbo) Pascal. I am able to upload the WP files at 4800 baud just fine. After inserting CRs every few dozen characters, it is easily uploaded to the 11/785. Why should this be much easier and faster on a micro? 2) Same problem (sort of). I want to write a simple word processing program without it falling down in flames if the user doesn't remember to press CR every few words. 3) I want to write a SEND program. I easily wrote one where you can say SEND TXA0: "Hello there! Can't talk long...". But I want it to not require the quotes. Wizard: "DCL will turn it to uppercase, expand what's after the apostrophe into any logical name match, and discard what's after any exclamation point." Me: "Cute. How do I turn it off." Wizard: "Turn it off...?" 4) Some users are used to using ^H (backspace) to delete mistyped characters. Some are stuck on terminals where DEL is a shifted key, or isn't there at all. DEC: "Tough!" 5) Most of our users had non-VT100 compatible terminals. No VMS programs support them. I was willing to write a sort of CRTSTY or PTY type program to map VT100 sequences into the equivalent sequences on the Telerays, LearSieglers, H19s, etc. But there doesn't appear to be any way to do this. 6) I have had to travel miles just to see what a user was typing that VMS doesn't like. Why isn't there a utility, or some documented way to write one, that lets a system manager watch what is on a user's screen? 7) The Emacs we had, like all good Emacses, allows you to enter OS commands in a seperate window. This would have been a lot more useful if VMS had recognized the process as an interactive one rather than batch. I suppose it is possible that this would be easy, and the Emacs implementors messed up. Somehow I doubt it. 8) DUMP formats its listing for 80 columns if you view it on an 80 column terminal. If its output it directed at a printer or a file, it is formatted for 132 columns. Cute feature. But how do you turn it off? I want to direct it at a file for study on an 80 column terminal. How do I get it to format 80 columns in a file? It took me three years to figure out how. Sorry this is so long. Just got carried away. ...Keith