[net.lang] Strong Typing

steven@boring.UUCP (01/14/85)

In article <369@hercules.UUCP> franka@hercules.UUCP (Frank Adrian) writes:
> I'm sorry, but I really, really, really dislike strong type checking. Unless
> your language allows operator overloading, there is no way to write generic
> packages without defining everything as a huge, ugly union (which sorta
> defeats the whole notion of the thing, eh?). Array bounds checking usually
> just gets in the way. Optional and multiple length procedure calls are so
> useful as to make the idea of the language not having them completely
> ludicrous.

But these things are completely unconnected. A language can be strongly-typed
*and* have operator overloading *and* array-bound checking *and*
optional/multiple-length procedure calls. Algol 68 for instance. Don't go
and blame strong typing for absence of these things.

> The only way to get secure code is to get a secure programmer...

It's not enough. Everyone has off days, makes mistakes, no matter how good
they are. Despite some of the invective you read in this group, strong
typing helps you get programs debugged and running faster by checking that
you've done things consistently. It doesn't stop you 'doing what you want',
as some people claim, as shown by the successful implementations of
operating systems using strongly typed languages. In fact, quite the
contrary, it lets you do what you want and stops you doing what you don't
want. If your particular hate-language doesn't let you do what you want to
do, blame the language, not strong typing.

What Jan Jansen said about writing programs faster is true. An experiment
reported in the Computer Bulletin a few years ago said that programmers
using a strongly typed language took longer to get their programs *compiled*,
but the total time to get programs debugged and running was much less.

> I don't like hairbrained notions of some Godlike imperative called
> "security" getting in the way.
Security is not hairbrained. In fact, I expect that after a couple of
disasters caused by badly written programs (eg air-traffic control, train
signalling, nuclear-power station, missile guidance) security will be made a
legal requirement.

> you tell me how to get a generic routine written in a vanilla PASCAL.
Of course, you can't. But that's nothing to do with strong typing. You can't
in Fortran either.

> You're right. The second view is a European view. Maybe the programmers
> over there are so bad as to need this sort of thing (at least most of
> the code I've seen, written by Europeans, is). The first seems to be
> an American view. Give me #1 any day and let me get the job done...

I have no intention of contributing to a racist slanging-match, that sort of
stuff can stay in net.politics. Yes, discipline is inconvenient, but if
you've got responsibilities, sometimes it's necessary.

Steven Pemberton, CWI, Amsterdam.

g-frank@gumby.UUCP (01/15/85)

> > You're right. The second view is a European view. Maybe the programmers
> > over there are so bad as to need this sort of thing (at least most of
> > the code I've seen, written by Europeans, is). The first seems to be
> > an American view. Give me #1 any day and let me get the job done...
> 
> I have no intention of contributing to a racist slanging-match, that sort of
> stuff can stay in net.politics. Yes, discipline is inconvenient, but if
> you've got responsibilities, sometimes it's necessary.
> 
> Steven Pemberton, CWI, Amsterdam.

   Wrong, Steven.  It's not a racist slanging-match; it's a nationalistic,
jingoistic slanging match.  Nonetheless, you replied to the collective flame
better than I.  Many thanks.

   Interesting question, though:  what code, written by Europeans, has our
correspondent been reading?  I was prompted to go back and look over the
examples in Wirth's book on Modula-2 (second edition), and you know, they're
ALL dreadful.  Was he trying to save paper, or what?  The best way to adver-
tise a new language is to show clean, readable, elegant programs written in
it.  Maybe C hackers like the previous author, who like to work in a good,
muscular, MAN's language, would be a little more open to some others if we
had some better advertisements.

   Programming is such a matter of habit.  Someone used to C, or Fortran
(C is the new Fortran, you know), is mainly afraid of having to undergo the
discomfort of learning something new, and for little obvious benefit.  The
advantages of strongly typed languages have never been sold properly, at
least to an American audience.  Most people who learn these things in college
pick up the popular perception of strong typing as a hassle, as a violation
of their "freedom of expression."  I wasn't joking when I proposed that there
was a cultural difference in responses to programming languages.

   What am I trying to say (what am I trying to say?)?  If those of us
who feel that strong typing is important ever want to be able to preach to
anyone other than the converted, we have to be able to demonstrate an
overwhelming and obvious benefit to potential users.  That's tough.  That
means selling not just the language, but basic concepts of "good" software
engineering.  Is it possible to convince a C hacker that it's better to
do the hard work up front?  Maybe that's less emotionally satisfying than
an overnighter with the debugger.  Maybe it's hopeless.  I've gotta go.


-- 
      Dan Frank

	"good news is just life's way of keeping you off balance."