[lobbying-org] Re: CST Part II - May 1 Official Opening -
Invitation
Mark Seaborn
mrs35@cam.ac.uk
Tue, 23 Apr 2002 13:26:34 +0100
"James Srinivasan" <jrs53@cam.ac.uk> wrote:
> >From first email:
> > Bill Gates, a man whose contribution to
> > Computer Science has been negative
>
> Hmm, take a look at Microsoft Research:
>
> http://www.research.microsoft.com/research/
I am sceptical about how much of their research actually ends up
getting used in their products. (The usual pattern is that MS
products make a lot of progress while there's competition but stagnate
after the competition has been eliminated.) The function of MS
Research seems to be to close up research and stifle progress, eg. by
taking discoveries out of the public domain by patenting them, and
sucking researchers away from areas where their research might
actually get used, essentially paying them off to keep them happy and
doing something that they might find interesting but that is less
likely to find an application.
An example: Simon Peyton-Jones and various others used to do a lot of
research into functional languages, Haskell in particular; I think
they were at Glasgow university and produced the Glasgow Haskell
Compiler. They were hoovered up by Microsoft Research. Now, you
might think having a team of people at Microsoft with a clue about
programming language design and implementation would have improved
.NET...
It turns out that there's not really any visible input. C# is
basically a clone of Java with some relatively minor changes, no
significant changes in design, but enough to reduce interoperability.
While they claimed the .NET runtime would support different languages,
it's basically designed for Java-like languages, with a class system
much the same as Java's. There's no tail-calls, there's no parametric
polymorphism (even though this would be a basic feature; and we knew
how to design statically-typed languages without explicit type
annotations twenty years ago). They make the same security mistakes
(for example, strings provide a fairly high-capacity covert channel
because they inherit from Object which provides a mutex -- just as in
Java). This is no great surprise, as Java did much the same thing,
ignoring any modern ideas on language design (even though they had Guy
Steele, the designer of Scheme).
> > In the past, British universities were encouraged to stay independent
> > from industry. The worry was that otherwise, universities would
> > concentrate on serving industry's short-term interests rather than
> > investigating important questions in the public interest. Now,
> > though, contact between the two is almost required; and when industry
> > funds research it gets to influence the agenda, potentially putting
> > areas of research off-limits. That's the trend at the moment. It's
> > visible in other subjects, and I think it's visible in some areas of
> > Computer Science to some extent.
>
> Whether you like it or not, more and more research is going to be
> funded by industry.
The question is, when does this become `whether the population at
large likes it or not'? Do they get to be consulted, or even made
aware of the issues?
> Personally, I see this as a good thing - the potential for extra
> funding is certainly appreciated for my PhD application.
Well, fine, but you've just ignored my argument. It's not about extra
funding, but less public funding, and the reasons for that are not
about economics, but about control -- industry would prefer to have a
direct say in research (at the expense of public input), while
subsidies are re-routed to go more directly into industry so that it's
not out-of-pocket from the change, and public spending is not actually
reduced.
> > Some of their strategies are fairly transparent. The Register has
> > reported on `Rotor', Microsoft's faux-open-source implementation
> > of part of .NET, which they are trying to persuade academics to
> > base their work on. Perhaps the ploy will work, who knows? I
> > know of one PhD student at the Computer Lab who apparently spent
> > some time looking into .NET.
>
> I know of several PhD students who have looked at .NET, what's your
> point here? Are you suggesting they should ignore it and pretend the
> largest new venture from the largest software company will just go
> away?
I'm not saying they should ignore it. I'm saying that the fact that
it's from Microsoft shouldn't make them look at it, and academics
shouldn't pour any work into something that will remain closed and
controlled by others. Sure, investigate .NET's design -- but it
doesn't represent any special advance, and I just don't think it's
intended to improve computing infrastructure.
> > I could also go on to programming languages, where Cambridge
> > probably has a worse record, Java being the main language taught
> > (ML being confined to the sidelines), apparently because that's
> > what industry demands, despite it being pretty poor by the
> > standards of programming language design when it was created. The
> > Comparative Programming Languages course also doesn't venture
> > further than the 1970s. .
>
> The impression I was given by the lab is that we aren't taught any
> specific programming languages because 5/10/20 years down the line
> it'll be history. Java and ML are used as examples of OO and
> functional languages but only make up a small proportion of the
> course.
I'm not suggesting that the Lab teach one language because it's
fashionable. However, that it almost what they do. They say they
don't teach one language because it will become out of date -- and
they then teach the language du jour, Java, the epitome of the
faddishness that they are seemingly bemoaning.
What they should do is teach one language to explain the principles of
programming (preferably a simple one; Java does not qualify), and then
teach a wide range of languages to explain the principles of
programming languages -- teach the languages that are a part of
history.
These are some of the things they don't cover: Lisp, Scheme; they
don't discuss the design space of functional languages (eg. SML,
OCaml, Haskell, Clean; issues such as type systems, purity, monads and
syntax); don't discuss concurrency in Oz or Erlang, or the variety of
logic languages like Mercury and Oz, or constraint-based languages (Oz
again); don't consider classless languages (eg. Self, E), or consider
links between functional programming and object-oriented programming
(eg. E, CLOS) -- or even discuss what they are -- they don't evaluate
the merits of inheritance, or look at module systems. They don't
discuss language features and their merits and how those features
appear in different languages.
> Unfortunately Mr Gates visited last Christmas when all us pesky
> undergrads were at home, so you've missed any pie-chucking
> opportunities!
Presumably they timed that deliberately. I don't think there's any
point to pie-chucking, though -- it doesn't present any coherent
message.
--
Mark Seaborn
- mseaborn@bigfoot.com - http://www.srcf.ucam.org/~mrs35/ -
``We paid $3 billion for these television stations. We will decide what
the news is. The news is what we tell you it is'' -- David Boylan of Fox