From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,6960ceaa57428e2f X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2000-11-19 23:51:06 PST Path: supernews.google.com!sn-xit-02!supernews.com!isdnet!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!logbridge.uoregon.edu!news.huji.ac.il!not-for-mail From: "Ehud Lamm" Newsgroups: comp.lang.ada Subject: Re: Another important feature of Ada Date: Mon, 20 Nov 2000 09:43:55 +0200 Organization: The Hebrew University of Jerusalem Message-ID: <8vakr3$s0h$1@news.huji.ac.il> References: <3A12041B.BCFD8CA0@worldnet.att.net> <8uu6tf$63d$1@nnrp1.deja.com> <3A12BBC6.E3FDAB0F@averstar.com> <8v5dkm$ftt$1@wanadoo.fr> <8v78bm01p5t@drn.newsguy.com> <3A183756.485D5911@worldnet.att.net> <8va2tf$c9l$1@nnrp1.deja.com> NNTP-Posting-Host: di2-84.dialin.huji.ac.il X-Trace: news.huji.ac.il 974706341 28689 132.64.12.84 (20 Nov 2000 07:45:41 GMT) X-Complaints-To: abuse@news.huji.ac.il NNTP-Posting-Date: Mon, 20 Nov 2000 07:45:41 +0000 (UTC) X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.00.2014.211 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2014.211 Xref: supernews.google.com comp.lang.ada:2258 Date: 2000-11-20T09:43:55+02:00 List-Id: Robert Dewar wrote in message news:8va2tf$c9l$1@nnrp1.deja.com... > In article , > Ray Blaak wrote: > > > It sounds good on paper, but in my experience almost all > > interfaces need some modification after coding starts and > > people can actually start using it. > > That's too pessimistic in the opposite direction. Whether > interfaces can remain stable depends on several things: > [snip] > > Certainly I can give a counter example. In the mid 70's I > did a real time operating system, PD/FMS for Incoterm/Honeywell. > Itwas roughly similar to say the VxWorks kernel, with a complete > set of tools (assemblers, linkers, file system including full > indexed files, system utilities, editor, shells etc) to support > program development. [snip] > > The way I proceeded was first to write the entire programmers > reference manual for the kernel with full details of all > callings sequences for thread scheduling etc, and the full > users manual for the program development system. These manuals > were edited into something very close to the final form in which > they were delivered to customers, with discussion on details > *before a single line of code was written*, and the only changes > were very minor (mostly style editing) from then to the final > release. This reminds my of Brook's discussion of OS/360 in the "The Mythical Man-Month." I totally agree with the approach you describe. One thing I think important to consider is that there are several levels of interfaces inside a (complex) SW system. I am still not sure that they are all really in the same family, aside from the very general trait of being interfaces. Some interface, as we all know, are between two internal components. Indeed, one thing I find problematic for some students is realizing that even if a component is internal, it had better be documented (at least in a cursory way), and seperated from the code using it (even if there is currently one user). Why am I belaboring all of this? Becuase the "low level" internal interfaces are usually those that people tend to think can be changed (sometimes each day...), and they are usually those that seem not to be documented. Survey: How many sw projects that use stacks, document their "stack" interface (assume these stacks are invisible to users)? Not that I am saying this is good SE. But we should realize this happens, even in pretty well organized projects (not the best, but many good projects). I am wonderring about enhancing the support for different levels of interfaces. My gut feeling is that the current state of the art in language design is not there yet. (Of course, as you example shows, you can do it all - and well - in assembly language). -- Ehud Lamm mslamm@mscc.huji.ac.il http://purl.oclc.org/NET/ehudlamm <== Me!