Newsgroups: comp.lang.scheme,comp.lang.scheme.scsh,comp.lang.lisp,comp.lang.tcl,comp.lang.functional,comp.lang.c++,comp.lang.perl.misc,comp.lang.python,comp.lang.eiffel
Path: cantaloupe.srv.cs.cmu.edu!nntp.club.cc.cmu.edu!goldenapple.srv.cs.cmu.edu!das-news2.harvard.edu!cam-news-feed3.bbnplanet.com!cam-news-hub1.bbnplanet.com!cpk-news-hub1.bbnplanet.com!news.bbnplanet.com!dispatch.news.demon.net!demon!fido.news.demon.net!demon!sun4nl!cwi.nl!news.cwi.nl!jack
From: jack@cwi.nl (Jack Jansen)
Subject: Re: TCL & interface definitions (was Re: Ousterhout and Tcl lost the plot with latest paper)
Message-ID: <jack.860412457@news.cwi.nl>
Sender: news@cwi.nl (The Daily Dross)
Nntp-Posting-Host: snelboot.cwi.nl
Organization: CWI, Amsterdam
References: <rcybba5k9c.fsf@redwood.skiles.gatech.edu> <199703271612.LAA06438@menhaden.adi.com> <s6y208um0ey.fsf_-_@aalh02.alcatel.com.au> <334412fb.7359993@news.demon.co.uk> <5i7euq$cmg@engnews2.Eng.Sun.COM> <jack.860328432@news.cwi.nl> <01bc42ae$4fc84940$6b91aac6@odessa.bmc.com>
Date: Mon, 7 Apr 1997 11:27:37 GMT
Lines: 40
Xref: glinda.oz.cs.cmu.edu comp.lang.scheme:19345 comp.lang.scheme.scsh:512 comp.lang.lisp:26449 comp.lang.tcl:65943 comp.lang.functional:8691 comp.lang.c++:259104 comp.lang.perl.misc:72892 comp.lang.python:20619 comp.lang.eiffel:19389

"Mark Sterin" <msterin@bmc.com> writes:



>Jack Jansen <jack@cwi.nl> wrote in article <jack.860328432@news.cwi.nl>...
>> ...
>> ...With languages like Python or Tcl, with
>> no interface definitions whatsoever, you can only *hope* that you use
>> every interface correctly. I work on a largish project in Python, and
>> the one thing that gives continuous headaches is the lack of interface
>> definitions. Whenever you change an interface it is very very
>> difficult to check that you haven't inadvertantly broken something.

>This what the regression testing is for, isn't it ?

Regression testing is not good enough. The Python model is great
for small project and during the development stage of big projects,
but at some point you want to be able to cast the interfaces in
concrete, and have the compiler check that all uses and definitions of
the interface are correct.

One of the things regression testing will not catch is
misunderstanding over what the interface exactly is. If I create a
module with a function that sorts a list of integers, but my collegue
thinks that it sorts lists of any numbers, and this assumption is
correct for the first implementation but changed later regression
testing will not catch this.

I would dearly like a "companion language" to Python in which I can
specify what interfaces are. If such interface definitions are
available Python would enforce them, giving me a much safer language,
if they are not available Python would function as it currently does.

Unfortunately I have no idea whatsoever as to how one would design and
implement this:-(
-- 
--
Jack Jansen             | ++++ stop the execution of Mumia Abu-Jamal ++++
Jack.Jansen@cwi.nl      | ++++ if you agree copy these lines to your sig ++++
http://www.cwi.nl/~jack | see http://www.xs4all.nl/~tank/spg-l/sigaction.htm 
