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.