Bitwise Read online

Page 5


  The summer before my final year of college, I interned as a software engineer at Microsoft in Redmond, Washington. I was assigned to the group that was building MSN Messenger Service, Microsoft’s instant messaging app, and after receiving my degree, I went on to join them full-time. The unwieldy name was cooked up by Microsoft’s marketing department, which had a reputation for always picking the clunkiest and least imaginative product names. Buddy List? C U C Me? MSN Messenger? No, it was MSN Messenger Service. I’ll call it Messenger for short.

  At the time the big players in instant messaging were AOL Instant Messenger (AIM), Yahoo, and ICQ. AIM had tens of millions of users; AOL had become the country’s biggest dial-up provider in the mid-nineties by blitzing mailboxes with CD-ROMs, and all AOL users automatically became AIM users. Yahoo and ICQ each had millions of users. These are paltry numbers by the standards of 2018, but they were meaningful in the nineties.

  The project was divided into two pieces. On the client team, where I started, we wrote the program that installed on users’ computers. We created a minimalist user interface to let people see their buddies when they came online, popping up chat windows for messaging with them, and so on and so forth. We were part of the long-standing Microsoft tradition of creating a product that would do everything our competitors could, with a few new wrinkles added. (This was termed a “best-in-class” product.) The server team was responsible for building the program that tracked all the clients connecting to it and delivered notifications to each user’s buddies. If your buddy Gordon logged on, the server would tell your client that he was there. We on the client side had to take the notification from the server and display it properly to the user. The server side also had to integrate our functionality with Hotmail, which had tens of millions of users and which Microsoft had acquired in 1997. It was imperative that every Hotmail user be able to log on to Messenger with a Hotmail address and password as seamlessly as possible. This was not simple. Hotmail and Messenger were two entirely separate systems.

  My initial team consisted of about ten people, though it gradually expanded to several times that size. On the client side, we’d meet to discuss what needed to be done, what kinds of features we wanted, what we could do and couldn’t do. Then we’d go and do it. As I was the youngest person on the team, I was given little chunks of the project to work on at first, supervised by a meticulous and sharp mentor, Chris. We would go through my code line by line as I took notes, and he would point out my mistakes. I then fixed them, and we would repeat the process. It was very much a guild apprenticeship. I built the instant messaging windows: the “type your message here” window and the “transcript” window above it. I added better font control and helped make the client work with non-Latin character sets like Chinese/Japanese/Korean, Indic, Hebrew/Arabic (right-to-left languages were a breeding ground for bugs). I managed when the windows popped up, how they could be moved around, and how scrolling worked in them (scroll bars were also extremely buggy in Windows). Handling shutdown was especially difficult: we made sure the windows closed down neatly and all the program’s resources were cleaned up properly without the program crashing. “If it’s shutting down anyway, can’t we just let it silently crash?” I joked.

  After we finished developing the client code, we had some downtime while waiting for the server team to finish their Hotmail integration. We couldn’t release without their work. We fixed every bug we could find. One of our problems was getting new users to join Messenger when so many people already used other chat programs. Unlike email, which followed a common format across all programs and servers, these chat networks didn’t talk to one another; AOL didn’t talk to Yahoo, which didn’t talk to ICQ, and none of them, of course, would talk to Messenger. AOL had the largest user base, so we discussed the possibility of adding code to allow Messenger to log in to two servers simultaneously, Microsoft’s and AOL’s, so that users could see their Messenger and AIM buddies on a single list and talk to AIM buddies via Messenger. We called it “interop.”

  It wasn’t elegant, but it wasn’t too complicated either. A client program like Messenger talks to a server using a well-defined protocol, a set of coded instructions sent to and from the server. HTTP (HyperText Transfer Protocol), used to request and transmit web pages, is one of the most common protocols in existence. It is built on top of TCP/IP (Transmission Control Protocol/Internet Protocol), the underlying protocol of the internet itself. Internet companies run servers that speak these and other protocols. Some protocols, like HTTP and TCP/IP, are public. Some are private and undocumented. AIM’s protocol, known as OSCAR (for Open System for CommunicAtion in Realtime), was in the latter category. We didn’t have the necessary “key” to decode it. Instead, I signed up for an AIM account and watched the AIM client talk to the server using a network monitor, a development tool used to track network communications in and out of a computer. I saw the protocol that AIM was using. My mentor Chris had figured out a large chunk of OSCAR this way, and after he left the team, I picked up his work and finished the job. A sample message looked like this, with the hexadecimal representation of the binary on the left and the ASCII character translation of the binary on the right:

  Much of this is opaque, but “Hi.. Anybody?,” which I wrote into my AIM chat box, appears at the very end, surrounded by the protocol packaging for the message. Some of this protocol was always changing, but some was fixed from message to message. Chris and I decoded the messages. Then we took AOL’s protocol, packaged up text messages in it, and sent it to the AOL servers. Did AOL notice that there were some odd messages heading their way from Redmond? Probably not. They had tens of millions of users, and we were using their own protocol, after all. I thought this little stunt would be deemed too dubious and excised from Messenger before it shipped. But management liked the feature. On July 22, 1999, Microsoft entered the chat markets with MSN Messenger Service. Our AOL “interop” was in it.

  Reception was generally positive. Everything worked, and it had better international support. It integrated with Hotmail, and users could use Messenger to talk to their AOL chat buddies. Our lark was paying off.

  No one had warned AOL of our gambit, and they weren’t happy with what we termed our “unauthorized interoperability.” Quickly, they blocked Messenger from connecting to their servers by varying their protocol messages in ways we had not anticipated. Users who tried to contact their AIM buddies from Messenger would receive a pop-up instant message saying, “Use an authorized AOL client at this link: [web URL].” But as long as Messenger sent exactly the same protocol messages to the AOL servers, AOL wouldn’t be able to detect that a user was on Messenger. I took the AIM client and meticulously checked for differences in what it was sending, then changed our client to mimic it once again. Messenger users received an upgrade with this new fix. But AOL again caught on and switched their protocol up. We matched their client again and pushed out another upgrade. We went back and forth at least a dozen times. At one point, AOL sneakily excluded users logging on from Microsoft headquarters from their changes, so that we would be unaware that other Messenger users were receiving an error message. After an hour or two of scratching our heads, a team member sick at home notified us that yes, she was getting disconnected.

  Microsoft and AOL were both tech titans in 1999, and soon the press got hold of the story. On July 24, the New York Times printed: “In Cyberspace, Rivals Skirmish Over Messaging.” AOL kept blocking us, wrote the paper of record. “But Microsoft refused to roll over. Late Friday, the software giant said it had revised its MSN Messenger program to circumvent America Online’s roadblock. Within hours, America Online answered that challenge with a new block.” It was like reading about a wrestling match in which I was the mysterious masked challenger.

  I framed the article. That was me!

  Microsoft Agonistes

  Most software today is very much like an Egyptian pyramid with millions of bric
ks piled on top of each other, with no structural integrity, but just done by brute force and thousands of slaves.

  —ALAN KAY

  This was 1999. Two decades after launching MS-DOS, its first operating system, Microsoft was one of the biggest companies in the world. It employed thirty thousand people worldwide. About ten thousand were in Redmond, and two of them were now me and my wife. The campus was about the same size as Yale’s, but moving there felt like being flung into a different world, where technical strengths were deployed in headlong pursuit of profit. Despite Microsoft’s notorious “stack-ranking” of employees, a zero-sum game that pitted team members against one another to compete for bonuses, it was still less competitive than academia, with a great sense of camaraderie and teamwork.

  I came to Microsoft in its middle age, when it had reached the summit of its unprecedented software dominance. What was Microsoft’s secret? They were, and are, a software company. While hobbyists in the 1970s were trying to figure out how to build a computer small enough to fit in your home, Bill Gates and his partner Paul Allen were writing software for that as yet unbuilt machine. In 1980, they partnered with IBM to provide MS-DOS (Microsoft Disk Operating System) for IBM’s first mass-manufactured personal computer, the PC. Gates and Allen foresaw that PCs were going to be ubiquitous and that software, rather than hardware, would be the profit point.

  By licensing Microsoft to provide the operating system for their PCs, IBM essentially handed them a license to print money. The margins on software were far greater than those on hardware, because the physical manufacturing process was negligible—producing disks was cheap and trivial next to microprocessors and peripherals. And Microsoft had a lock on guaranteed sales of the ballooning PC industry. IBM wasn’t the only hardware maker in town—far from it—but Microsoft was the only maker of MS-DOS.

  I didn’t grasp Microsoft’s prominence growing up. They had no presence on the Apple II, which was not a business platform, and their PC software was, at the time, runner-up in competition to more established players like WordStar and Lotus. I understood that they provided the crucial though unflashy operating system to IBM PCs. What I didn’t understand was just how tightly and brilliantly they had placed themselves at the core of PC software, with strategies that would enable them to dominate the software business in the 1990s.

  Microsoft’s rise did not go unnoticed or uncontested. In 1984, Apple debuted the Macintosh. Following the far less popular Lisa, which came out the year before and cost $10,000, Lisa’s “little brother” Mac was the second PC to use an operating system with a graphical user interface (GUI), building on research done at Xerox PARC and elsewhere. Apple bought ad time during the Super Bowl to trumpet this revolution in computing, and they weren’t exaggerating. Until the Macintosh, PC screens displayed only text and the most primitive of graphics, but now Macintoshes featured a visual representation of the inside of the computer—a “metaphorical desktop,” as it was called. I found it dazzling, but computers weren’t yet powerful enough to make the GUI indispensable. Toward the end of the eighties, home computers became fast enough to make multitasking increasingly valuable, and it was clear that GUIs promised far more user-friendliness than text command lines.

  Microsoft thought so too. They partnered with Apple to provide software to Mac users, including Microsoft Word. More significantly, in 1985 they released the first iteration of Windows (with, importantly, some GUI elements licensed from Apple, such as icons, windows, and scroll bars). Windows featured a clickable list of the files on the computer, resembling today’s Windows Explorer, plus some other “windows” displaying executable files (a calculator, for example). It was an improvement over the MS-DOS command prompt, but a far cry from the Macintosh’s elegant monochrome desktop. In 1987, Microsoft released Windows 2.0. This was still clunky, but already better, with overlapping windows and more logical functionality. Apple could see where things were headed, and in 1988 they sued Microsoft for copyright infringement.

  The suit failed. Windows was similar to the Mac operating system, but hardly identical. The appeals court wrote, “Almost all the similarities spring either from the license [for the initial Windows] or from basic ideas and their obvious expression….Illicit copying could occur only if the works as a whole are virtually identical.”

  The initial decision came down in 1992 and was affirmed on appeal in 1994. It was a serious blow to Apple, already in its Steve Jobs–less slump. Hampered by poor management, overpriced computers, and the protectionist attitude that only Apple could make Macintosh hardware, the company saw its market share decline throughout the decade, eventually prompting the return of the exiled Jobs and the company’s resurgence. Windows, meanwhile, conquered the world. In Windows 95, the first post-lawsuit release of the operating system, Microsoft incorporated Apple’s famous trash can, impishly refashioned as a “recycle bin.” For a good long while, Windows could not be stopped. It never reached the elegance of MacOS, but it didn’t matter. Windows was everywhere.

  Gates and Allen were skilled and even brilliant coders, but the history of software is littered with people just as smart or smarter who did not end up billionaires. Their true achievement was on the business side. For years Microsoft remained a small company. In the 1980s and ’90s, companies didn’t need to be big to make software. The programs were less complex, and there wasn’t yet so much competition, so Windows could charge a premium for them. The amount of person-hours that goes into a $50 piece of software today dwarfs that for a $50 item of software thirty years ago—one of the reasons why the software industry doesn’t mint millionaires like it used to. In 1983, the prestigious word processor Word Star was so primitive it required users to put little stickers on their keyboards so they’d know which functions correlated to which keys. This program retailed for $289.

  In this world, Microsoft stood out. They worked fast, they were aggressive, and they were very cagey. Their strength was never in innovation per se, but in appropriation, improvement, and integration. One slogan that I would hear bandied about at the company was that Microsoft made “best-in-class” products. A less charitable way to put this would be to say that Microsoft would develop products that were better enough than the best out there to take over the market. The quality of Microsoft’s offerings closely tracked the quality of existing offerings.

  Lotus’s spreadsheet software 1-2-3 was a solid product in the 1980s and early 1990s; consequently, Microsoft Excel, which debuted in 1985, became the standout of Microsoft’s nascent Office suite. Word processors like WordPerfect and WordStar were less formidable; as a result, Microsoft Word was considerably less robust than Excel. And in the absence of any dominant email programs, Microsoft Outlook was buggy and slow. It remained that way well into the early 2000s—much to the vocal dismay of Microsoft employees themselves, who were stuck using it.* Microsoft was far too efficient to waste time improving a project beyond what was needed to defeat their competitors. In the late nineties I got a chance to tour the legendary Massachusetts computer company Digital Equipment Corporation (DEC, later bought by Compaq), and the difference in culture was remarkable. There were people at DEC who had been working on threading (the manner in which operating systems manage concurrent sets of processor instructions) for twenty years. Half the people had PhDs in their areas of specialty. Corners were never cut for a faster release. Ah, I thought, this is why Microsoft won out.

  Microsoft certainly tried to innovate with new products from time to time. Clippy, the little paper clip that popped up occasionally in Microsoft Word, was an innovation. Microsoft Bob, a yellow dog in dark glasses who showed up in Windows 95 to offer help, was an innovation. Cairo, Microsoft’s “revolutionary” new operating system from the 1990s, would have been a tremendous innovation had it ever shipped. But Microsoft was far more comfortable entering existing markets and besting competitors. In the absence of a clear target, planning became fuzzy and tentative
. This was apparent in their reticence to engage wholeheartedly with the internet in the 1990s. No one was making gobs of money online yet, so Microsoft didn’t have anyone to emulate. It wasn’t as if Microsoft didn’t realize that there was money to be made. Microsoft just wasn’t about to create the mechanism to do so on its own.

  * * *

  —

  By 1999, the Windows and Office behemoths had ensured Microsoft’s ongoing dominance of the desktop operating system and business applications markets for as long as the PC remained central to businesses and consumers—even when the US v. Microsoft antitrust trial was at its peak in 1999–2000. The suggested plan to split Microsoft into two monopolies, one for Windows and one for Office, wouldn’t have helped, even if it had made it past the appellate court that overturned the initial judge’s ruling. The case was a bizarre, political sideshow, which had only a minor impact on the tech industry. It did ensure that future tech companies kept a far larger battery of lawyers and lobbyists close by. The internet—and Microsoft’s inability to engage with it productively or profitably—hurt Microsoft far more than the antitrust suit did.

  Through the antitrust discovery process, I learned that before I arrived, there had been a war over the future of the company at the highest levels of Microsoft—between the “doves” and the “hawks.” The doves wanted to make common cause with other internet companies, like Netscape and AOL, and share power with them. The hawks wanted Microsoft to be the exclusive provider of internet services. The real bone of contention was the future of Windows: here was the most profitable thing in the history of computers. It seemed foolhardy to sacrifice the centrality of Windows to the open internet, but a truly aggressive internet strategy would have meant thinking about a world where Windows was not on every computer and device. “I don’t want to be remembered as the guy who destroyed one of the most amazing businesses in history,” one senior executive wrote of Windows during this argument. In the end the hawks won and most of the doves left Microsoft. Then the hawks lost.