Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!sdd.hp.com!spool.mu.edu!uunet!mcsun!hp4nl!media01!pkr From: pkr@media01.UUCP (Peter Kriens) Newsgroups: comp.object Subject: Re: Run-time Type Errors in Smalltalk (was Re: blip (was...)) Message-ID: <2237@media01.UUCP> Date: 8 Apr 91 09:26:20 GMT Article-I.D.: media01.2237 References: <3523:Mar1803:21:0591@kramden.acf.nyu.edu> <22032@yunexus.YorkU.CA> <14160@life.ai.mit.edu> <1991Mar25.201620.5839@cua.cary.ibm.com> <879@puck.mrcu> <887@puck.mrcu> Reply-To: pkr@media01.UUCP (Peter Kriens) Organization: aQute, Netherlands Lines: 34 > Does anyone have any facts relating to the assertion that run-time > failures due to type errors are rare in Smalltalk development? I do not have any hard facts about the number in a larger project, but from my experience it is extremely rare that an end user gets a "does not understand" (The smalltalk equivalent of a typing error). Actually we have experienced much more stable systems using Smalltalk and a dynamic binded version of C (CO2) then original C. I think this results from the fact that when you cannot explicitly type, you cannot make an error in it (e.g. less typing means less typing errors). And our experience shows that Smalltalk and CO2 code is much smaller than comparable C code. But mostly, if you get an error in Smalltalk it informs you about the contex while my experience in C shows me that it justs crashes or stops in a place far far away from the original error. I think this makes testing and quality assurance much easier, resulting in more reliable systems. In C or other static typed language, any error not caught by the compiler can be hidden for a long time and crash the system while it runs for long periods (At least I have had many of thos problems which took a long time to find). In Smalltalk errors are usually caught on the spot. Another reason might be the that IMHO the reuse of dynamic binded code is much better. This means that most applications we have written rely very heavily on a relatively small number of basic classes, which can be small because they are very generic. Peter Kriens pkr@media01.uucp