Switching ecosystems is dicey business, though. I definitely want a Surface Book, but my entire development setup is now UNIX-centric having used a Macbook since 2006(?). It's not that I can't switch back, but there's a big, $1,500 leap into the unknown to be made, which is a professional risk.
The point (as I understood anjc) is that "switching ecosystems is dicey business" would be a ridiculous statement to make in a review for an Apple product.
The press tends to treat Microsoft like Cinderella's stepmother treated her: unreasonably critical.
Historically, Apple absolutely would have been the risky platform to go for (I waited until their Intel laptops, using Boot Camp as an insurance policy). But these days people have iPhones, iPads, some even have Apple TVs... the Apple hardware ecosystem is actually far stronger than Microsoft's. You absolutely are risking that syncing with your iPhone etc will be worse.
Why are people trying to bend over backwards here? Let's step outside the startup world for some facts:
iPhone market share in the US is 43%. Macbook market share is 12%. So the vast majority of iPhone users are "risking" this.
Which is really not a risk at all, because if it really were a risk Apple would be shooting themselves in the foot. They would be killing one of their most successful products for the sake of some of their least.
I don't know for sure how many iPhone users have ever plugged their device into a computer for anything other than a quick battery top up, but my hunch is most people just don't sync phones with computers any more, they sync them with iCloud or Google. I don't own an iPhone, but I've never even attempted to synchronise my phone with my laptop - contacts, calendar, and email come from Google, music from Spotify, and video from Netflix or Amazon. The closest I've come is copying some photos off the SD card.
The only people that need to worry are professionals. Developers and so on. And they can decide themselves whether switching is a risk without a journalist saying that a good product isn't an alternative because of this risk.
The Microsoft hardware product line is arguably more complete than Apple's at this point, when you factor in the Xbox. There's minimal risk to casual users in switching.
I’m old enough to remember when people said things just like this about Apple products: “It’s very nice, but switching ecosystems away from Windows s risky.”
But it still is. As another comment said, only 12% of laptops are Macbooks; it'll remain very hard to replace PC's and Windows in the large corporate and government worlds, thanks to Windows-specific software. A lot of software is moving to a more OS-agnostic platform (i.e. web), and cross-platform applications (like MS Office) are becoming more and more the norm, but there's still a long way to go.
It'd help a lot if Microsoft manages to get .NET applications to become popular on OSX. That's only possible since this year, and it'll probably take a few more years for applications to become properly crossplatform.
You don't need to switch ecosystems when you buy an Apple product. Macs run Windows just fine, either as a VM or dual-boot. They also ship with a full Unix shell. Macs are popular in part because they are very flexible computers.
The Surface line is not as flexible. It's perfect for people who are immersed in the Windows world, but a lot of people are not anymore.
Exactly, not only is it irrelevant in a discussion about specific hardware, it's also subjective. I've found the transition to Windows easy (and well worth it) and I'm sure that my demands are more thorough than the average user's.
But with a Mac, if I find I don't like the OS X ecosystem, I can always install Windows and be done. I get to enjoy my laptop and the ecosystem I want. I can't do the opposite with a Surface.
I had to solve this problem when I built a new high-end desktop aimed at gaming a while back.
As it happens, Windows 10 is actually pretty great from a basic UX point of view. In many ways I find it better than OS X now in this regard, which I didn't think I'd ever say.
But the lack of Unix underpinnings was a big loss. My solution was to run Debian in Virtualbox. I set it up with xfce as the default window manager, since it tends to run really well in a VM. But in truth I almost always use xmonad, which runs even better in a VM. For me at least, this has been a nearly perfect solution.
With the addition of virtual desktops to Windows 10 you can keep the full-screen Virtualbox in another desktop. Switching between OSs just by pressing Ctrl+Super-Right/Left is fun.
Hyper-v runs debian fine if you rather avoid virtual box. Also there's cygwin for anything that doesn't require a vm (scripting). I'd always run a dev environment as a vm to simulate a production environment. However, if I'm just writing bash scripts or anything that doesn't require installing a db/web server/etc cygwin is adequate enough.
I think that's what I'd do. I don't have a problem running Sublime etc. in Windows, so I figure I'd only need command line access to the Linux box, so even windowing isn't a problem.
But still, my Macbook Pro is only about a year old. As much as I want to justify that upgrade...
Yes, I got an SP3 a couple of months ago so I'd have a machine for a road trip I was planning.
I'm pretty heavily invested in Linux, and before getting my SP3, I only ever used Windows for gaming. I considered dual-booting Linux, but I was nervous about accidentally screwing things up ahead of my trip, so I decided I'd postpone that to after my trip.
So I installed stuff to make myself comfortable instead. PuTTY was one of my first installs, so I could SSH into my VPS whenever I wanted a familiar command-line environment (and with that, access to my coding projects and vim). Another was the suite of KDE apps, so I could use the GUI apps I'm familiar with. TortoiseHg, too, so I could pull stuff down that I wanted to work on (I use Hg as a means of backing up my stuff -- not just code, but a lot of plain text documents and stuff -- to my VPS).
So, yes, if you want a Nix-like ecosystem on a Surface, you can do that. I could've gone even farther and installed a full Cygwin environment, but I didn't bother just because PuTTY into my VPS was a much more efficient way of accessing a CLI environment. For that matter, I could've installed a Linux VM, too (and I probably would have, but I forgot, and it didn't come to mind until I was already packing).
And it's totally possible to install Linux, if you want. There are guides for installing Arch, Ubuntu, etc. on the SP3, and I doubt the SP4 or SB will be much different. Only reason I didn't is because I wanted to make 100% sure that if I accidentally did something wrong and blew away the wrong part of my SP3, it wouldn't happen until after I'm home from my trip.
I currently do my dev on a Macbook Pro but exploring the options available on Windows because I intend to switch to either the Surface Book or SP4.
I think with babun for a basic unixy terminal and vagrant to manage projects I'll have a nice dev machine. The massive plus to the surface is having ability to sketch out anything I want which helps immensely trying to solve problems, kind of like an ultra mini whiteboard.
I have used MSYS2 but decided to come back to Cygwin.
1. Commands in MSYS2, while fast in its shell, are slower than Cygwin's commands when run in PowerShell.
2. MSYS2 can't be installed via Chocolatey. It's because MSYS2 owners are against Chocolatey (insane!). Which makes it harder to automate the replication of my environment across machines.
3. Cygwin does has package managers. I use Cyg-Get, which is also available via Chocolatey.
How is Cygwin terrible exactly? It’s fast and lightweight (compared to other recommendations like MobaXterm) and has a huge selection of packages¹. Frankly, I don’t get why Cygwin gets so much flack; I’m glad it exists.
And then there's vagrant. I switched back to MS because C# and profit, all other dev is on vagrant boxes which actually made things easier as I tend to be more comfortable with that what I push will work as I have the same *nix setup on my 127.0.01 as on remote.
Vagrant under VirtualBox is a little slow, but taking the time to set up WinNFSd is very worthwhile for real file I/O gains. If you want to pay for VMWare + VMWare's Vagrant plugin, you'll get even better performance.
Supposedly you can also use Hyper-V which is included by default on Windows 8 and later. But since the time I found that I didn't yet have a need for vagrant again.
I'm currently on Win10 Home, but I use Vagrant so extensively that it's probably worth an upgrade (besides that, it provides a lot of other great features, anyway).
It's especially dicey because Windows as an operating system has been a convulsing mess of confusion for years as they've tried and then partially abandoned a shift to mobile-first. It would make sense to wait for an actual paradigm to re-emerge before trying to get used to one.
I find that the UX experience of Windows 10 is better than that of OS X. That's highly opinionated, of course, but this is coming from someone who's been a more or less OS X diehard for 8 years.
Of course, Windows is still a mess under the hood, which is why I also run a VM (debian with xfce or xmonad).
Wow, it looks great! I especially like this section:
“unicode as expected
Unicode in midipix is not an afterthought, but rather an essential concept. When your application enters its main() function, for instance, its argv and envp point to utf-8 strings, just like they would on modern unix systems. Similarly, the size of the framework's native wide character (wchar_t) is four bytes, meaning that your unicode application can share its entire code-path between platforms. Last but not least, midipix adds an important 'M' (as in multibyte) variant to the 'A' (ansi) and 'U' (utf-16) GUI flavors, meaning that you can seamlessly call functions such as GetWindowText or SetWindowText using utf-8 input and output.”
Maybe they've fixed it since I tried it, but enabling Hyper-V on my Surface Pro 3 messed up sleep. It would only Hibernate and not reliably. Took me a couple weeks to figure out what happened.
Unix and Windows are two different cultures, it's not just about features/commands/tools - any of the latter has always a counterpart which "at least somewhat works", but that is besides the point.
Yes - and given that I'm trying to be more disciplined about doing my development work in Docker instances it might actually be the direction I'm headed in anyway.
It's difficult to test drive that idea, though. VirtualBox on my Macbook to Windows, SSHing to another VirtualBox for development? Hmm.