Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!usc!samsung!think!mintaka!mit-eddie!apollo!apollo.hp.com!mishkin From: mishkin@apollo.HP.COM (Nathaniel Mishkin) Newsgroups: comp.sys.apollo Subject: Re: The White Paper Keywords: RPC, networking Message-ID: <47492647.20b6d@apollo.HP.COM> Date: 7 Dec 89 16:21:00 GMT References: <15101@joshua.athertn.Atherton.COM> <14983@joshua.athertn.Atherton.COM> <31904@cci632.UUCP> <46f42a6a.20b6d@apollo.HP.COM> <471b93ba.20b6d@apollo.HP.COM> Sender: root@apollo.HP.COM Reply-To: mishkin@apollo.HP.COM (Nathaniel Mishkin) Organization: Hewlett-Packard Apollo Division - Chelmsford, MA Lines: 91 In article <15101@joshua.athertn.Atherton.COM>, joshua@athertn.Atherton.COM (Flame Bait) writes: > % = Achille Petrilli > # = Nat Mishkin > > = Joshua Levy (me) > > # I don't think > # it's easier to use when I can only pass one parameter as input thereby > # requiring me to manually write code to assign my "logical" input parameters > # into fields of a struct before making a remote call. > > This is a non-issue, at least in my mind. Both Sun and Apollo allow you to > pass as many arguments as you want, they use slightly different syntax, but > it is no big deal. We can argue about syntax forever, but why bother. OK, I'll grant you the right to like what you like, but I just want to make it clear to all our readers what we're talking about. Suppose I want to define and call some procedure (say "proc1") that takes 3 input params and returns 2 output params. With Sun RPC you have to do (something like): struct proc1s_ins { int in1; char in2; float in3; }; struct proc1s_outs { short out1; double out2; } proc1s_outs proc1(proc1s_ins); You have to make up a struct for each unique combination of input and output parameters used in your interface. In NCS you just do: void proc1( int [in] in1, char [in] in2, float [in] in3, short [out] *out1, double [out] *out2 ); Sure it's "just syntax", but I think it matters. > Using your compiler analogy: C is simple. I understand how to write > a compiler for it. Even though I never will, the fact that I could is > very important. It shows that the language is understandable. The fact > that I could write an XDR compiler shows how easy and straight forward > the language is. The fact that I can not for NDR shows the problem; that > NDR is compilcated. First, you write a compiler for NIDL, not NDR. Second, I guess I don't understand what you're trying to say. Simplicity is not the only metric of the utility of a language. The "language" (instruction set) of most RISC systems is simple, that doesn't mean I want to program in it. > Besides source code availability, there is also "plain old" availablity. > Take a company which makes a product for IBM RT, DEC ULTIRX, Suns, Apollos, > and HPs, and wants to expand to VMS and IBM PCs. Sun RPC is available on > all these platforms; Apollo's RPC is not. (The ringer is the IBM RT, which > does not yet have Apollo RPC, as far as I can tell.) The bottom line is > that every new UNIX machine coming out now has Sun RPC as part of its > standard software bundle. Most of them have Apollo RPC also, but the > difference between all and most is important. You can get NCS in binary form from Apollo for Ultrix, Sun, Apollos, VMS, and MS/DOS. IBM has licensed NCS from Apollo. We'll have to see what they ship. DEC and Apollo (HP) have announced that the two companies are doing joint work on NCS. I won't argue that Sun RPC is probably being shipped in binary form by more vendors today than NCS. But let's recall that this discussion started as one of technical merits. I can only hope that the technical merits will eventually change the availability situation. > Since everyone must use NFS (like it or not) everyone has Sun's RPC. > If you want to pay $25,000 you can get Apollo's RPC also. The $25K number is completely out of context. That's the price of the NIDL compiler source. The NCS runtime library source sells for something like $1000. (The source to both is available for essentially nothing to universities.) I think the binary forms of both the compiler and the runtime are around $500-1000 each. -- Nat Mishkin Hewlett Packard Company / Apollo Systems Division mishkin@apollo.com