📄 rfc569.txt
字号:
Network Working Group Mike PadlipskyRFC 569/ NET-USING Memo 1 NET-USINGNIC # 18972 October 15, 1973 NETED: A Common Editor for the ARPA NetworkBACKGROUNDAt the recent Resource Sharing Workshop, there was a somewhatsurprising degree of consensus on what I had anticipated would theleast popular aspect of the my "Unified User-Level Protocol" proposal:A number of the attendees agreed without argument that it would bea good thing to have "the same" context editor available on allServers -- where "the same" refers, of course, to the user interface.We even agreed that "NETED" seemed to be a plausible common name. Inview of the fact that the rest of the proposal didn't seem to captureanybody's imagination, though, it seemed to be a useful notion toseparate out the common editor and make it the subject of astand-alone proposal.My resolve to come up with the following was further strengthened atthe the organizing meeting of the Network User Interest Group, whichfollowed the Workshop. Being primarily concerned with user issues,this group was downright enthusiastic about the prospect of a commoneditor. Indeed, this proposal has been reviewed by the group and isendorsed by it.REASONSThe need for a common editor might well be obvious to many readers.They are encouraged to skip this section, which is for the benefit ofthose who don't already see the light.In the first place, it's almost axiomatic that to use a time-sharingsystem, you have to be able to create files (/"datasets"/"segments").Even if you're only using the Network to send "mail", you'd still liketo be able to create a file separately, so as to be able to edit itbefore sending. And if you want to write a program -- or even make a"runoff" source file -- you simply must be able to use some editorcommand on the system at hand.Unfortunately, there are even more editors than there are systems;and each one has it own conventions and peculiarities. So "Networkusers" (who use several Servers, as opposed to those who use theNetwork only to access a particular system all the time) are facedwith the unpleasant chore of developing several sets of incompatiblereflexes if they want to get along. This can certainly be done. Ithas been by a number of members of the Network Working Group.NETED SPEC p.2The real kicker, however, comes when we consider the needs of thoseusers -- who are coming into the Network community in ever-increasingnumbers -- who are not professional programmers. They just want toget some work done, "on the Net" (that is, irrespective of whichoperating system they might be talking to). They are likely to beappalled rather than amused by having to learn a dozen ways of gettingto first base. Therefore, it seems clear than not only do we need acommon editor, but we also need a simple common editor.CHOICESSimplicity is not the only criterion for rejecting the apparently"obvious" choice of either TECO or QED. (That it is a strong factoris indicated by the old test of "Consider explaining it to a naivesecretary -- now consider explaining it to a corporation president.")Perhaps even worse is the problem of "dialects". That is, featuresvary across implementations, and settling on a common set of features(or dialect) is likely to be a very hard task, for programmers tend toget very fond of their familiar goodies. Besides, both TECO and QEDhave their own strong (/fanatic) advocates, who's probably never bewilling to settle for the other one. Further, not every system hasboth, and implementing the other is a fairly large job even if the NWGcould agree on which (and how much).At any rate, the difficulties seem overwhelming when it comes tochoosing a high-powered editor as the common editor. Therefore, Itried to think of a nice low-powered editor, and it suddenly occurredto me that I not only knew of one, but it was even fairly welldocumented (!). The editor in question is known on Multics as "eds"(the same member of the "ed" family of editors which started onCTSS), a line-oriented context editor (no "regular expressions", butalso no line numbers). It is used as an extended example ofprogramming in the Multics environment in Chapter 4 of the MulticsProgrammers' Manual, which gives an annotated PL/I listing of theactual working program. It is simple to learn and should be quiteeasy to implement, PL/I version serves as a detailed model with onlyequivalent system calls and choice of language to worry about. I urgeits adoption as the common Network editor, to be known on allparticipating Servers as "NETED" and/or "neted".DOCUMENTATIONIn view of the fact that if "eds"/NETED is adopted only perhaps adozen members of the NWG will actually have to implement one, it seemswasteful to distributed some 30 pages of the MPM to everyone --especially since most of the parties concerned have access to an MPMalready. (Another problem solved by not including it here is that ofwhether I'd be violating copyright by doing so.) The exact referenceis pp. 24-54 of Chapter 4 of Part I of the Multics Programmer'sManual.NETED SPEC p. 3Anybody who needs a copy can let me know. Although the emphasis inthe document is, naturally enough, on the Multics-specific aspects, Ibelieve that the listing is clear enough to serve as a model toimplementors without any great difficulty. If we do get to theimplementation stage, I'll be glad to try to explain any non-obvioussystem calls, either individually or in a follow-up memo. But eventhough we "initiate" where you "open", or we " call los_$read_ptr"where you "IOT TTY" (or something), it shouldn't cause much trouble.For that matter, some implementers might prefer to ignore the existingprogram and simply work from the function specifications (below).LIMITATIONSIt became abundantly clear during the course of the review of thisdocument by the User Interest Group that the limitations of NETED mustbe acknowledged (even insisted upon) and explained here. In the firstplace, it must be emphasized that it is not being proposed as "THE"Network editor. Rather, it is an insistently simple-minded editor fortwo major reasons: 1) it is meant for use mainly by non-professionalprogrammers, and 2) more important still, it is meant to be extremelyeasy to implement. Therefore, it seems far more important to go withthe published program, with all its warts, than to specify theaddition of new, undebugged features. The idea is to make itimplementable in man-days by an average to average-plus programmerinstead of in man-weeks by a superstar programmer.In the second place, the very act of adding new features is fraughtwith peril. To take some examples from the comments I received duringthe review phase: In the first draft, I inadvertently failed todocument the mechanism by which the ability to "go backwards" (i.e.,to reverse the direction of the current-line pointer described below)is actuated. Several reviewers argued strongly for the inclusion ofsuch a mechanism; but, not knowing it was already "in" the code Iargued -- successfully -- for leaving it out, on the grounds that weshould stick to what's in the existing code, which is known to work aspublished. Even what to call such a new request would have beendebatable -- should it be "-" and become the only non-alphabetic name?should it be "b" for "bottom"? should "n" (for "next") become "+"?And so on. Although this particular issue turned out be a falsealarm, I've left it in to emphasize the sort of pitfalls we can getinto by haggling over particular "features". Another familiar featureis some sort of "read" request so that the file name need not bespecified as an argument to the command. Then, of course, one wouldalso want a "create" or "make" request. And perhaps a file deleterequest? It keeps going on and on. The point, I think, is that if weallow ourselves to go into "tinker mode" we could spend as many yearsstriving to achieve consensus on what features to add as we've spenton Telnet or FTP ... and still not please everyone. Therefore, I urgethe NWG to accept the contention that having a working model to use asNETED SPEC p. 4a pattern is more important than any particular additional features(even though I myself find "=" for "what's the current line'snumber?" annoying to live without).RESPONSESFor the benefit of those who don't want to plow through the functionalspec, this seems to be a good spot to indicate what appropriateresponses to this proposal would be. Ideally, I'd like to hear from aresponsible system programmer at, say, TENEX, CCN, UCSD, UCSB,AMES-67, one of the DEC 10/50 Hosts, and from any of the experimentalServers who happen to be interested, that they think it's a fine ideaand why don't I log in next week to try their NETEDs. Next mostdesirable would be agreement in principle followed by specificinquiries about "eds". I would hope that haggling over specificfeatures wouldn't occur (as we're not trying to do a definitiveeditor, just an easy, commonly implemented one based on an existingimplementation), but unfortunately I can't legislate such haggles outof existence. At the very least, I'd hope to either hear or seereasoned arguments why it's not worth doing. As usual, phone, mail"mail" ("map.cn" in sndmsg, or "map cn" in "mail" on Multics) or RFC'sare the assumed media for responding.USAGE
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -