From mboxrd@z Thu Jan 1 00:00:00 1970 MIME-Version: 1.0 In-Reply-To: References: <3c15204068afe321faaffb9c6da96e81@brasstown.quanstro.net> <5770988d827477da20e090349680932d@brasstown.quanstro.net> <20120603021256.56c3334c@inari.ethans.dre.am> <20120604034833.68a0f565@inari.ethans.dre.am> <19032fce09c8b87b98d44452d894a0aa@ladd.quanstro.net> <20120604050110.08369567@inari.ethans.dre.am> <20120608095611.256412f5@inari.ethans.dre.am> <660f0fce70b61217441791748ff6d836@brasstown.quanstro.net> Date: Fri, 8 Jun 2012 08:27:42 -0700 Message-ID: From: David Leimbach To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> Content-Type: multipart/alternative; boundary=047d7b10cb0f2bc83a04c1f7a4f0 Subject: Re: [9fans] Heresy alert, Zerox -> Clone Topicbox-Message-UUID: 9a0cc716-ead7-11e9-9d60-3106f5b1d025 --047d7b10cb0f2bc83a04c1f7a4f0 Content-Type: text/plain; charset=ISO-8859-1 On Friday, June 8, 2012, Gorka Guardiola wrote: > > > > Yes, which makes one wonder about type systems in programming languages > and > > if they're any better than documented conventions of I/O. (i think they > may > > not be, but they serve some documentation purposes all their own) > > > > I think type systems have their use but do not help much at the borders > (I/O) of the program. > > If only more people understood this they'd realize that it's important to understand how things get marshalled between programs. Types are internal only, but may help drive marshaling. Java Beans make me gassy. > Reminds me of this paragraph in our paper (sorry for the autoquote) > > http://www.mdpi.com/1424-8220/12/6/7109 > > "The most usual mistake is to argue that synthetic files do not provide > types and/or type checking, for example, when used to execute commands > or to exchange data represented as text. It may not seem so, but > type-checking > does not help much regarding correctness of the requests made and/or > data retrieved. > Note that clients and servers may be written in different programming > languages. > Some will be strongly typed, some not. Those that are typed may have > different, incompatible, type systems. > Synthetic file servers must check data written for validity, like an OS > kernel or a network server would. If the request made is invalid, an error > is raised. It does not really matter in practice if the error is due > to type checking > or due to an invalid request. If the response given by a server is not > correct, the > client of the server is responsible for checking it for validity and > acting accordingly. > What we have seen in practice, if that when the user makes a mistake, the > device > raises an error, and the user tries again; this has never turned out > to be a problem." > > --047d7b10cb0f2bc83a04c1f7a4f0 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable

On Friday, June 8, 2012, Gorka Guardiola wrote:
>
> Yes, which makes one wonder about type systems in programming language= s and
> if they're any better than documented conventions of I/O. =A0(i th= ink they may
> not be, but they serve some documentation purposes all their own)
>

I think type systems have their use but do not help much at the borders
(I/O) of the program.


If only more people understood this th= ey'd realize that it's important to understand how things get marsh= alled between programs. =A0Types are internal only, but may help drive mars= haling. =A0Java Beans make me gassy.
=A0
Reminds me of this paragraph in our paper (sorry for the autoquote)

http:= //www.mdpi.com/1424-8220/12/6/7109

"The most usual mistake is to argue that synthetic files do not provid= e
types and/or type checking, for example, when used to execute commands
or to exchange data represented as text. It may not seem so, but type-check= ing
does not help much regarding correctness of the requests made and/or
data retrieved.
Note that clients and servers may be written in different programming
languages.
Some will be strongly typed, some not. Those that are typed may have
different, incompatible, type systems.
Synthetic file servers must check data written for validity, like an OS
kernel or a network server would. If the request made is invalid, an error<= br> is raised. It does not really matter in practice if the error is due
to type checking
or due to an invalid request. If the response given by a server is not
correct, the
client of the server is responsible for checking it for validity and
acting accordingly.
What we have seen in practice, if that when the user makes a mistake, the d= evice
raises an error, and the user tries again; this has never turned out
to be a problem."

--047d7b10cb0f2bc83a04c1f7a4f0--