codersnotes

What The Hell Was The Microsoft Network? August 29th, 2018

No, not that one. Or that other one. The letters "MSN" have meant so many things to so many people, a term that's been overloaded with a thousand different meanings. In the same way they throw the words "National Lampoon" onto any random movie to indicate that it claims to be a comedy, they slap the "MSN" label onto just about anything so that your poor brain goes "oh, a brand I've heard of" and you get fooled into thinking it must have a certain minimum level of goodness to it.

But I'm talking about the original MSN. Not the simple three-letter acronym we know today, but it's full title: The Microsoft Network.

The Microsoft Network was a long forgotten experiment that started back during the Windows 95 Preview Program somewhere around 1994. It was an exciting time for me as a young lad. Having a copy of Windows 95 a year before it came out made me feel Special, Hip, and Cool, three properties which were much sought after by teenage computer nerds. For perhaps the only time in its life, Windows was cool, and so was I.

Microsoft had already released all this fancy new tech with NT 3.1 a few years earlier, but no one noticed so after getting good n' drunk they had another crack at it. Windows 95 replaced the tired old segmented memory model with a glorious flat one where the pointers actually worked how C claimed they did. It dumped the bug-prone co-operative task switcher in favor of a slightly less bug-prone version of pre-emptive multitasking, meaning your machine wouldn't lock up due to busy loops and would have to find exciting new 32-bit ways to lock up instead. It had a plagiarized visionary new shell that presented the file system as a truly window-based navigation model. It was a pretty exciting time for PC owners back then. After all, these new directions brought the PC almost up to the same spec that other computers had been enjoying ten years ago.

But it wasn't just the technological advancements. The Chicago betas made you feel like you were part of a secret club. A group of people who could all hang out together in the super-secret clubhouse. But what was this clubhouse, you ask? Well sit down little Timmy, and I'll explain to you what The Microsoft Network actually was.

The delights of WinCIM accessing CompuServe.

You see, back in 1994 Facebook hadn't yet invented the Internet, so if you wanted to go online and let your computer transfer viruses to and from other computers, you had to use one of the many private networks. There were lots of them. CompuServe was the biggie. AOL was another, and in the UK they had Cix. Each of them had their own users, their own content and forums, and formed a delightful set of walled gardens that couldn't communicate with each other.

You dialled their phone number on your modem and talked directly to them. Each had their own shitty little piece of software you ran which presented their service, usually in some god-awful MDI-based thing which was barely more than a GDI rewrite of their old BBS interface. CompuServe felt like a dinosaur at the time. They didn't even give you the decency of a username on CompuServe, they gave you a number like you were Patrick McGoohan. It'd be like 71477,134 or some rubbish. They always started with a 7, had a bunch of octal digits, and had a comma in the middle. Why? Because that's how the login on PDP-10s worked, which is what CompuServe was powered on. Unbelievably, it seems some poor suckers may still have been paying for CompuServe as recently as last year.

Microsoft looked upon this gluttony of power and figured they wanted a piece of that sweet action. They had big plans for their own Microsoft Network. It was going to be the CompuServe killer. It would have all its own content, and features like being able to make online purchases safely, just like today's App Store allows you to throw money at your phone until Apple's pockets rip open under the weight of that sweet 30% cut.

Of course it was doomed from the start. The raw, unfiltered mess of the Internet was quickly becoming the New Cool Thing, and no-one wanted to sign up for yet another Stupid Proprietary Thing, of which there were an endless supply of. But Microsoft did one thing which got people using it (including myself), at least for a while. They gave it away free to people in the Super Secret Club. That's right, if you had the Windows 95 beta disc because you'd pirated it from somewhere paid the measly $20 bucks to sign up, you could get free access to The Microsoft Network.

I've got kinda sidetracked here waffling on about the history of dial-up BBS systems. What I really want to be concerned with is what made The Microsoft Network unique and interesting: the interface.

The big thing in Windows 95 was their new shell. They wanted everything to go through this. They had this vision of every object in the computer being represented as a shell object, so there would be a seamless intermix between files, documents, system components, you name it. They had this project called Cairo that was supposed to throw out that scruffy old file-based filesystem and bring in a shiny new Object Based File System instead. It never happened, so we'll never know exactly how it might have turned out. But the brave lads at MS didn't give up that easily and so the idea stayed on, admittedly without the tech to back it up, and the principles wormed their way into such glorious developments as The Microsoft Network.

Browsing The Microsoft Network.

And so The Microsoft Network wasn't a program you loaded like CompuServe. It was part of the OS, with folder icons that looked just like real folders. It was a kind of version of the Web where you could browse online data the same way you browsed your file system. This is what made it cool.

Everything was an object, and everything appeared in its own Explorer window. You could click on the icon for -- oh I don't know, what do humans talk about? Let's say Goat Tickling. You could click on the Goat Tickling BBS, and it'd open up a new window where people talked about Goat Tickling and each message was listed exactly like the "Details" view of a file system directory. From the user's perspective, there was no difference between this and a regular file window. The magic of the extensible shell blended the online world and your own desktop seamlessly, with no need for web browsers or forum software. It all just fell together under the same shared interface.

It's impossible to access this service today though, in case you wanted to take a nostalgic little look, as the servers than ran it have long since been euthanized. But if you're interested, you can watch this delightful and certainly not-at-all dated Microsoft promotional video, where Chandler and Rachel from Friends learn how to look at cat pictures on The Microsoft Network.

Get yer data right here in Explorer folks!

I loved The Microsoft Network back then, even though I knew it was terrible. It felt like there was the germ of a new idea here, something that hadn't been tried before on our poor little consumer computers. It was as if the data was suddenly free of the shackles of being displayed in a program. Data wasn't just a web page, or a program showing its own internal databases. The Microsoft Network made it look like the data was right there, and you could click it and drag it around! For a brief time, back in 1995, it felt like we were on the verge of the true object-oriented web, a world filled with open data and free from the tyranny of the walled gardens.

Of course, like all such things, it turned out to just be a big fat lie.

Microsoft's shell extensions are such a walled garden that even the rest of the OS can't bluff its way in. Open up your Control Panel right now, and right-click on one of the things (e.g. Keyboard). You can select "Create Shortcut", and it'll magically plop a shortcut to that item onto your Desktop.

One of these two is a real shortcut.

So we've got a shortcut now our our desktop. It looks just like a real shortcut, right? Just like any other file. Now right-click on that shortcut you've made, and see where it points to. What's that, I hear you cry? It points to Control Panel\All Control Panel Items\Keyboard! Where the hell is that? Pop open a command prompt and try and run "dir" on that location. You sure as hell won't get a directory listing of it. And why, you say, is the text displayed as a fixed label? Why can't I change the shortcut's target to a different file, like I can with a regular shortcut?

Unfortunately, like most things involving the Windows shell, these objects aren't real objects. Well no, I mean presumably some part of the system thinks they are. But they're not to us. They're not things you can just link to like a regular file. They're not like web pages where you can share the link with someone else. They live in their own weird little inaccessible namespace. Explorer knows how to peer over the fence into these little gardens, but no one else does. It's a facade, one designed to make you think you actually know how your computer works.

It was the kind of thing other OSs like Plan 9 were trying to do, except the Plan 9 guys didn't bollocks it up. See what happened was a senior director at Microsoft came in one night around 3am, loaded on blow and Jack Daniels, and shouted to the room "I've got it lads," in a big booming voice that woke up the people struggling to ship Cairo for the third time, "we'll implement it all in COM!" A great sigh rippled around but they knew in their hearts that was how things would be from now on, there was no point fighting it, and thus the great triumph known as the Windows Shell Namespace was born.

Microsoft's shell system made all the same mistakes CompuServe did, just in different ways. They thought numbers were a good way to name things, so you ended up with every shell object being given a 32-digit GUID. And they made it so their content was only linkable (if at all) via these same GUIDs, thus only those knights brave enough to fight the GUID monster may be allowed to enter. So while there might be a way for someone to copy a link to something they saw on The Microsoft Network, good luck actually being able to paste that link into another program, access it via the command line, or send it to a friend.

How Microsoft tell you to select a file.

This is what makes the whole COM system really really stupid. It's like they don't want you to be able to work with it. They want to make it hard for you to access and share data, because code that were to do something reckless like call fopen is code that could run on anyone's operating system, not just theirs. They want to keep you on the phone selecting numbered options, because if you stop doing that you might actually achieve something. And if you go around recklessly inventing new things on your own, you might not need Microsoft any more.

It used to be if you wanted the user to select a file, you'd call GetOpenFileName. That was it, one swift function call and you were done. Now they've deprecated that and are telling you you gotta call CoCreateInstance, have a CLSID_FileOpenDialog, you'll need an CLSCTX_INPROC_SERVER too and probably some IID_PPV_ARGS. Then you'll need a CDialogEventHandler_CreateInstance, and maybe end up with a IShellItem. You'll need about a dozen or so calls to SUCCEEDED(hr) too, in case one of the many internal details you never asked to know about happens to go wrong. Think I'm exaggerating? Check Microsoft's own documentation on it.

It seems insane, but it's the same trap Microsoft just keep falling into. Hell, just go look at any DirectX 12 code to see how they've not learned their lesson.

Phew, I'm exhausted after that long, unnecessary and possibly incoherent COM ramble. Got a little carried away there. Where were we? Ah yes, MSN. The Microsoft Network failed because it was just one more walled garden. One that was walled-off in two ways. One was from a business standpoint, of trying to keep users locked into it and locked off from the rest of the world. But the other was the technical standpoint. It wanted to make it look like the Network was something you had control over, something you could interact with just like you could with your own data. And it was a lovely idea, but that's all it ever was. The thing itself was never more than a facade. Meanwhile those Internet nerds were off pasting hyperlinks around, doing reckless things like setting up their own email addresses and adding new things to the network without having to ask anyone first. And despite The Microsoft Network making every object look so real on the outside that you could just squeeze it and watch the AddRefs ooze out, the Web's simple idea of giving every thing a unique readable location won by a mile. It wasn't the Object Oriented dream we might have hoped for, but Open Always Wins.

The trouble with a walled garden is that if the thing outside the garden is bigger and better than the thing inside the garden, then the wall only serves to keep new customers out rather than lock them in.

So what happened to The Microsoft Network? It barely lasted a year after Win95 shipped before being thrown out and replaced with MSN 2.0, which was a much more web-based experience and opened the doors for the cuddly familiar MSN.com we know and love(?) today, and all still have bookmarked in that IE installation we only switch to when we need to test something.

AOL and Compuserve didn't like it much either. After all, it was eating away at their already rocky marketshare. So they put on their big hat marked "antitrust" and manage to force Microsoft to wedge a big AOL icon on your desktop too. That way the consumer had a choice of which shitty-little service they wished to lock themselves into.

But at least the lessons of The Microsoft Network have been learnt. We don't have that kind of locked-off data any more, it's all fully integrated under unified a banner now. At least now I can happily use fopen to read data from a website, right? And backup my email just by dragging folders from Gmail to a local disk. Right guys?

...right?

Written by Richard Mitton,

software engineer and travelling wizard.

Follow me on twitter: http://twitter.com/grumpygiant