Microsoft has been in the business writing software for a long time. 1975, to be exact.
They were pretty much at the ground floor of the dawn of the personal computer, and have dominated the software industry ever since, to this day.
Sure, Apple might be taking up the lion’s share of the tech limelight, but for productivity business software, nobody even comes close to the dominance and hegemony that Microsoft has absolutely owned with their flagship Windows operating system and Office suite software.
One of the critical ingredients to their continued success has been the large army of third-party developers who have flocked to the Microsoft platform and written software to work with their operating system.
Their annual Build conferences and their regular enhancements and releases of their flagship developer tool, Visual Studio, clearly demonstrate they know how “their bread is buttered”, so to speak. It’s clearly by investing maximum effort into wooing existing and new developers to the Windows platform.
Still not convinced? Google up Steve Ballmer doing his famous “developers! developers! developers!” hamster dance, if you still don’t believe me.
The more developers you attract to your technical stack, the more software your technical stack can produce, which in turn, ultimately ends up meaning more revenue and profits for your organization. Which is why Google and Apple invest countless millions, if not billions of dollars, into their own development conferences and software development tools and libraries. All these tech companies know getting the most mindshare and support from third-party developers is the absolute key to business success.
There are some key moments in Microsoft’s history that helped to usher in new waves of software programmers to their ecosystem.
Probably the first key moment was the release of their Win32 API (application programming interface).
An API is nothing more than a set of reusable useful libraries a developer can use in their own software, to save time and avoid reinventing the wheel.
There are common things a software developer who wishes to write software targeted for Microsoft’s Windows operating system, will always need to incorporate in their own software.
Things like drawing a window to the screen. Adding common controls to the window like button controls, dropdown lists, text boxes and other common UI controls.
The code to create these kinds of controls never changes. So Microsoft decided to create an API library, that is a set of commonly used library functions, which a software developer can call and not have to worry about writing code to accomplish the same thing.
Microsoft released this API and referred to it as the “Win32 API” (32 representing 32-bit memory addressing).
A programmer familiar with the C programming language, could use the Win32 API and save gobs of time by not sweating all the boiler plate code one would have to write without the Win32 API. Like drawing windows and buttons and other controls on the screen.
This allowed programmers wanting to write software for the Windows operating system, to concentrate their time and effort into worrying about designing the actual pieces of their software that mattered … the actual business logic and functionality beyond the boilerplate code the Windows API provided.
The popularity of this Win32 API triggered the first wave of developers into the Microsoft software ecosystem.
But Microsoft didn’t just stop there.
C programmers rejoiced at the ease of use and convenience the Win32 API provided for them in writing software for Windows.
But the C language isn’t the easiest of programming languages to learn. To become proficient and skilled at C programming takes considerable time and effort to master. It definitely doesn’t hurt to possess a formal computer science degree either, as one needs to grasp complex subjects like pointers, data structures like linked lists, stacks and hashes, and algorithms like recursive binary search trees, big O notation and other advanced computer science topics.
Microsoft wasn’t just satisfied with luring in C programmers to their ranks. They wanted to bring in what I like to refer to as the “business casual developer”. And they did with a new flagship software development product they called Visual Basic.
The title of their product is almost self-explanatory.
The “Basic” part of the title comes from the BASIC (Beginners All Purpose Symbolic Instruction Code) programming language that came about all the way back in 1964 at Dartmouth College.
Basic is a very easy, human-readable computer language. So easy, that practically anyone who doesn’t know a lick of computer programming, could probably deduce this single basic statement:
PRINT “HELLO WORLD!”
Basic was designed from the ground up, to be easy to learn and master. Microsoft deliberately choose to use BASIC as the foundation of their new Visual Basic tool.
The “Visual” part of Visual Basic is the real killer feature that flocked many new thousands of programmers to the Microsoft ecosystem.
The Win32 API library gave developers a huge boost in productivity and time savings by letting C programmers call the thousands of available Win32 api library functions to do common things like display a window on the screen and add useful things like buttons and textbook controls to the window.
Visual Basic took this one step further. Instead of just writing code to call these Win32 API library functions, a Visual Basic programmer could literally drag and drop a visual button or window to the Visual Basic programming interface, much like putting together lego bricks to build your own creations.
The Visual Basic tool would take care of generating all the underlying boilerplate computer code for you.
This visual palette methodology of literally “drawing” your application on the screen was a groundbreaking new concept in software application development at the time. We take it for granted these days as software developers, but back in the early days of Visual Basic, most programmers had to hand write all this boilerplate code by hand.
Visual Basic was so easy to use, that I remember some software development teams actually splitting up the work of building a complete Visual Basic application by splitting up the visual user interface building pieces of the application to UI designers and leaving the actual coding pieces of the application to the software programmers.
I came to the programming scene around the time when Visual Basic programming was really hitting its stride with the hearts and minds of many other thousands of Visual Basic programmers. It was, in my opinion, one of the most successful and key strategic business decisions Microsoft made.
The third major historical software developer moment in history happened when Microsoft released the first version of their .NET programming platform. .NET continues to be a key and strategic piece of Microsoft’s development platform to this day.
.NET acted as a new programming platform that allowed for many new and additional programming languages to be added to the fold, for programming software in the Microsoft ecosystem.
Microsoft released their new C# programming language at the same time as .NET and it incorporated the best features of C, C\++, Java and other modern object-oriented languages.
But the .NET platform was also flexible and powerful enough to allow for other programming languages to run under its platform including Ruby, F#, Python, C, C\++, and countless others.
Practically any recent programming language under the sun could run under the .NET programming platform, removing yet more obstacles and enticing other programmers outside the Microsoft ecosystem, to join the ranks.
.NET continues to be a huge and thriving programming ecosystem to this day. Many of the largest enterprises in the world continue to embrace .NET and will do so far into the future.
It seems hard to believe Microsoft can do anything more to lure new programmers.
But as the old saying goes, nothing stays still in technology.
And there’s been some important historical events in the tech landscape that continue to drive Microsoft in evolving their software development platform.
1. The rise of the internet
2. The rise of Apple’s mobile ecosystem
Even tech giants like Microsoft didn’t realize at first just how important the rise of the internet would become, and how it would eventually affect Microsoft’s bottom line revenue.
The internet suddenly became a new programming platform with which software developers could target their software to run on.
No longer did one require the Windows operating system to build software against.
The lure of writing software for the internet was it didn’t matter what computer the user was using … a Mac, a PC, a Linux or UNIX machine…as long as any of these machines had access to the internet and a capable web browser, you could run software just as powerful and practical as software written specifically to run on Windows.
This clearly threatened Microsoft’s operating system hegemony.
The second major technology disruption was the rise of Apple with their iPhone and iPad devices.
Millions and millions of consumers flocked to Apple to purchase iPhones and iPads and no longer even needed Windows PCs or Windows software to perform their everyday computing needs like e-mail, web browsing, instant messaging, word processing, etc.
The iOS programming platform attracted hundreds of thousands, if not millions of software developers to the Apple ecosystem, which is obviously in Apple’s best interests, as it helps to attract even more consumer to purchase iPhones and iPads.
Microsoft attempted to attract developers to their Windows smartphone platform, but it was clearly too little and too late. Software developers clearly did not show any interest in writing software for Windows mobile devices.
These two trends have clearly threatened Microsoft’s very existence, and they know it.
This is what I believe triggered Microsoft’s latest new programming platform they call UWP, short for Universal Windows Platform.
With UWP, you can now write Windows software to run on hardware devices completely outside of the PC ecosystem.
This would have been unheard of even 5 years ago.
Up until the introduction of UWP, Microsoft’s overall business strategy was to make money either directly or indirectly off their flagship Windows operating system.
But now with the new CEO, Satya Nadella, at the helm, Microsoft is clearly pivoting from the “Windows Only” business strategy.
They’ve made the radical and gutsy decision to acknowledge that their days of Windows operating system dominance won’t last forever and they need to look for new revenue sources.
Their Microsoft UWP platform will allow a software developer to write Microsoft driven technology to run not only on Windows PCs, but Android and iOS platforms as well, thanks to “bridging” technologies like Xamarin.
What is Microsoft’s endgame strategy? Based on what I’ve read about UWP and Mr. Nadella’s new business strategy to go “cloud first, mobile first” to make revenue, it’s clear UWP was designed from the ground up to support this new multiplatform, multiprogramming language programming environment.
Microsoft hopes to monetize their new business strategy with subscription-based software licensing and their back end, pay to play, “Azure” cloud services.
Microsoft clearly shows they aren’t afraid to turn on a dime when the need arises. And I’m looking forward to experimenting with UWP and whatever shiny new programming platforms and languages that are coming down the Microsoft pipe in the future.