Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I watched Douglas Crockford's JavaScript talks recently, and at one point, he said that Microsoft did not consider JavaScript important because they saw the web as a passing phase of internet usage that would be supplanted by something loosely known at the time as "Internet X", and they wanted .NET to become "Internet X"

Of course, the web is still with us and we know .NET as an application development platform.

Can anyone tell me about the early history of .NET and how to went from being an intended replacement for the web to the platform we know it as today?

share|improve this question
12  
I'll just point out one detail: IMO, nearly anything that starts with "Microsoft (thought|wanted|believed|etc.)" that implies Microsoft is a monolithic (or even coherent) whole, is fundamentally mistaken. Some people at Microsoft may have wanted .NET to become Internet X, but others pretty clearly wanted it to disappear completely, not become pervasive. That's not a comment on .NET either -- it seems to apply to nearly everything from Microsoft. –  Jerry Coffin Jul 7 '11 at 19:58
1  
To add to Jerry: Microsoft's behaviour isn't quite that of one giant united organisation. It behaves more like multiple organisations that happen to operate under a common name. –  Jonathan Hobbs Jul 7 '11 at 23:07

3 Answers 3

up vote 4 down vote accepted

I'm not entirely sure what you're referring too, but two of the things that Microsoft pushed really hard for that never did happen was amongst other things

a) .Net as a cross-platform development environment One of the big selling points when .Net was introduced was the runtime/IL code architecture that would allow developers to develop for .Net and have that code work on any platform (ie Linux and Mac). Microsoft more or less promised, or at least strongly implied that runtime for other platforms where forthcoming. Unfortunately they never did come around to doing that, fortunately Mono did. It would have been nice to be able to deploy .Net apps on any platform similarily to Java but I see the strategic disadvantage that Microsoft possibly saw: If apps are "mobile" between platforms that what says people won't leave windows. "Don't f*ck with windows" as the quote famously goes

b) Smart Clients as replacements for "Web applications" Microsoft long tried to battle the web by pushing smart clients, or click once as they also where called. The concept is quite brilliant actually and I think it might catch up one day still. The idea is that you can enter an url to an application and it will be downloaded (and possibly installed) and run on the fly from within a sandbox in Windows. That way you can code an actual GUI application that have the ease of deployment of a webpage but power of a "real application". The problem was that the security model was way too complicated for it being practical together with the fact that the need really wasn't there yet. It was cloud apps before cloud apps even was becoming popular. Now with the cloud making a strong appearance and multi-core development becoming more and more crucial I can see a comeback for that concept, they have to make it way more easier to develop and deploy though.

share|improve this answer
    
I used Rotor, also known as Shared Source CLI, in many demos. It ran on a number of platforms. We had a demo where we coded hello world in notepad on a PC, built it with Rotor, FTP-ed the assembly to a BSD machine sitting next to the PC, and then ran it. Alas Rotor didn't have Windows Forms or many other useful libraries. But it made for a cool demo and could have been more. –  Kate Gregory Jul 7 '11 at 19:56
2  
I never thought Microsft would port their runtime to UNIX or MacOS. To me, the primary intention for portability meant portability between machine architectures while also meeting "checklist" type selection committee requirements. I don't know that they said anything misleading about that at all. –  Jeremy Jul 7 '11 at 20:54
1  
@Jeremy: Yeah, agreed, I took the "cross-platform" nature of the IL as being insurance against a possible change of architectures, like the ill-fated Alpha version of Windows NT. –  Carson63000 Jul 7 '11 at 22:45
    
+1 There are lots of issues with click once that they never got right, especially the version checking. We use some click once apps and regularly have issues with the updater not recognizing the newer version on the server as being newer. Even if we go to the page and click the deploy button. WCF did help with alot of the Security issues though and WPF is much more robust than WinForms so there is a chance but they have to fix click once so it is more Pokayoke before it will be more widely adopted. –  Chad Jul 8 '11 at 12:25
    
Click-once might have been brilliant if Java Web Start hadn't preceded it by several years. Both suffered problems with adoption outside the corporate space. –  Jeremy Jul 8 '11 at 13:34

In the 90s, a consortium consisting of Oracle, Sun, IBM and Novell wanted to create a "thin client" sort of client/server architecture. At your desktop would be something later called a JavaStation. This diskless workstation would download software from the server, and all your files would be saved there. The consortium made a foolish mistake of announcing vaporware and saying that they'd starve Microsoft of oxygen. This foolish mistake gave MS enough lead time to try to build a replacement client/server architecture to defeat the consortium; just over a decade later, Oracle purchased Sun, and Novell Netware has gone from being the #1 office networking architecture to "dustheap of history".

Java was originally touted as the "write once, run everywhere" language. It used operating system-independent runtimes (called JVM). While Microsoft tried to so something similar with NT (supporting a hardware abstraction level that allowed it to be run on chipsets including MIPS and Alpha along with the Intel architecture).

The .NET framework was a "me too" product to try to steal the oxygen of Sun by making (at least theoretically) an alternative run-time that was independent of operating systems. Not long after the time that .NET made a reasonably successful appearance on the marketplace, MS gave up the idea of making CLR/CIL runtimes for anything but Microsoft operating systems (the Mono framework is a futile attempt to make runtimes for other operating systems but suffers from patent threats that occasionally come out of Redmond which is why it too will end up on the dustheap of history alongside Win32 runtimes).

I think IBM totally went Java as an overreaction to the OS/2 and Win32 runtime fiasco. It is my belief that they would go back to COBOL and punch cards before they would get tangled up with Microsoft again.

At one point, he said that Microsoft did not consider JavaScript important because they saw the WWW as a passing phase of internet

It was Bill Gates who didn't understand the internet and because he set the tone for Microsoft back then, the entire company got off to a very late start.

Then again, we seem to have Silverlight as MS's attempt to bastardize the internet into an MS-centric platform.

Silverlight is an attempt to replace Flash (which I hate) with something that can only run on browsers that Microsoft feels like supporting at their whim (which is why I don't work with Silverlight even though it is a far superior technology). Developers who remember Microsoft's behavior in the 90s will stay away from Silverlight as it will totally lock them in, much like the early issues with activex controls in other browsers.

share|improve this answer
    
IBM supports Java on all their current platforms, most of which run COBOL very nicely, btw. –  user1249 Jul 8 '11 at 0:15

.NET is a lot more than web. Originally MS had a product called J++ which was their own version of Java. Due to legal problems they dumped it and replaced with their own, unrelated, competing product, this is .NET. It was originally meant as a Java killer.

share|improve this answer
1  
Also note J# in this. –  user1249 Jul 8 '11 at 0:14
    
J#, the forgotten J. –  Craig Jul 8 '11 at 0:22
1  
I would say that j++ was meant more to be a Delphi killer as a lot of programmers were moving to Delphi to get an easy UI system like VB but “real programing” like C++ without all the pain of C++. I don’t think killing java come about until after Sun started give Microsoft legal problems, java was not an issue in those days as it was no little used. –  Ian Jul 8 '11 at 11:40
1  
I don't think MS were particularly worried about Delphi. Delphi's strength is building Windows applications, so it helped MS by being popular and supporting their platform. Java on the other hand was already a big deal by 2000 (JBuilder was up to version 4), and cross platform. This was big concern to MS, especially with the emerging Linux. J++ took Java and tied it to Windows. –  Craig Jul 8 '11 at 12:28

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.