[gambit-list] My R6RS vote

Adrien Pierard pierarda at iro.umontreal.ca
Wed Aug 15 18:25:31 EDT 2007


On Wed, Aug 15, 2007 at 02:39:37PM -0500, Bill Richter wrote :
> the simple mathematical points I was making about DS: we can easily
> define compositional semantic functions without the use of
> non-Hausdorff Cantor sets (i.e. Scott models of LC).  I concluded that
> understanding DS is also not important in CS!

In fact, this might not be the point the most studied by schemers.
Denotational Semantics, Domains and Game theory, or in short Category
Thoery are very extensively studied in strongly typed language theory,
especially by users of Haskell, if you want to put an actual programming
language name on that.
It is studied and used efficiently there because it has been found out 
(by Dana Scott et al.) that a Closed Cartesian Category, is effectively
a model of the typed lambda calculus. And from deeper studies of
categories arose functors, monads, Kleisli arrows, etc, which all gave
birth to a corresponding concept in programming, for they were
isomorphic to something in the world of programs (i.e. in your
language).

But is it important in CS ?
It depends. I know the three main schools of functionnal programming. I
learnt with OCaml, studied Haskell by myself, and I now do Scheme. They
all have a different approach, for they have different backgrounds and
points of view, and therefor, give three more chances to make new
discovers.

To my mind, Haskellers create new paradigms from highly obscure maths
(my category classes were not *that* fun at first), and apply it to
practical CS. Schemers tweak and extend the language according to
problems and then help define new (or known) paradigms from what they
already had. And Caml, well, type systems (forgive my bias).

Roughly, DS is not important in CS for the Schemer, and macrology is not
important in CS to the Haskeller. But remove macros or categories from
CS, and a whole branch of Computer Science dies.
Say, the Scheme community studies blue camaïeu, and the Haskell
community studies lights of wavelength between 446 500 nm.


Eventually, I'd say that DS is not important for many people in CS, and
hopefully. Because otherwise you could poll people and understand that
functional languages, object paradigm, network protocols,
architecture... are  not important in CS. You just can't expect someone
to be interested in something that he is not studying. And the reason
why they may have not clue about it can be understood easily I guess. In
Computer Science, you learn very generic and broad concepts shallowly
during your Bs.C. and then you immediately go deeply into one specific
domain that shall be yours from then. Whereas in other domains, as far
as I can tell, it looks like you can have to tremendous and complex
lessons given early. Blame the mix of Computer Science and NTIs maybe,
that forces you to breed computer scientists that will do no science
once they finished their studies. It's better not to teach them
Denotational Semantics at all and to leave that to those who want to
study it...


I hope that I didn't hurt anyone with what I just said (teacher,
student, NTI decision-maker, type-system addict...), but as someone who
just loved studying an "unknown" part of CS (category Theory), I felt the
urge to answer "DS is important (to those who care, for those who don't) !".


Adrien.

-- 
"I am not a Church numeral; I am a free variable!"
(The Scheme Underground)
For every complex problem, there is a solution that is simple, neat, and wrong.



More information about the Gambit-list mailing list