How ASP.NET began in Java, and the truth about Project Cool

A bit of nostalgia for you. Cast your minds back to 1999 or thereabouts. Microsoft is finishing off IIS 4.0 and there is no such thing as C# or ASP.NET. However, there are rumours that Microsoft is creating a Java-like platform codenamed “Cool”, in the aftermath of a dispute with Sun that was making it impossible to use Java itself. Microsoft denies the rumours. Here’s a report from February 1999:

There is no Java-like language under development at Microsoft, said Michael Risse,  Microsoft’s product manager for application development tools. Risse said the company is talking to developers about a concept called Cool, a much less ambitious project intended to tie Microsoft’s Visual C++ development tool more closely to its COM+ middleware. However, Cool is not yet in development, and is unrelated to Java, said Risse. He said Cool is strictly a “whiteboard” concept, and that no software code connected to the concept has been written at Microsoft. Cool is also unrelated to any Java technology within the company, Risse stated. “There’s no connection between Cool and Visual J++, and the Java lawsuit is irrelevant to the thinking we are doing [with Cool],” he said.

Even after C# was announced in 2000, Microsoft denied that it had anything to do with Cool:

Yesterday, Microsoft executives denied that C# was related to the rumored Cool project.

Now, over to Mark Anders, co-inventor of ASP.NET, whom I interviewed earlier this month at Adobe Max Europe. I asked Anders how ASP.NET came about.

Anders: “ASP.NET happened after we shipped IIS 4.0 and everyone went on vacation. Scott Guthrie and I – Scott worked for me at the time, he was 22 years old, straight out of college – and we took advantage of the time everyone was on vacation to start brainstorming new ideas. We looked at ASP and how it was being used. I had worked on Visual InterDev so I had a lot of friends on that team, and we were looking at the new version, I think it was Visual InterDev 6.0, and we noticed how messy the code was. We said, how can we do better? Scott and I worked for a month and a half, and then when everybody came back from vacation in January we showed them a prototype and a PowerPoint deck, showed them this vision, and people said, ‘keep working on it’.”

I asked whether the prototype was based on .NET from the beginning, or “Project Cool” as the rumour went?

Anders: “No, it was not. The original prototype was written in Java. I loved Java as a language and Scott did too. So it was done in Java, and we took that around to lots of different groups. The first group that we took it to was the tools team. The VB and the InterDev teams were in a feud, and when they saw our demo they liked it. They said, ‘If you build that, we will target it with our tools.’

“The VB team was working on developing a new runtime, what became the Common Language Runtime. It was not as complicated as COM, and it had a nice object system, it was garbage collected. So we made a decision that we would write our thing, which at the time was called XSP, in this new runtime. So we were the first ones to commit to writing anything on it. The VB team was going to be using it as their runtime, they were doing their forms, but we actually built the whole thing in .NET.

“The funny thing is, you mention Cool. It was called Cool at one time, but Microsoft denied it. Scott and I presented what was then called ASP Plus, but we presented it a long time before anybody talked about .NET. We went to a conference, I think it was in Washington DC or something, and Scott and I were up on stage. He is doing this demo, and he says, ‘Here is a directory listing’. And I glance up at the screen, and I see, all these .cool files, and we’re busy denying that there is anything called Cool, and he has this directory listing. So I was worried that somebody would see that and put two and two together… but nobody picked up on it. They had asked if they could videotape me to re-broadcast, and I’d said fine, but when I realized that the Cool screenshot was shown, I contacted them and said, ‘I can’t let you have that videotape’, and they sent it back. So it never leaked.”

All these efforts did not prevent The Register posting a story in September 2000 which describes how a reader working with early C# samples:

…discovered that the original C# compiler was called coolc, subsequently renamed as csc.exec. Elsewhere, sample C# code has the HTML tag <script language=’COOL’ runat=’server’>, and Larry notes a couple of references to the string “C\temp\fact\”.

So why did Microsoft deny it? I’m guessing, but maybe the company felt that ‘Project Cool’ was related to Java in people’s minds, and wanted to emphasize that .NET was 100% Java-free. Any resemblance is purely coincidental, as novelists like to say.

Leave a Reply

Your email address will not be published. Required fields are marked *