Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sdd.hp.com!hplabs!otter.hpl.hp.com!otter!sfk From: sfk@otter.hpl.hp.com (Steve Knight) Newsgroups: comp.lang.misc Subject: Re: Re: Run-time Type Errors in Smalltalk (was Re: blip (was...)) Message-ID: <2400043@otter.hpl.hp.com> Date: 17 Apr 91 12:05:52 GMT References: <887@puck.mrcu> Organization: Hewlett-Packard Laboratories, Bristol, UK. Lines: 26 Drew writes: > The only experience with dynamically-typed systems I have are Lisp-based > systems, just today I crashed one with a type error. If your system crashed, it has a serious bug. Type errors should be caught at run-time and put you into a debugging loop. [Drew also suggests ML as being a serious strongly typed system.] I had a similar type problem with ML, too. I found a hole in the type checker of my implementation & took a long time finding it. It was a serious bug in the implementation -- but not the language. Similarly, your LISP bug is a bug in the implementation. Furthermore, there's not much point in taking C to task for having (void *), when mostly every implementation of ML has the equivalent of New Jersey's System.Unsafe.cast : 'a -> 'b I only say "mostly" because I don't know about POLY/ML. (But I'll take a bet.) This little charmer is even worse than (void *). Admittedly, it isn't part of the language -- which is almost worse. If some one uses it, then the code has to be changed before it can be ported. I don't like the idea of changing code that has been written using this monstrosity. If I am going to use packages that require it, then I will trust the implementor to get it right once. Steve