Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.2 9/18/84; site pokey.UUCP
Path: utzoo!linus!philabs!cmcl2!seismo!uwvax!pokey!dan
From: dan@pokey.UUCP
Newsgroups: net.lang
Subject: Re: C++ available
Message-ID: <273@pokey.UUCP>
Date: Wed, 30-Oct-85 10:47:20 EST
Article-I.D.: pokey.273
Posted: Wed Oct 30 10:47:20 1985
Date-Received: Fri, 1-Nov-85 02:53:18 EST
References: <845@dataioDataio.UUCP>
Distribution: net
Organization: U of Wisconsin CS Dept
Lines: 22

> 
> I believe most people miss the point about C. It is not the weak type
> checking that is a feature, it is the ability to escape the typing rules
> when necessary. Most languages with strong type checking forget to allow
> for an escape from it. This is why such languages tend to have lousy I/O
> and storage allocation features.
> 
> I would like to see a language with strong type checking, yet with an
> easy and natural escape from it (like how casts are done).

   You're in luck!  The language you describe is called "Modula-2"!  Not
only do you have type conversion functions (i.e., casts), but you have
loose types like ADDRESS, BYTE, and WORD.  There is even a nifty corner
of the language that says ARRAY OF WORD (and of BYTE, actually), is
procedure parameter compatible with _any_ type (this means that you
can write a generalized multi-byte file I/O routine, and use _anything_
as the object to be I/Oed.  Once in the routine, you can ask for HIGH(x)
to find out how big it is.  Look, no pointers!).

   By the way, if the (admittedly crummy) Wirth text is getting in the
way of you learning the language, try the new "Programming in Modula-2"
by Ogilvie, published by McGraw-Hill.  It's super!