[Prev][Next][Index][Thread]

Re: Help with type advocacy






Ken, 

while I like Bob's answer a lot, let me urge you to make your presentation
a lot more concrete. Many undergraduates who enter PhD programs just don't
get the abstract talk that many of us speak. They have never heard it, and
they may have been told at their undergraduate institution that C++ or Java
is all they will ever have to know to build a system. (That is often just
implied because N - 2 courses are taught in that language of fashion.)

Assume they know C++. Show them small snipets of code that compile just
fine. Then ask them why programs that link in these snipets crash, hang,
memory dupm, print "the answer to 4+5 is 'foo'", etc. 

Assume they have heard of Pascal. In that language, you couldn't do many of
these things. Then show a tomb stone: 

 RIP: Pascal, restricted to death by its type system. 

Explain. Mention that Java's type system suffers from lots of restrictions,
too. 

Then tell them that ML and Haskell exist, and that their type systems are
sound. 

Now challenge them: 

 (1) how can you learn to use an existing language in a safe manner? 

     from pl people! perhaps some students who "know" that all languages
     are the same may sit in your courses and try to learn how to improve
     their coding 

 (2) how can we (as a community) learn to build better type systems:

     build real, interesting systems in languages where we can tinker with
     the type system.  

Be concrete. Abstraction is what they must learn. 

Good luck. -- Matthias