[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
Mark,
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
study.
- 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.
Dermot.
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