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
plagiarizedvisionary 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.
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,134or 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 somewherepaid 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.
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.
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.
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.
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
fopenis 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_SERVERtoo 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
fopento read data from a website, right? And backup my email just by dragging folders from Gmail to a local disk. Right guys?
Sandcastles April 9th, 2018
Mr. Larson stood on the 17th fairway, staring sternly at the outrage constructed in the greenside bunker. He let out a deep red-faced puff. This would not do, he thought. The Ocean Vista Golf Links had some of the finest greens around. They prided themselves on their beautiful landscaping and exquisite ocean views. Mr. Larson had kept their fairways in immaculate condition for almost ten years now. Not a single blade of grass escaped the care of his scythe. Each one trimmed to absolute perfection.
He was fuming. He'd spent weeks last year carefully reseeding everything, after all that messy business when that dragon had come grazing. He'd finally cleared out that gnome infestation who'd settled inside the 11th hole. And now this. No, he thought. Not this time. Not on my watch.
He pulled a small dog-eared book from the pocket of his tweed jacket. The Compleat Guide To Fielde Wildelife, fifth edition. He flicked through the crumpled pages looking for guidance, pausing occasionally to moisten his thumb, until a familiar picture caught his eye, and he read the description underneath:
cancer castellum eximius, or The Superb Sande Crabb.
A natife of sandy shorelines, the Superbe Sand Crabb can be found most commonplace alonge the west coast. It maketh its dwelling amongest the sand, building small edifices in order to Impress and Attract A Female.
And there it was. The drawing in the book didn't nearly do justice to the example that stood before him. For in the middle of the sand bunker, stood an overly large and detailed sandcastle, perhaps three foot high. It had turrets, watchtowers, parapets, the full works. While the one in the book had a decorative seashell trim, this one had substituted with golf tees instead. A tiny moat even, bridged with an old discarded cigarette packet as a drawbridge. There may even, he thought as he inspected it, have been crenellations. Certainly things of a crennellish nature at least. He'd seen castles built down on the beach before, of course. He'd always just assumed the children built them. Well then. He closed the book sharply with a thud.
Taking a second to adjust his waistcoat, Mr. Larson scrambled his way down into the bunker and waded with difficulty through the sand, until he stood right next to the castle. He leaned forward, trying to get a good look inside.
Sure enough, in the middle of the keep, there was a small brown crab looking back up at him.
"Well now, my little fellow," he said to the crab. "Can't be having you here now, can we?"
The crab watched him warily. It raised itself up and angrily menaced its claws at him, trying to make its tiny legs look as threatening as possible.
"Now don't get all grumpy," said Mr. Larson as he straightened back up. "Let's see if we can't move you along."
He went looking in the rough and came back armed with a suitable poking stick. He leant over the castle battlements and tried to give the crab a prod. Twwaangggg!. A golf pencil launched into the air, arcing over the castle walls and stinging him sharply on the hand, causing him to drop the stick and step back.
"Ow!" he said as he shook his hand. He peered back over again. The crab was standing next to a small makeshift ballista, built from driftwood and strands of twisted seaweed. The crab waved its claws again.
"Fine!" exclaimed Mr. Larson, stamping his boot in anger. "If that's how you want to play it!"
He clambered back up out of the bunker and waved a thick grubby finger at the castle and its occupant.
"This won't do, you know!" he said, his cheeks turning a bright red color. "This won't do at all! This is a club for gentlemen! Not ruffians!"
He turned away and stormed furiously off to the groundsman's hut.
Nit stood guard in his castle. It was a good castle, he thought. He'd worked on it non-stop, from the very start of the darkening until the sun came back again. It was magnificent. It had an Ornate Cornice. It had Parapets. A castle of this splendor was sure to attract a good mate.
It had been a journey of much hardship. He'd trekked for what had seemed forever, lost in the grass wilderlands, until he'd found the shelter of the sandy haven. He'd gathered shells and things from far afield and brought them back here. He'd discovered the white dimpled boulders. He'd fought off the monstrous giant that had tried to steal his castle. And he had won. And he was the Best Crab.
He looked out over the battlements he had built. This castle was mine, thought Nit. This sandy pleasant land. This sculpted isle, set in the green sea. From nothing but lowly grains of sand he had formed himself a fortress fit for a king. And a queen, no doubt. He wouldn't have to wait long. Soon a passing lady would see what he had built, and she would realize he was the Best Crab. And perhaps she would come inside to look, and he would show her around the castle. And she would be impressed.
He had the Best Castle and he was the best.
Nit scuttled up to the top of the gatehouse. The wind carried the smell of the sea air over the lands. His lands. But far out across the sand, a movement caught his eye. Something approached. He raised his eyes to get a better look. The distant blur was hard to make out, but he recognized the silhouette.
It was another crab. Had it finally worked? My queen, he thought. My queen approaches.
He turned and inched down along the sandy ramps until he reached the ground, each step spilling tiny rivers of sand down to the floor. He sidled his way across the courtyard until he reached the drawbridge, where he would await his guest.
But something wasn't right. As the lady approached, he began to get a clearer view. And then he realized the horrible truth.
This was no lady. This was an invader. A thief. A blaggard. Another would-be suitor was encroaching on his lands.
This crab would steal his castle, he realized. He would invade, and take my castle from me.
No, thought Nit. No castle of mine will be lost this day. He turned and made haste back towards the battlements. It was time for war.
Dut stared up at the mighty castle. It dominated the surrounding landscape, towering high above him. He'd never seen anything as impressive before in his whole life. He looked through the gateway. There didn't seem to be anyone inside. He cautiously shuffled his way across the bunker, stopping once he arrived at the splendid drawbridge.
The castle seemed empty. Perhaps the owner had gone looking for more seashells, thought Dut, as he studied the decorations that adorned the entranceway. Then an idea struck him:
This is the Best Castle, he thought. If I had a castle like this, I would be the Best Crab and attract the Best Lady.
I could steal this castle, he thought, and it would be mine.
Dut inched his way forward. The drawbridge was still down. He shuffled across and entered through the gatehouse.
Suddenly, there was a ponk! and he felt an immense sting on his back. From high above, a barrage of pebbles rained down from holes in the gatehouse ceiling. Dut was forced flat against the floor, pulling his legs in tight as he waited out the onslaught. The impact of each pebble was almost unbearable, but he held his ground.
The pebbles ceased, leaving only the faint sound of sand trickling down from above. He cautiously unfolded himself from under his shell, and looked up at the other crab that was peering back down through the murder holes. Is that all you've got, he thought? Mere pebbles will not stop me, for I am the Best Warrior.
He started forwards again, but his celebration was short-lived. A movement in the shadows made him look up again, just in time to see the giant dimpled boulder plummeting down towards him.
The golf ball caught Dut smack on the head with a loud crack. His whole world suddenly turned black, then purple and green. He staggered backwards, reeling in shock. His head pulsed with agony, and he felt his legs go from under him. He slid sideways off the drawbridge and tumbled uncontrollably into the moat.
The blackness closed in around his vision. It was as if the darkening had come early. He struggled to turn himself over, but his legs failed to find footing. His body sank down to the sandy floor, and his hopes with it. He lay still on the bottom, waiting for the world to stop spinning. After a while it passed, and he wriggled around until he was able to flip himself over.
Dut dragged himself up out of the moat, still groggy from his encounter. His vision was returning, and though indistinct he could make out the other crab high up on the battlements, waving its claws in victory.
The other crab was the Best Crab, he thought, and I have failed. He slunk off across the fairway with, as it were, his tail between his legs.
Nit watched him go from high up on the gatehouse walls. He shook his claws in the air once more, just to rub it in. My castle will not be taken, he thought. For I am the Best Crab.
Dut crawled his way through the rough, leaving the castle far behind him. I have been shamed, he thought. The other crab has defeated me in battle, I have no castle, and I am an Unworthy Crab.
He pushed the blades of grass aside as he skulked around in the rough. It's fine, he thought. I didn't want it anyway. He'd find his own sandy paradise. He'd build a better castle. One with a flag. He'd seen the impressive flags the giants used. Maybe he could steal one.
He thought ahead to the work it would take, and his heart sank even lower. He'd never been much good at castle building. He'd always been a fighter. I should have stayed on the beach, he thought. He'd never meant to stray into the endless green forest. There didn't seem any hope of getting back there now. Dut kicked a small ant off its leaf of out spite, and trudged aimlessly forward.
The rough grass opened up onto a patch of clear fairway. Dut stopped suddenly when he say what lay in front of him. The answer to his prayers. The solution. The morning sun glinted from its corners, highlighting the towering beauty that reached into the sky.
The giants had left some sort of war machine behind. On the grass ahead, stood a colossal red siege tower, mounted on wheels and reaching easily as high as the castle itself. Dut's gaze followed it all the way up to the top, and a new idea ripped through his mind like fire.
I could use this weapon, he thought. I could return to take the castle once more, and be victorious. And I would win, and be the Best Crab Once More.
Dut positioned himself beneath the wheel of the siege tower, and with a mighty heave he pushed. Slowly, with a creak, it began to roll forward.
Mr. Larson ambled across the fairway, a large metal bucket in one hand and a spade in the other. Right, he thought. Let's sort this out now before the guests start arriving. The Ocean Vista Golf Links was not some kind of playground. And certainly not the place for--he shuddered at the thought--sexual activities. No matter the species. The club rules were quite clear.
A movement ahead caught his eye. Up by the bunker, a bright red golf bag seemed to be slowly wheeling itself along across the fairway. He stopped briefly to raise his hand to his eyes, while he squinted to see what was happening. There was something possibly...crablike... at the base of it. His mouth dropped open in shock.
"Come back 'ere with that!" he shouted as he ran to stop it. "That's a Hodgekiss 400, that is! Gold members only!" He bumbled his way forward, causing his hat to fall off which he then had to go back for. The runaway golf bag continued its slow march, paying no attention to his calls.
He stopped to catch his breath, his face bright purple from over-exertion. The spade provided support while he regained himself. A line had been crossed, thought Mr. Larson. The club would not tolerate this. And nor would he. He picked up his spade again and forged ahead once more, a burning rage within himself. One does not flout the rules of the club. This menace had to be stopped.
Nit watched as the siege tower approached. A twinge of fear ran down his spine. This is it, he thought. This is the final test. He dropped back down to the floor and readied for battle.
The golf bag came crashing against the castle wall, breaching a massive hole and throwing sand everywhere. Nit was ready on the battlements. The bag had sliced a chasm through the top half of the eastern defenses, forming a bridge over the moat and into the courtyard. He positioned himself next to the breach, and heaved another golf ball in preparation.
Dut began the climb up the side of his siege tower. It was a steep slope, and the strange red ground gave little grip, but he pressed ahead. As he reached the halfway point, he saw his nemesis peering back from the top. Not this time, he thought. I will fight you and I will win.
A dimpled boulder appeared at the top of the slope. But this time Dut was ready. As the golf ball tumbled down the bag, Dut managed to step sideways out of the way and let it roll past. It bounced off a buckle and landed in the moat below with a small plop.
Nit turned around to ready his final boulder, but it was too late. Dut came leaping over the wall and landed right on him, sending them both hurtling off the battlements. They tumbled together through the air and fell down to the castle's sandy floor.
They landed with a soft flump sound. Nit tumbled over again and regained his footing, while Dut landed hard on his back. As Nit turned to face his enemy, Dut righted himself and moved into position.
The battle was fierce. The forces of good and evil struggled together in mortal deadlock. They snapped at each other with their claws. They circled around, each trying to get a better angle on the other.
This castle will not fall, thought Nit. I am the Best Crab. He could see Dut was strong. Perhaps too strong. He kept circling, waiting for the moment to strike, waiting for a window of opportunity to open up. Dut made a grab, but Nit dodged it, and went right back with a counter attack. He pushed himself forward with all his bodyweight.
But his attack failed. Dut pushed his claw up from underneath and got leverage on him. Nit went tumbling backwards and landed prone on the sand, his soft underbelly exposed.
Dut felt a fire inside him. I have won, he thought. He raised his claw, ready to inflict the victory blow and sink a deep wound right through the rival's weak heart. Nit stared back at him, frozen in terror. Time seemed to stop for a moment, and it seemed like he couldn't move at all. But a strange shadow formed above them both, and the world grew increasingly darker. Nit glanced up as the sky turned a darkest shade of black.
Mr. Larson brought the spade down hard. Nit watched as Dut took the full blow, his claw ripped straight from his body and his shell crushed. Both spade and sand were flying everywhere in fury, and the last thing Nit saw was the northern defenses crumble and fall, before the world went dark as he felt himself buried under the rubble.
Mr. Larson lifted the spade and drove it down again like a sledgehammer. "Aha!" he shouted. "Let's see how you like it!"
Dut tried to stand again with his last ounce of strength, but the giant struck once more with its final blow, sending shell fragments whirling afar. Dut was dead.
Mr. Larson stood panting, barely holding onto his spade. Well, he thought, that should do it. The castle was completely flattened, leaving just a messy pile in the middle of the bunker. He pulled the bucket over and started scraping the debris into it. Bits of dead crab, seashells, the empty cigarette packet, all mixed in as a sandy pile of rubble. The remnants of a once proud empire.
"No more castles for you, Sonny Jim." he said. He clambered back out of the bunker, and went to dump the mess back behind the nearby dunes.
Nit awoke and dug his way up to the surface. The bones of his enemy lay scattered around him. But there was no victory to be celebrated this day, no tales to be told.
My empire, he thought. My castle. My Queen. All gone.
Nit stumbled around the strange dungeon he found himself in. The giant had trapped him here, surrounded by these cold metal walls. He gingerly tried to climb them, but the slopes were too smooth and he fell back down.
I will die here, he thought. This giant's prison will be my tomb. He settled back down on the rubble and closed his eyes. The war was over. The kingdom had fallen.
Mr. Larson tipped the bucket upside-down and emptied it out onto the beach. "There we go," he said to himself. "That's that sorted out." He left and went back to rake the bunker. The guests were already starting to play on the 1st tee. He had just enough time to get it all leveled back out again. And after that, he thought, perhaps a moment for a nice cup of tea. He whistled happily to himself as he walked away.
Nit pulled himself from the debris and tumbled down the slope of loose sand. He lay flat and motionless, not even trying to lift himself up. He had no strength remaining, no energy left inside himself. Tatters of his empire lay crumbled around him. What future was there now, he thought, when everything was lost?
Nit watched the giant leave. A feeling of hopelessness pulled him ever further down. The giant has won, he thought. He is the Best Giant, and I am an Unworthy Crab. He started to dig a small hole to hide himself in.
As he dug though, he saw something down by the waterline. A distant crab-like shape. He stopped to look, wondering who this new onlooker might be, no doubt come to revel in his defeat.
The other crab came a little closer, taking a cautious zigzag route slowly up the beach. It was a lady. A lady crab, of the most stunning beauty he'd ever seen. She studied him from afar with mild curiosity. She seemed intrigued by all the golf tees and shells that lay scattered around him.
Nit gave a heavy sigh. My Queen, he thought. My Queen is here.
He felt a little strength return to him. A lady this fine would require the Best Castle, he thought. The hole could wait; there was work to be done. He scouted around the beach to find a good spot, where the sand had just the right consistency. With care he selected a suitable seashell, a strong one with a big scoop area. Nearby, the waves washed up and receded back again. The dune grass rustled as the wind blew the salt air inland. In the background the giants began to launch boulders into the sky once more, and slowly, as the other crab shyly watched, Nit began to build a new castle.
In Search Of The Lost Program January 11th, 2018
Programmers just can't seem to stop making new things. You only have to look at how many different unit-test frameworks and build systems there are out there to see that. We're drawn to keep reinventing software that already exists, adding little improvements and new approaches. It's like a disease sometimes, it infects us, attaches to our brains while we sleep and whispers "Code me..."
It results in this explosion of software, all of which does exactly the same thing that all the other software does, except This One's Written In Rust, or This One's Got Python Support. They're not descendants of each other, which might build on previous code, but separate creations that begin anew. And while each may add one new idea, they tend to have forgotten at least one feature that the previous ones already did.
But why? Why can't we just make, say, the perfect build system, and then everyone could just use that? Why do we make so many programming languages and libraries all doing the same thing over and over again?
The Lost Chord
I heard there was a secret chord, that David played and it pleased the Lord.
There's this lovely myth in music of the Lost Chord. A chord better than any other, considered the Holy Grail of music. And having perhaps heard it clearly in a dream, a musician might spend his whole life circling around it trying to discover the notes that make it up, hoping to recreate the perfection he once briefly tasted.
The thing about a chord, for the non-musicians out there, is it's just a thing composed of at least 3 notes played together. So any old keyboard or guitar could play it, if only you could discover all the right notes to use. It's merely a matter of composition, so surely it would be easy to just hit all the right notes and let the chord ring out? So why haven't we found the secret chord yet?
The answer, somewhat obviously, is because it doesn't exist. At least, it doesn't exist in our world, it can't. The Moody Blues once released an entire album inspired by it, 1968's "In Search Of The Lost Chord". This snippet from there perhaps gives some insight:
The Word (The Moody Blues, 1968)
Two notes of the chord, that's our poor scope
But to reach the chord is our life's hope
And to name the chord is important to some
So they give it a word, and the word is...
The daydreaming musicians recognize something here. We get two notes, not the three needed. It's not just the we haven't found it, it's that it's unfindable by us. It's a mirage that hangs just on the horizon, but vanishes as you approach it. It's a Rubik's cube where you can get one side done, but then getting the second side done messes up the first one.
Perhaps computers are the same. Are we trying to solve impossible problems? Like a cartographer trying to produce a flat 2D map of the 3D earth, some tasks just aren't possible without at least one compromise. If you try and unpeel the Earth and flatten it out, something's going to end up looking the wrong shape. The Mercator projection, perhaps the most commonly-used world map view, makes Greenland look bigger than Australia, when in fact Australia is over 3 times bigger.
Or you could try the Peirce Quincunxial Projection, which has a lower overall distortion, but on the other hand splits Antarctica into four and makes Africa go funny.
The point is, there's no correct way to solve this particular problem, it's simply not possible. The only thing you can really do is to move into a higher dimension, where you can show a full 3D globe.
Maybe the inner truth of programming is something that can't be represented by our simpler world of variables and values, of bytes and registers. Are we just endlessly trying to find new ways to fit 9 bits into an 8-bit byte? Like the story of the blind men trying to describe an elephant, we're all just groping different parts of the perfect program we dreamt of, none of us able to get the full picture at once. Are we just circling around perfection, and never able to achieve it?
It seems to me sometimes that there will never be a One True build system, unit-test framework, or programming language. Every new programming language is destined to play just two notes of the chord, never the third. Perhaps programming is an impossible problem too, one we'll only ever truly overcome once we find a way to escape our current computing flatland and finally learn to move sideways.
Written by Richard Mitton,
software engineer and travelling wizard.
Follow me on twitter: http://twitter.com/grumpygiant