POSTS

Windows Returns as a Platform for Web Development Again

Blog
Microsoft logo

Many years ago, I gave up Windows as my primary operating system. After a multi-year run in Linux, I adopted the Mac platform in 2002 and haven’t looked back. Lately, however, as a developer I feel ignored and under-served by Apple. To this end I’ve played with Chromebooks and [non-local-machine-based development][vpsdev]. However, with the release of the Windows Subsystem for Linux (WSL), I believe the Microsoft ecosystem is currently offering a comparable experience at a competitive price point with more performant hardware.

History

I was forced to live through a Windows + Linux dual boot period (Windows for games, Linux for development and learning) 2000-2002. While I wanted to cut the tie to MS on account of their anticompetitive behaviors and the tendency of the OS to bloat into a pile of malware- or adware-riddled crap every 12 months, there was simply no viable alternative.

An alternative emerged when Apple released OS X in 2001. It seemed perfect for the “hacker” demographic:

  • high-performance hardware
  • an OS that emphasized minimalism and clarity
  • rich, beautiful displays, apps that didn’t nag or annoy
  • a time-tested security model immune to viruses and malware
  • the capability to run appes like MS Office or Photoshop
  • and a shell in which I could run the GNU software that had become so essential to my professional life.

After a few flirty visits to the CompUSA on Market Street in San Francisco (no Apple Store yet!), I finally bought my first iMac, a half-dome machine and came to love its pairing to my phone, its music library, its synchronization to my iPod. It felt great and I felt like I finally had a computer that “got me.”

iMac G4

I wasn’t alone in this sentiment, pre-Y Combinator blogger Paul Graham noted that the Mac had “returned” and heralded it in his blog post “The Return of the Mac” stating that “all the best hackers…are gradually switching to Macs.” As Graham notes in his essay, when you make the platform for developers, so do you ensure that developers make for your platform.

In the years after the “adoption” by “hackers” of the Mac, we saw exciting applications emerge that showed off the capabilities of “our” new platform. Ruby on Rails ran beautifully in the native Unix environment of OSX and had its own high-productivity text editor, Textmate. Clever uses of hardware created great apps like Delicious Library in those heady late-aughts years.

Concomitant Changes

Along the way, several realities have shifted. The iPod yielded to the iPhone. Google now provides an office suite that has become the standard, to the best that I can tell. Microsoft failed in mobile and Apple has exceeded staggering heights. Linux has become the default platform in the data center, not that anyone much notices because its computational resources are parceled out in “cycles” by brokers like Amazon AWS, Heroku, or Microsoft Azure. Which brings us to Microsoft. How did they change in the period when the Mac waxed ascendant as a developer platform?

Microsoft

Largely, Microsoft didn’t evolve. They stumbled in social strategy, internet strategy, identity strategy. While they kept their lucrative lock on consumer computing and office suite, the Ballmer extension of the Gates game plan was unremarkable and laggardly. Furthermore Microsoft as a titan fell behind Google, Amazon, Facebook, and Netflix. While it certainly remained a special technological stronghold, it seemed most of its exciting technology was related to a gaming platform. It wasn’t the company that brought magic to the nerds anymore.

Nadella

Microsoft CEO, Satya Nadella

Enter Satya Nadella, Microsoft’s remarkable post-Gates, post-Google CEO. He stopped being fenced in by the Gates-era playbook (lock-in, lock-down, MS-only, on-brand all the time) and has moved Microsoft from the PC-age, beyond the Internet age, let go of mobile failures and has focused the company on a true, vital future orientation.

Instead of moping over where the puck went, he’s skating to where it’s going to be. As an economic juggernaut he’s directing his team to admit losses but to create the tactical moves that will win the long game. And it has been awesome to watch.

Key to his success has been his sacrifice of sacred cows, his true embracing of other players in the ecosystem, and his eye on giving people what they want, how they want it, instead of badgering them into suffering Microsoft’s strictures on how to do things (or else).

Apple

Concurrently, while Nadella has been leading MS out of the wilderness, Apple has taken its eye off the Mac. In terms of performance, the current Macbook Pro is showing its age and lack of vision. It’s still light, it’s still silver but it’s lagging the state of the art in both CPU and video card. Here’s former Oculus CEO Palmer Luckey explaining why the Oculus Rift (a popular virtual reality headset) was not being prepared for OS X as a devliery platform:

“One of the things that we actually announced is that we’re putting Mac support on hold for launch, and focusing on Windows. People have said, ‘Why don’t you support Macs? So many people have Macs.’ It’s true. A lot of people have Apple hardware, especially in the laptop space. But the GPUs in those, they’re not even close to what we’re pushing for our recommended spec.”

Ouch.

Dabbling

In much the same way I came to try out the OS X machine, I started playing around with new Windows 10 laptops about a year ago. I picked one up second-hand from a repair shop by Penn station, I dabbled with it, and let it sit in a drawer throughout much of this year. Ultimately I put Ubuntu Linux on it and was glad to have a Linux machine back in the house after years of using Macs only. And then Windows 10 made a major leap.

Windows Linux Subsystem

The game changer was the introduction of the introduction of the Windows Linux Subsystem, a layer which allows Windows 10 to run Linux commands without any weird virtual machine or shim layer. In short: run Windows, run a terminal, run Linux CLI applications. Or, to make it more simple: run Windows 10 and run Ubuntu, the friendliest Linux ever as one.

The installation was trivial and with a few additional tweaks I had a rich, beautiful terminal client installed which made me feel as if I were back on a Mac.

Redmond’s Turn to Turn the Page

In many ways, Win10 + WLS was the realization of the same thing that had drawn me the OS X over a decade ago: All the Linux goodies, with an OS that looked nice, could run apps and (occasionally) games. Here is an equal, and powerful, entrant from Microsoft but which bosts games support as well as virtual reality development capabilities. While my laptop independence has been helped by my leveraging a [VPS as a development platform][vpsdev], I find native work just as effective on a Windows laptop as a Mac laptop.

Conclusion

If anything, in the same way that Apple’s advances urged Microsoft forward, it would be great if pressure from Microsoft leads Apple to make a Great Mac again. Thus far, recent Mac offerings and been gimmicky (touch bar, huh?) and / or underpowered. Lest they lose the hearts and minds of the developer community, Apple engineering needs to release a great development platform. At the moment, the only developers who can’t leave the Mac platform are iPhone developers. For all other developers, your next laptop might run Windows.