Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!visix!ip2020!adamksh From: adam@visix.com Newsgroups: comp.object Subject: Re: A Hard Problem for Static Type Systems Message-ID: <1991May3.184332.28319@visix.com> Date: 3 May 91 18:43:32 GMT References: <554@eiffel.UUCP> <1991Apr26.203642.17387@leland.Stanford.EDU> <556@eiffel.UUCP> <52166@nigel.ee.udel.edu> <1991May1.143831.2065@maths.nott.ac.uk> Sender: news@visix.com Reply-To: adam@visix.com Organization: Visix Software Inc., Reston, VA Lines: 36 In article <1991May1.143831.2065@maths.nott.ac.uk>, anw@maths.nott.ac.uk (Dr A. N. Walker) writes: |> [I have no axe to grind on the general static/dynamic debate. |> Dynamic typing is often more convenient, but it is, I still maintain, |> *necessary* only when you, the programmer, don't know what types of |> objects your program is going to have to deal with or what operations |> are going to be effected on them. That situation might be acceptable |> for a quick prototype, but not for a finished system. That is why it |> is easy to describe *situations* in which dynamic typing is desirable, |> but we have not seen a completely specified *problem* for which it is ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |> needed.] Yes, a completely specified problem is, by definition, one in which you know all the objects and operations, ergo there is no way to completely specify a problem that requires dynamic typing. However, I think you overemphasize the importance of completely specified problems. In my view, underspecified problems are not just quick prototypes. System browsers are underspecified. AI programs are underspecified. Learning starts with an underspecified state. A system that learns, or helps you learn, must be underspecified. You learn how to completely specify a problem by attempting various underspecified solutions. I see this as the fundamental difference between computer science and software engineering. |> -- |> Andy Walker, Maths Dept., Nott'm Univ., UK. |> anw@maths.nott.ac.uk Adam