Thoughts about Windows, PCs & dev experience

Lately I got myself a desktop PC with Windows.

I have been Mac user since 2008. Before that I used mainly Linux since 2001. Every now and then during these years I have developed for Windows, but usually in a virtual machine in MacBook.

I will talk about my motivation and experiences for getting Windows PC in this post.

Why Windows??

While I do love working with Mac, there are some things that current Mac lineup is not suitable. As many other people have mentioned, there is no reasonable Mac setup for high-end performance requirement tasks.

Those tasks include especially:

  • Gaming and VR
  • High-end 3D creation
  • Machine Learning on large datasets
  • In some cases video, animation & photo related
  • Cryptocurrency mining
  • Other heavy computational stuff

You can of course do something with above, but when you want to get serious, Mac hardware just isn’t there. Latest GPUs are a requirement for all that. Even Mac Pro is not enough and way too expensive for the price.

My main motivation for going Windows is VR and 3D creation.

As for gaming and VR, no current Mac has ability to run latest games full 4k resolution with ultra settings, nor is VR software supported by it either UPDATE: looks like it’s coming in end of 2017.

I also do some work related to machine learning, and do fair amount of photo and video editing. Every time I do anything related to those on my MacBook, things get hot and the fans run full speed.

Tasks like 3D rendering and Machine Learning could easily be offloaded to cloud these days, but especially on development phase, it is almost necessary to have that power available on your machine.

For 3D, you can model things with MacBook. However, once you start tweaking renderings, such as optimizing lighting, things can get quite slow. On MacBook it takes 10-20 seconds to get meaningful output, but with latest GPUs you get that in less than second.

What do you get with the price of Mac Pro?

With the price of the entry level Mac Pro, you can get a much faster and better equipped PC.

The most important reason for desktop PC is probably GPU. The video card I chose was the latest GTX 1080 Ti. I wanted to go with the best one, especially because I have 4k monitor and want to try to do things with VR. Most of the games I have tried run on 4k can do almost consistent 60FPS with max settings, and full 60FPS on lesser resolution like 2560×1440.

Another thing you can get with reasonable price is memory. Mac upgrades always cost premium, but getting 64GB of memory normally is not exponentially expensive.

Basically, when working you never want to run out of memory. When you open multiple 3D software, Photoshop, Unreal Editor, Lightroom, development environment and lots of browser tabs simultaneously you need lots of memory. I have been over 50% usage already.

Rest of the hardware is basically at least same level as with Mac Pro, 6-core processor, few terabytes of storage, etc.

However, the case might be noticeably larger (and look less like garbage can)…

Am I going 100% Windows?

Having a Windows Machine does not mean I am throwing away my MacBook either. It will still definitely be my web development and writing machine. Windows just lacks few things in these areas, more about that later.

I have my MacBook next to my 4k monitor easily switchable connection for keyboard, mouse, headphones and monitor. And on those times I want to use both, I also use TODO: synergy LINK Synergy, an awesome software to manage multiple computers on same desk.

Only thing that I still haven’t figured out is a good way to deal with the different modifiers (ctrl vs cmd) and it can be confusing.

Development in Windows

Development in Windows is not as smooth experience. Especially working with terminal is clumsy, and that’s what I usually do when doing web development.

There is a new Developer Mode that you can install Ubuntu and use bash inside Windows. Basic things work well, but when you have some customizations in your project, such as symlinks, things stop working. Some draw updates are also buggy with default terminal. I think some other things also failed in my limited tests. However, I think it’s a big improvement for previous hacky cygwin workflow.

It’s also bit disappointing that if you install servers, such as sshd and databases in the ubuntu shell, those are not running when you don’t have bash open.

You also cannot run windows executables in bash.

I have been using Visual Studio Code most of this year, and luckily the experience through that is same. I imagine Atom, Sublime text be so also – I think vim/emacs also have working ports.

Outside Ubuntu mode, managing software package and library versions is messy, as it has always been with Windows. Basically it’s manual process. Software like Chocolatey can help with that, but it’s far from the apt/brew/yum etc. experience.

If your projects are simple – no symlinks and nothing too unix specific things, you can probably do fine.

The overall experience

The MacBook experience is still way better.

Quality, consistent software experience is still missing from Windows. I do write a lot, big part of it for clearing my thoughts, gathering ideas, concluding what to do, I still love the experience on MacBook (or iPad). The software is designed with much more care, it’s consistent, comfortable to use, typography is beautiful.

Quality lightweight design & note taking tools are pretty much missing in Windows. On MacBook (and iPad) I frequently use Sketch, Mindnode, GoodNotes, Procreate, OmniGraffle, depending on the purpose. I tried to look for similar, cross platform software, but without success. Some say OneNote is good replacement, but I seriously doubt it especially though the videos I watched on it.

I like Mac font rendering more, and the fact that everything you do in OS is also doable on command line. iTerm2 and even MacOS default terminal are excellent.

Default shortcuts and shortcuts and configurability are better. Even trivial stuff like changing to virtual desktop N is difficult to accomplish in Windows. There’s no managed system wide shortcut setting, like there is in MacOS.

Hardware

I think Mac still has the best laptop hardware there is. Mine is late 2013 Retina MacBook Pro 15″, still working well. Maybe few scratches here and there, but basically no problems. It’s been in heavy daily use for over 3 years and still continues to do so.

When you buy a PC, you need to choose your hardware yourself, or trust the suppliers packages. I am glad with what I got, but having seen some bad things also, I think you should not go with cheapest and become proficient about the details of what you’re getting. One thing I was shocked about was the lack of Wi-Fi.

Software I miss from OS X

  • iTerm2. Easily the best terminal emulator there is, splits, settings, color customizations, password managers etc. work perfectly for my workflow
  • Ulysses. For writing, taking notes, organizing writing. Beautiful, well thought Markdown writing software with good organization and publishing capabilities.
  • Day One. For daily thoughts and journaling.
  • 1password – There is Windows version but the UI is confusing, it’s not well integrated, does not support syncing over Wi-Fi, etc.
  • Sketch. Adobe Creative Suite can do something similar, but sketch is lightweight and easy to be productive with.
  • Keynote – I don’t have or use Office, and am not really thinking of learning powerpoint
  • Really native shell – The Windows bash shell is not really

Same in both

  • Browsers I use are cross platform: Chrome, Opera, Firefox
  • Visual Studio Code has been my favorite code editor since beginning of this year and it works the same.
  • Evernote for clipping & reviewing stuff.
  • Creative Cloud apps.
  • Synology sync.

Stays in Mac

  • Writing. I will continue it doing in MacBook/iPad – I use mostly Ulysses and Day One.
  • Presentations. I will stick with Keynote, either using MacBook or iPad
  • Light design things. Sketch is good, so I’ll probably keep doing it on MacBook. For more heavier design, I do have Illustrator and Photoshop, and for photos there is Lightroom.

Some recommendations for Windows

  • Hyper as terminal. Windows default console is really bad. Hyper is electron based terminals, works well for both windows and the native bash mode. However it’s not iTerm level. Works in Mac also.
  • Chocolatey. I think it’s good way to manage some software installations, especially the ones that don’t have auto update.

Things in Windows that I’m satisfied with

  • Window snapping – by default is more sane than in MacOS.
  • 4k support – works properly. MacOS often throws windows out of screen when opening new windows.
  • Developer mode with bash – works fine for simple stuff, but you cannot run windows commands from it or so, so it’s still contained environment
  • Explorer – while I have no problems with Finder, I find some things in Windows File Explorer better (e.g. sorting order, view options, automatic mounting of network drives…)
  • Virtual Desktops – OS X/MacOS has had virtual desktops since beginning, but they only came to Windows in Windows 10. Still, I like how they work in Windows. The apps open per desktop really are only there, unlike in Mac, where alt-tabbing to another tab might change the virtual desktop

Things that I don’t like in Windows

  • Consistency of the software. Even Windows itself has two versions of lots of apps with the same features, that work bit differently. There’s the app store tablet-like version, that generally sucks and is extremely limited, then there’s the actual version that is what you have probably gotten used to in the past.Quality varies heavily from app to app. Usually the tablet version is horrible to use and limited, and the desktop version has 10 years old interface with quirks and is horrible to use therefore. Tiny badly designed forms in control panel features you cannot resize (that have been there since Windows 95/XP or so)
  • Development capabilities (especially web) are still not there. In Mac, there are most of the tools available by default, installing Xcode gives more tools and homebrew gives the rest. With Windows there are no tools available by default – but as you turn out developer mode you get ubuntu installation, then you need to install Visual Studio to get c/cpp compilers, but running them interchangeably through windows/ubuntu side is still not possible. Chocolatey promises to be apt-get for windows, and while it’s good choice for some software (say, git), some software have their own auto-updaters and you’re left wondering which one you should use & what will break if you don’t do it correctly.
  • Virtualization capabilities. Docker wants Hyper-V virtualization, which you can turn on or off. However, if you want to use VirtualBox/VMWare, you need to turn it off. This requires rebooting so basically you need to decide what to use. Convenient hack for choosing on boot. Though I don’t think Mac is too good either…

Conclusion

Windows has become better since I last touched it few years ago. With the Developer Mode, especially web development friendliness has gotten little better, but it’s still not there.

For 3D and such, it is and has always been the platform to go. There are more software available for Windows, but more than software, I recently feel it is really a hardware problem.

So, in 2017 my opinion is:

  • For web development, writing, light design, Mac has the best experience.
  • For 3D, VR, gaming, videos and maybe photos, Windows is the most cost-performant, and the software is essentially same and there is more software available.
  • For machine learning and heavy computational data things, you want hardware that you cannot currently get for Macs, so high-end machine with Windows (or more likely Linux) is the way to go.

Leave a Reply

Your email address will not be published. Required fields are marked *