Volume 34 Number 9
[Don't Get Me Started]
A C Change
By David S. Platt | September 2019
Full fathom five thy father lies;
Of his bones are coral made;
Those are pearls that were his eyes;
Nothing of him that doth fade,
But doth suffer a sea-change
Into something rich and strange.
—Shakespeare, The Tempest, Act I, Scene ii
I’ve been around this industry a long time, and have seen many changes: some good, some bad, some undoing earlier ones. One of the biggest changes I’ve noticed from Microsoft over the years is the company’s pivot toward open source, as many other software companies are also doing.
I remember when source code was the most closely guarded secret at Microsoft. I was allowed to see some back in 2004 when I did some work for Microsoft, related to the insurance industry. After pledging my firstborn as security against disclosing it, they showed me a file, so I could see where my code would hook into it. “OMG, the sacred Microsoft source. I’ll never vacuum this laptop keyboard again!” (I think it still has some of Simba’s fur in it.) I looked over my shoulder as I left the building, remembering the customary admonishment, “We could tell you, but then we’d have to kill you.” So far, they haven’t. Yet.
It’s different now. At the Microsoft Build 2019 conference this spring, I caught up with my good friend Richard Turner, now the product manager of Microsoft Terminal. He told me how the new implementation was completely open source (repository at github.com/microsoft/terminal, and you can see his Build presentation at youtu.be/KMudkRcwjCw). I took a good look through the code. And you know what? The heavens didn’t tremble. It was regular C++ code, similar to that produced by good programmers at other companies. I was especially struck by the comments, such as “Load Bearing Code—do not touch” or “We need to come back and fix this someday.” Microsoft programmers encounter the same time and logical constraints as the rest of us, and they react in similar ways. Who’d-a thunk it?
Customers are demanding open source software, so vendors are supplying it, as classical economic theory would dictate. But this shift has ramifications that the purely rational model doesn’t cover. Behavioral economist Dan Ariely discusses this in his excellent book, “Predictably Irrational: The Hidden Forces That Shape Our Decisions” (Harper Collins, 2008). In Chapter 4, “The Cost of Social Norms,” he describes the predictable differences in human reactions to business transactions versus social transactions, even at the same price point. Offer your in-laws $50 for serving you Thanksgiving dinner, and your celebration next year will probably be a frozen dinner alone in front of the TV set. Spend that same $20 on flowers and a decent bottle of wine, and now you’re in a completely different interaction model; one that works on social norms, to which classical theories do not apply. Ariely writes specifically about open source software:
“… you can post a problem about a bug on one of the bulletin boards, and see how fast someone, or often many people, will react to your request and fix the software—using their own leisure time. Could you pay for this level of service? Most likely. But if you had to hire people of the same caliber, they would cost you an arm and a leg. Rather, people in these communities are happy to give their time to society at large (for which they get the same social benefits we all get from helping a friend paint a room).”
My friends in the Visual Basic 6 community have been clamoring over many years for exactly this. (See my previous columns at msdn.com/magazine/mt846730, msdn.com/magazine/dn745870 and msdn.com/magazine/jj133828.) I don’t know whether this will happen. Even though it would be open source, such a project would still require a significant effort from Microsoft: for coordination, for extensive testing, for ensuring compatibility. Much as I personally wish the company would do it, I can see where Microsoft might consider it not worth the trouble. Still, the prevailing winds are finally blowing in this direction, so hope springs eternal.
The open source sea change will alter the future direction of this industry in ways that are hard to predict. The model isn’t new, but its widespread prevalence in the commercial sector is. I’ll be curious to see how it evolves over time.
David S. Platt teaches programming .NET at Harvard University Extension School and at companies all over the world. He’s the author of 11 programming books, including “Why Software Sucks” (Addison-Wesley Professional, 2006) and “Introducing Microsoft .NET” (Microsoft Press, 2002). Microsoft named him a Software Legend in 2002. He wonders whether he should have taped down two of his daughter’s fingers so she would learn how to count in octal. You can contact him at rollthunder.com.