Sunday, April 1, 2012

Switching from PC to Mac

I've been a PC user for at least 15 years.  I'm a professional (video game) programmer and I consider myself to be a power user.  I've written an Explorer shell extension.  I know pretty much every shortcut, I know how to tweak things, I'm very comfortable in the registry.  But I'm fed up with Windows.


The proverbial straw the broke the camel's back is the Windows Updates.  I generally tend to let programs do what they want to do; if there's an update, I'll take it, because usually that means good things- new features, bug fixes, stability improvements, etc.  So I have Windows Update set to whatever default settings Microsoft deemed best.

Those settings are terrible.

My understanding is, Microsoft works on fixing security holes, and once a month they release all the updates.  Shortly thereafter, my computer is supposed to download and install them.  So far, so good; I want to be up to date.  My computer, being a desktop replacement laptop, is usually asleep, so when I have something that I want to be doing I open it up and start doing my thing.  The update process proceeds in the background, slowing my computer a bit, but it's all good.  Eventually, the updates install, and inevitably, it wants to reboot my computer.

I do not want to reboot my computer.

Not very often, at least.  I'll have programs open- I'm doing things, here.  The default settings are to forcibly reboot 15 minutes after installing.  If you're still doing something, you can postpone it to 4 hours later.  So I'll come in, get the prompt, postpone the reboot, finish my work, put it to sleep, and then the next time the cycle will repeat.  God help you if you leave the computer for a half hour at the wrong time- all your work will be gone.  Hope you saved.  Sorry, these updates are important.

But they're not so important; not for me, and not for most people behind a firewall/NAT.  The most likely attack vector at me is the internet.  Take Chrome's updates, for instance: it detects an update, downloads it, gets ready to apply it, then signals to you, the user, that you should restart it when it's convenient.  There's a little badge by the wrench menu, and that's it.  So you see it, close Chrome, then open it up again, and bam- everything's up to date, and it even remembers all your open tabs and their histories.  You lost nothing but a few seconds.

Unfortunately, Windows Update doesn't update everything.  Sure, it will update Microsoft products- Office, Visual Studio, etc.  But not Java.  Or Flash.  Or Adobe Reader.  Or iTunes.  They all have their own updaters, always running, often informing you of updates.  Why aren't they (1) updated via Windows Update, or (2) updated once you run them?  Paint.net detects updates and asks you if you want to install them now or once you close down the program- this is how things could work.

Java has been around for a good 15 years or so.  Flash has been around for at least 10.  It's 2012, and you're still finding security vulnerabilities in these?  And Reader?  A pdf viewer, with security holes?  If there's a feature in Reader that can be exploited, then I don't want that feature in the program at all.  I view  documents with this thing.  There's something wrong with the system.

Sandy uses her computer even less frequently than I, so when she logs in, she's inundated with update requests.  She does what is probably the smart thing- she ignores them.  They're still open, still asking her to update, but she's doing her thing.  I can't ignore them.  They're like a needle in my eye.  They have to be dismissed, one way or the other.  One day, I went onto her computer, and there were at least 3 update dialogs, a request to reboot from Windows Update, and the computer had completely frozen.

Once the update insanity hit me, I started seeing other problems in a different way.  My laptop had Windows 7 installed at about the time that it came out; that's a couple years.  During this time, programs were installed and removed and updated.  Microsoft Outlook, which is, let's face it, the only way to manage your contacts on Windows, had a problem.  It wouldn't close.  You hit the X, the window disappears, but the icon is still in the system tray and the process hasn't exited.  This causes trouble for sync programs like iCloud.  I generally know what to do in these situations- do one or more of: disable all the addins, repair the pst, recreate the accounts, uninstall and reinstall Office.  It didn't work, though.

What's left to do?  I want Outlook fixed.  The only thing to do- reinstall windows; start from a blank slate.  Nuke the site from orbit; it's the only way to be sure.  This solution would be serendipitous- my printer driver has been hanging anything that tries to print, even Explorer when it tries to list the printers.

What am I doing here?  Why has it come to this?  Is there some way to escape the madness?

Let's consider what I need from my computer- I have an iPhone, so that needs to be synced (music, contacts, etc).  I use iCloud for syncing contacts (it's the only option that will sync large contact photos).  My email is online; most of what I do is online.  I enjoy programming, so I want Visual Studio.

Linux might be an option.  I installed it and tried it out.  Finds printers ok; a lot of things just work.  iTunes doesn't work under Wine, though, and what iPod/iPhone support they had got broken with iOS 5 and has yet to be fixed.  Things are ok, but now I'm fighting an uphill battle to do anything that I used to be able to do in Windows.  I could use a virtual machine, then get iTunes, Visual Studio, Office, etc.  So the computer would consist of a Linux box running a Windows VM.  I guess I'd be using the Linux part for the web and playing music.  What am I doing?  Why am I using Linux, here?  I'm basically adding additional updates and difficulty, and why?  Was Windows really so bad?

What are my other options?  Well, there's Mac.  Native iTunes, iCloud, BSD core; there's a lot to like.  My laptop probably won't make it as a hackintosh, though, so it means new hardware.  I have had this laptop for 5 years or so; an upgrade isn't out of the question.

Now, seriously looking at Mac, I understand.  Apple owns the experience.  They own it.  They've created an ecosystem.  There's iTunes, where you buy your music and movies and tv.  You can play it on your iPhone or iPad or Apple TV, and if you do, it's super easy- a seamless experience.  Your Mac will handle any content-creation needs from video editing to photo manipulating to programming.  Apple will sync your contacts and calendars via iCloud; the built-in iCal/Address Book will get all the good data (all the fields will match, unlike Outlook's 3-email address limit).

Once you decide to go Mac, you'll see that your options will be fewer, but better.  Try to pick out a Windows machine.  You'll have a lot of options.  Is Toshiba a good brand?  I know Lenovo used to be IBM, which were the cadillac of computers; are they still?  Do I want an i3 or i5 or i7 chip?  How many cores do I need?  Now look at Apple- do you want a laptop or a desktop?  Do you want the big screen or the small screen?  Do you want to pay extra for the high-end or just go with the entry model (which, compared with regular PCs, is still high-end)?  They've taken the paradox of choice out.  You can hem and haw over any of the choices, but you can't make a wrong choice.  You can't make the choice of the wrong company, who won't have good support, or the company that cuts corners and a year later the heat unseats the GPU and now your laptop's display doesn't work (this happened to my sister).

Apple owns the hardware, so they can push the envelope.  Apple can switch platforms from PowerPC to Intel, then to 64bit, then end support of the old platforms.  Microsoft, in Windows 7 64-bit, finally ended support for Win16.  (Side note: when they switched from 16-bit, they put 32-bit system files in c:\windows\system32; but for the switch to 64-bit they're in... c:\windows\system32.  The actual 32-bit stuff is now in c:\windows\SysWow64.)  Microsoft is not agile.  They can't even get all the products at their own company to switch to x64 in a timely fashion.  They're shackled to their backwards compatibility legacy.

Apple, on the other hand, has committed to coming out with new versions of the operating system every year.  Every year, for $30, you'll get new stuff.  Apple adds new APIs that leverage the power of the hardware, that make hard things easier to do, that centralize services like iCloud or Twitter.

In OS X Lion, Apple added fullscreen support and auto saving.  I don't know how they work, exactly (though I've heard that the autosave is controversial), but as an end user, all you have to do is enjoy the show.  I can reboot, and when it comes back up, all my windows will be reopened like it never happened.  Now I don't fear rebooting- it just costs some time.  They also added gestures, which are completely awesome.  I got a trackpad and a magic mouse.  Swiping to go back/forward is a joy.  4-finger swiping to switch between fullscreen apps is amazing.

When I say that Apple cultivates its ecosystem, I mean that they continually try to improve the end experience for the user.  Microsoft might create a service in Windows, like Volume Shadow Copy, that lets you copy open files to make a backup.  But they left it to the world to create something like Time Machine, and the world didn't step up.

Let's compare the end-user experience of the backup systems in both.  In Windows, you'll get a nag prompt that you need to setup a backup.  They have a built-in program that will do it for you, so you get the appropriate hardware- a USB drive.  What size?  Well, depends on how much you'll be backing up.  Ok, plug it in, run the backup, tell it which files you want backed up, and it goes to town.  Now, let's say that you want to back up to a network drive- hope you've got Windows 7 Ultimate or Business edition, because if you have Home, then you're out of luck.  So now that you've got your backup, just plug it in every so often and run the backup (I'm not sure if it happens automatically- I never got past the 'no network drive' part).  If your computer dies, you can use the backup with a Window 7 install disk to restore your computer; all your stuff is where you left it (right?  I've never done it).

Now let's look at Time Machine.  You'll get no prompts to setup a backup, though the icon will be next to your clock in the menu.  So let's setup a backup.  You can use a USB drive if you've got one; if you don't, then Apple will gladly sell you a Time Capsule- a router combined with hard drive that will magically work to backup any Macs on your network.  You have two choices- 2TB or 3TB; I chose 2TB because that extra TB is like, an extra $200.  Plug it in, run Time Machine, point it to the drive, and let it go.  You can tell it to not backup certain folders, but otherwise it will do its thing.  It will keep old copies of things, it will remember what folders looked like at certain times, so if you remember where something was, you can find it again.  You can use your backup to restore your computer if something bad happens.  Plus, it looks amazing and is fun to use.

It's should be no surprise that Time Machine kicks Window's backup up and down the street, but I bring it up to illustrate a point- Apple is continually working on the next Time Machine.  What is Microsoft working on?  Will Windows 8 finally have some of these basic end-user needs met in an amazing way?  Maybe, but right now it looks like the answer is no, because they're singularly focused on appearance and user interface, and primarily on soon-to-be-iPad-competing tablets.

A brief point with gestures- a long time ago Apple committed to the touchpad on their notebooks (as did everyone else), but they decided to make it a good experience- a big surface, multi-touch, and recently they added gestures.  They make it so compelling that they sell a touchpad for desktop computers.  Gestures are so awesome that they want desktop users to have them, to the extent that iMacs don't come with mice unless you ask for them.

To come full circle, let's talk about updates on the Mac.  Currently, there's two main update avenues- the App Store and the apple menu's software update.  In Mountain Lion, there will only be the App Store.  Individual apps are still free to update however they want (Chrome still updates in the aforementioned awesome manner, and Picasa has its own updater).  I've had my Mac for about a month and there have been a handful of updates, all of which I've allowed, none of which have required me to restart.  Or maybe one did- it was unremarkable, because everything opened to how I had left it.  Nothing forcibly rebooted my machine.

What about security updates?  I'm sure that Macs have vulnerabilities, and maybe I'm naive, but this seems to be how pcs are supposed to be.  I don't have antivirus or anti-malware programs installed.  In Mountain Lion, Apple is going to start enforcing app signing by not allowing unsigned programs to run at all (by default).  And if there's a problem, Apple can revoke the signature.  That seems like a much better approach- only let the good things in, rather than leaving the door open and policing that nothing bad got in.

I'm not saying that Apple is perfect.  Things can go wrong on a Mac just as easily as on a PC, and it can be super difficult to fix problems on either.  I'm just looking at the direction these trains are headed- Microsoft is going to TabletLand, hoping to compete with the iPad, and Apple is going to uncharted lands, where iClouds sync your data, where you're more productive, where the OS is more beautiful, more useful; where things work by magic.

No comments: