home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #30 / NN_1992_30.iso / spool / comp / lang / misc / 4028 < prev    next >
Encoding:
Text File  |  1992-12-14  |  3.0 KB  |  59 lines

  1. Newsgroups: comp.lang.misc
  2. Path: sparky!uunet!zaphod.mps.ohio-state.edu!caen!hellgate.utah.edu!lanl!cochiti.lanl.gov!jlg
  3. From: jlg@cochiti.lanl.gov (J. Giles)
  4. Subject: Re: who should specify languages?
  5. Message-ID: <1992Dec14.201155.9907@newshost.lanl.gov>
  6. Sender: news@newshost.lanl.gov
  7. Organization: Los Alamos National Laboratory
  8. References: <1992Dec2.230925.8405@newshost.lanl.gov> <1992Dec10.065945.7682@BofA.com> <1992Dec10.192524.25311@newshost.lanl.gov> <id.L8RV.IQC@ferranti.com>
  9. Date: Mon, 14 Dec 1992 20:11:55 GMT
  10. Lines: 47
  11.  
  12. In article <id.L8RV.IQC@ferranti.com>, peter@ferranti.com (peter da silva) writes:
  13. |> In article <1992Dec10.192524.25311@newshost.lanl.gov> jlg@cochiti.lanl.gov (J. Giles) writes:
  14. |> [...]
  15. |> > It works *really* well in programming environments in which several
  16. |> > languages are available and are all compatible at the procedure call
  17. |> > level.
  18. |> 
  19. |> It also works really well in UNIX, where programs are expected to work
  20. |> together. I write tools in whatever language is best suited for the task.
  21. |> Sometimes I write them several times as the requirements change: starting
  22. |> as a shell script, then moving to awk/perl/tcl/..., and then to C. I have
  23. |> one tool that's a combination of shell and C that started as Fortran and
  24. |> PL/M and migrated bit by bit as time went on...
  25.  
  26. Having languages compatible only at the pipe-I/O level is not 
  27. really acceptable.  It's too clumsy, slow, and inflexible to
  28. be of any real use for production purposes.  Operationally,
  29. a pipe is a weak subset of the functionality that should be
  30. present in an interprocess communications package.  Semantically,
  31. pipes are a very weak subset of function composition.  Among the
  32. problems is the lack of type-checking across the protocol - all your
  33. data must be reduced to byte streams (you *could* encode the type 
  34. information into the stream, but who does?).  Another problem
  35. is that all the communication requires two system calls, and on
  36. most implementations: a trip through the system buffers for all
  37. the data (both of these are *slow* and it's preferable not to
  38. move the data at all).
  39.  
  40. No, all things considered, the level of compatibility needs to
  41. be at the procedure call (or closer) for adequate interlanguage
  42. operation.  This could be accomplished on each system by standardization
  43. of the internal representation of data types which are common to most
  44. languages, standardization of the procedure call protocol (if your
  45. system hasn't already done so), and standardization of the format of
  46. relocatables (which is already the most common way to proceed).
  47. Finally, standardization of the most common data structuring 
  48. mechanisms (structs, lists, unions, etc.) at least with regard
  49. to their internal storage would be required.  None of these are
  50. inherently beyond the realm of possibility.
  51.  
  52. Of course, part of my objection to UNIX is that many of the languages
  53. and/or tools you mentioned are so poorly designed, hard to learn and
  54. use, and so full of tricky incompatibilities that they are not really
  55. acceptable even if they were more efficient, etc..
  56.  
  57. -- 
  58. J. Giles
  59.