I don't know if this is an American thing or the industry I'm in, but I've never seen a single developer use a Macbook or have stickers on their laptops. Is this is a silicon valley, web developer kind of thing?
Edit: Just to clarify, I'm a low-level C developer in the UK. Most everyone I know uses Windows/Linux and laptops are mostly Dell/HP
This is broadly tech industry I'm talking about but not some narrow Silicon Valley or web dev space. I'd never believe Macs were only about 10% market share based on pretty much any of my own anecdotal observations including walking into a random coffee shop.
The diversity is even a problem in workshops because everybody has a different config and you get weirds errors due to this or that combo.
But yeah, you will see stickers. Lots of them.
Doing lots of web work with open source software is painful on a corporate (ie very locked down) Windows machine.
Once everybody has the same Macbook model you really need the stickers just so you know whose laptop is whose.
Pair this with a long commute and stickers become a key identifying factor and stress reducer.
The author attempted to use WSL like their mac and had a bad time with it, aside from the text rendering and high DPI stuff that isn't quite as polished on Windows.
But yes, oftentimes HN (or an article it links to) uses "developer" to mean "SV web developer".
That might be because generally C#/.Net is the main choice of enterprise which was traditionally all windows.
As a European dev I just use a Mac because I love the Linux-ecosystem but I also need/want to run preferred photo/video-editing software on same machine I code on.
Very few Linux-loving-devs have audio-visual-creative hobbies and a need to use "one device to rule them all", hence not that many devs with Macs in Europe, simple :P
I work on the East coast and in one of my recent jobs, a couple of the younger (under-30) engineers had stickers on their laptops. This was definitely not Silicon Valley or any industry like that, and these were Dell Windows machines, not Macs.
The stickers are usually souvenirs from tech conferences, employers, cool startups, and hackathons.
In an office, or conference, where multiple people have the same work-issued laptop, the easiest way for folks to not mix up their laptops is to slap a sticker or two on it.
at best author is just another victim of selection bias, at worse he really believes everything he doesn't experiences doesn't exists.
edit: tried it myself. ACCU (C++ conf in bristol). a lot of stickers:
Windows is. All of his issues either seem to be from WSL, complaints about keyboard shortcuts, or not setting up his monitors properly (his claim that Windows doesn't properly support 4k monitors is a strange one).
To be honest, I don't get why he's installing VS Code on top of WSL, when you have native windows VS Code. This seems completely unnecessary, but maybe I'm missing some benefit?
I think the author missed the point of WSL, I can't see any benefit from that
When I develop Python with Visual Studio Code, I run it from a virtual environment. I have auto-formatting enabled, so whenever I save a file, it will automatically be formatted with the formatter which is installed in my virtual environment.
I don't know if the same is possible if your virtual environment is in WSL and your VS Code is in Windows.
As is cinnamon, 4K is not exotic technology in 2019 mine where not even that expensive tbh.
If you want larger and blur-free text, get a Mac or stick to lower-res screens...
* native and fully supported MS Office
* ecosystem of professional windows apps (atm. I need MS SQL Management Studio as an example)
* much much better connectivity on laptops. bye bye dongle land.
* a wide variety of hardware options to choose from, including ones with great keyboards. even the latest Thinkpads have vastly superior keyboards compared to 2016+ MBP.
* gaming
At the end for me personally, the tradeoff was worth it. I switched last summer and by now I'm not missing much. Same with iPhone - switched to an S10e last week and I'm already used to it. There's a couple of things still stuck in Apple land, such as our photo share - not yet sure what I'll do about that.
I was an Apple customer for 13 years before - at some point I had to cut it off, it made me too angry.
Office seems to have stagnated over the years in the corporate environment. The two main issues are 1) email search is slow and returns weird results and 2) shared document editing is non-existent so people email everything to each other, things go out of date, no version control, etc.
I’m much happier now using Linux with G-suite than I was using Windows and Office just because the rest of the developer experience in Linux is so smooth.
In finance, there’s also something to be said for the culture of a company where people know to use numerical software like R or Pandas instead of leaning on Excel. Like over the years I’ve noticed that the kind of person that insists on sending me Excel spreadsheets is markedly less conscientious.
While your observation may be based on anecdotal evidence in this instance, just a reminder that not everybody's technology choices are defined by factors that are so black and white. For example, I'm well aware of several tools on Linux which can blow my Windows-based workflow out of the water. But my visual impairment means I can't use them, because accessibility on Linux is terrible. Take the time to consider the possibility that maybe somebody has been forced into the usage of a certain tool by circumstance, rather than by the fact that they're bad at their job. If I was to use the tools you love, I would probably deliver subpar results.
As for shared document editing, most places develop intra-office file system-level habits that avoid the problem, or use specific hosting sites to co-ordinate multiple teams on a platform agnostic basis. On a per-document basis, Word's review, commenting and blacklining features are worlds better than the G-suite equivalents.
Yeah, keyboards on laptops these days are horrendously bad, especially on Macs. The latest Thinkpad ones aren't as great as the ones of yore, but they're among the best of new laptops. Personally, I have a Dell Latitude E6440, which I'm pretty sure is the last year of that line of laptops before they switched over to that awful island-style keyboard. I honestly don't know what to upgrade to after this because everything went to island keys after this point.
You need to develop on a platform that matches what’s running in production. Production almost always uses some form of Linux, so you at least need a local VM running Linux. Then it doesn’t matter if you have Windows or Mac as your main OS, and you can use the tools you need in those platforms, but otherwise actual builds and testing should be happening on the VM.
I disagree. As long as you can test on a platform that matches production, then you should be using whatever development platform makes you most productive. All major OS's are a means to the same end, each with their own unique strengths and weaknesses, but all perfectly capable.
Also, it's not very many of our users are running macOS on their desktops, so any desktop testing had to happen in a VM or another computer too.
Docker is well supported in MacOS. Much less issues than on Windows. If you want "one device to rule them all" you'd pick a Mac, if you can have multiple devices you can have your main one be Linux, sure.
Isn't completely fine?
It's not that macOS isn't "developer ready", it's that I'm used to the Windows way of doing things and have those keyboard shortcuts in muscle memory.
The main reason I like Windows as a development environment is Visual Studio. I wouldn't trade my data breakpoints, variable watch list, memory views, and Intellisense for anything. Then again I'm working on games, i.e. multi-million line C++ projects that run on 4+ platforms. Most of that stuff is unnecessary in other situations.
Also good luck getting any of the console devkits/SDKs to run on anything but Windows.
On MacOS it's good to get used with unixy/emacsy shortcuts like Ctr-a/e for Home/End. Fn+Left/Right works too (and Fn+Left has a slightly different behaviour). Basically if you love Linux and unixy tools you can get productive on a Mac in no time...
The developers who love Macs are the ones who love the "unix spirit" but for whatever particular reasons can't do all their work on a Linux desktop, if you're not into that then stick to Windows :P
I manage & develop a Win32 desktop app (because that's what my customers use). I am converting to Qt so I can also run on macOS.
I cannot imagine why I would ever consider an option that does not run on the Mac, such as WPF or WinRT.
(My customers hate Parallels, VMWare Fusion and Wine).
For some applications cross-platform frameworks are good enough, Electron has become quite popular.
For others, native frameworks just work better. Works both ways, same for Cocoa. For example, it’s hard to integrate Direct3D or Metal into QT.
I think this sort of perspective is a bit of a bubble, considering that Windows has something around 85-90% desktop/laptop market share and developers aren't really any sort of special snowflakes to expect anything different (even if Unix-like OSes are more likely among developers, it will only be a bias towards them, not something that inverts a 9 out of 10 statistic).
In my opinion, Windows 10 has the best High-DPI support of all systems. It allows you to change scaling in fine increments on per-display basis. Moving windows from one display to another scales them pixel-perfect, if supported. Pretty much all applications I use regularly work fine.
On Linux, the only thing I found to work out reasonably well is 2x scaling. I can't speak for Mac OS, but in my recollection the non-2x scaling isn't pixel-perfect.
"The text is rendered very poorly in Windows, creating a kind of chromatic aberration around it."
This is ClearType sub-pixel rendering and again in my opinion it's the best font rendering of all platforms, though FreeType on Linux works about as well. Font Rendering on Mac OS is just blurry by comparison. With Retina displays it doesn't matter so much anymore, but it was really annoying on the lower res displays.
Perhaps the author has it misconfigured for his displays and needs to run the builtin "ClearType Text Tuner" tool.
"Microsoft has made great efforts to support the needs of developers and creators, but as of 2019, I think OSX is still a stronger option for developers."
If you implicitly rely on a lot of UNIX-specific stuff, Windows will suck. That probably won't ever change.
Windows search and windows defender constantly spin your laptop cpu fan to max speeds because, you know, nobody minds a noisy laptop that they are not actively using.
Windows updates are constant, slow, often fail altogether and completely out of your control. Your machine may reboot at any time so good luck with that long running task. It's like they shipped a swimming pool that was actually a sieve and they are madly patching it every day.
Windows doesn’t respect the users desire to put the laptop to "Sleep". It will wake up at any time and often just stay awake and drain the battery.
Windows has also become some sort of hybrid advertising and tracking device which you can, admittedly, disable although some things like the search listening service Cortana really does not like being disabled.
Not everything is doom and gloom however. The virtual machine engine HyperV is extremely fast and easy to manage making things like Android development is a pleasure. Visual studio keeps getting better too.
I think the OP is describing an intentional feature (subpixel antialiasing). Mac OS Mojave disabled this feature by default because you don't need antialiasing if your screen resolution is very high. The chromatic aberration is ugly, granted, but the technique allows you to get a higher effective horizontal resolution which ultimately improves readability on low-resolution displays. And if you don't need it, well, it can be disabled on Windows too: https://www.isunshare.com/windows-10/turn-off-or-on-clear-ty...
There's also a great community of Windows employees bettering Windows Console, with honesty and humbly (they even created a themer that reads iTerm2 style files).
With a bit of patience, you can get it to the point where you never look back.
Also, very important: my employer disables real-time protection, which otherwise would make WSL unbearably slow. Make sure you test on an old PC before committing fully to it.
If your company relies on MS Office (we use G-Suite and Confluence) you might not have such an enjoyable time.
Moving to Windows had its hurdles, when an program doesn't support font scaling it's a pain in the ass, I bought a non-4k monitor just to make sure I would always have the ability to use apps that broke on my 4k.
WSL is amazing and easy to use. Mostly I found I missed the Windows ecosystem. OSX has a few nice programs, but does not compare to the options available for Windows.
It's not WSL I find myself using to have a good shell experience. It's MinGW/mintty. I even got a plugin to wrap it around WSL, since the Windows console experience is pretty painful. I miss my middle-click pasting and nice color schemes.
I just wish I could setup the path translations in PyCharm to use the same mapping. Things work, (and not too bad) but I just hate having to rewrite all of the paths in my environmental variables.
My other gripe is with the Cisco VPN client running all internet traffic through it, rather than having OpenConnect sort it out ahead of time.... but that's not really a Windows issue.
I prefer using Windows at home, and I can write software on it just fine.
EDIT: oops, thought this was an ask-hn.
Font rendering, yeah ok, still seems to be nicer, literally that's the only advantage I see.
- all Linux stuff you'd want is available and "just works"
- default Terminal is amazing and enough for me and most (iTerm 2 is there for whoever wants more) you'll get a sane Linux-like experience where copy paste just works in the terminal etc. (not the hellish terminal experiences you'd have on Windows even with smth like WSL) - also, even things like the touchbar play well with Terminal, you can open a man page from touchbar, change terminal bg color shade from TB to mark a production server ssh terminal tab as "dangerous" with a shade of red etc. ...lots of "small touches" that matter a lot
- mac keyboard is amazing for developers (you'd get the wrong impression that it's bad for developers from people complaining about the touchbar upgrade, but disregard that):
-- having Cmd and Ctrl keys be different means that you can have all you unixy/emacsy ctrl-p/n/b/f/a/e just work in all your desktop GUI apps too (the feel of having ctrl-a/e work in Chrome, VSCode, and other "regular apps" is amazing!), and the same time you can Cmd+C/V copy/paste in the terminal same as in other app - it's hard to put in word the nice warm fuzzy feel this good mixing of unixy-world with GUI-world gives you! (it's the opposite of Windows where the "two paradigms" feel like locked in a cold war with each other and you always have to switch your brain when switching tools)
-- Fn key is in the right correct place you'd expect it, bottom left, just like on the Thinkpads you know and love!
-- OS settings allow easily remapping things like CapsLock -> Ctrl that lots of people will do (if you're more into Vim than Emacs you'll do CapsLock -> Esc, that's in standard settings too)
- multiple virtual desktops + external monitors etc. works productive and intuitively: if you love Gnome, you'll likely love MacOS too! (Also, tools like Divvy give you some features of tiling window managers if you're into this, and they also enable windows-like split-left/right shortcuts. Btw, there's an equivalent tool for Gnome/Gnome-based-Unity on Linux side too).
I'd urge all developers coding for Linux or Android to leave Windows for a while and try either (1) Linux on a Thinkpad (preferably a Gnome-based desktop if you're a developer new to Linux: Ubuntu, Pop!_OS, Fedora etc.) or (2) a MacBook: both experiences are slightly annoying to get used to at first, but dramatically increase your "feel good" factor and productivity! Windows may seem enticing hardware-wise (SurfaceBooks are amazing with their nvidia gpus etc.), but unless you write software targeting the Ms ecosystem, they are horrible machines for both developers and creative people imho... Window should be your last option in 2019 if you're a developer!