[TYPES] The type/object distinction and possible synthesis of OOP and imperative programming languages

Dermot McGahon dmcgahon at gmail.com
Sat Apr 20 05:53:27 EDT 2013


Like you, I'm a programming practioner. Who has had an interest in types
and PL research for some years now. While it's great that you've woken the
distinguished gentlemen up, stimulating a bit of harmless high-level
discussion around terminology, precision and band-wagons: I think you may
be missing some of the points already made. In a helpful spirit, having at
leas enough understanding of both camps to be dangerous, I will point out
some of the specifics in that regard:

   - binary logic may be rigorous and precise enough.  What it's not is
   convenient enough.  The kind professors have said this clearly.

   - start reading their output.  They very much DO make concepts clear and
   definitive.  It's the Wikipedia dilettantes who muddy the waters.

   - re: abstraction and meaninglessness.  Check out the Peano numbers and
   how they can be implemented, for example in Scala, without reliance on
   primitives types.  Soundly based, relies on abstraction, no meaninglessness
   introduced.  I think you're missing some of the sub-textual points and
   questions being passed around between the researchers here.  Which is
   inevitable, because *they* do have the common ground that you seem to be
   yearning for.

   - re: that common ground.  CS researchers do implementation in spades.
    ML, Erlang and Haskell, all cases in point.  They do for the most part
   understand our world.  How many implementers do research?  Not really
   enough.  Or take the time to learn the basic terms and concepts?  I was not
   taught these concepts during either Batchelors (1990-1995) or Masters
   studies (2006-2009).  Yes, to being taught ADT's and logic programming.
    Yes, to breath of knowledge.  No, to depth and fundamentals.  I don't
   believe lambda calculus was mentioned once during any of those years of

   - of course you can't mix the two types of model in one model.  What a
   silly thing to say?  What is important IS that you can translate between
   the two.  A compiler is a translator. Translators are useful.  High-level
   abstractions are useful.  Models based on digital logic would not
   necessarily be more useful.  You don't think in terms of gates when you're
   programming and neither should you.  Why do you want to?

   - Read lambda calculus papers and think about how to construct the same
   arguments in boolean logic.  It's not a reasonable approach.  What exactly
   is your argument?

   - I can also recommend that you read more about categorical logic and
   domain theory (both mathematical subjects).  As well as the many great
   references already mentioned, please do keep them coming gents.  Like Mark,
   I will take the time to follow-up and continue to read, read, read.


On 20 April 2013 07:37, Mark Janssen <dreamingforward at gmail.com> wrote:

> [ The Types Forum, http://lists.seas.upenn.edu/mailman/listinfo/types-list]
> > I think there is some misunderstanding here.  Being "mathematical" in
> > academic work is a way of making our ideas rigorous and precise, instead
> of
> > trying to peddle wooly nonsense.
> I'm sorry.  I am responsible for the misunderstanding.  I used the
> word "math" when I really mean symbolic logic (which, historically,
> was part of philosophy).  My point is that the field is confusing
> because it seems to ignore binary logic in favor of symbolic logic.
> Is binary logic not "rigorous and precise" enough?
> --
> MarkJ
> Tacoma, Washington

More information about the Types-list mailing list