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