As someone who took a job using Windows after 4.5 years away from it, I completely disagree.
I hate windows with a passion, and it’s part of the reason I’m looking for a new job.
I’m not saying it’s not good enough for some, a lot of things in it still suck.
And no, in my opinion WSL is not real solution if the OS still makes life harder and more weird. Just a new twist to the cygwin/mingw/virtualisation scheme when running the real thing would be a lot better option.
And no, Macs and Linux are not perfect either, but they both are more friendly and humane options for developers.
Since VMs and containers because standard for development, I honestly have no idea what problems your colleagues are having. I haven't had a "Windows problem" other than the clunky UI since Win7, and the UI is 100% customizable.
- a windows 2016 server for which we needed to dig deep in powershell so it wouldn't reset the clock every 6 hours - a user whose local account services is totalled and he can't access his desktop any more
Personally I would like the start menu search to only look for applications but I gave up on that.
I suppose using windows only for office would help, of course.
I attribute the other one to a brutal shutdown of the PC that somehow corrupted a running update, some random clicking from the user in a misguided attempt to fix things behind the back of IT et voilà.
Why doesn’t WSL work? It’s Linux. It’s closer to what you’re deploying on for production than a Mac
WSL2 is a lightweight VM and is Linux. It has some new quirks.
I dual boot constantly and sometimes I forget what OS I am running. Until I see one clock instead of the other.
Of course there are some specific tasks that are more suited to one OS over the other (a reason for restarting), but things like using the browser, the text editor, VPNs, Kodi, epub readers, Anki, etc, they basically work the same.
So, for some games-> Windows, for CLI -> Linux, for anything else, any of them.
Directory management: 'Directory Opus'
Fast search: 'Everything' and 'Agent Ransack'
Powershell is actually pretty neat once you get past the odd syntax.
But yeah, you can't turn it into a native unix env.
Has no one used WSL? It’s pretty close compared to the past. No need for powershell. You have bash now
honestly, powershell is a superb weapon. Yes the syntax is .net-ish and not my preference but really the functionality is high.
I mostly use Linux Mint Cinnamon and the window and workspace management just feels more consistent and snappy.
Also Windows apps have a very annoying habit of showing windows for background tasks (file sync? software updates?) which I don't want to care about -- all they really accomplish is that sometimes the service gets stopped altogether just to forget about it.
It's like Total Commander: efficient and good in a way, but not in a way of modern streamlined UX that e.g. Apple software was once known for.
/rant
With WSL, it’s usable for me now since Linux is baked in. Are the apps as good on a Mac? Usually not, but a lot apps on Mac aren’t even native anymore.
On WSL (one? whatever) there is no raw socket access, zero. Cannot run something as simple as tcpdump. Plus the copy and pasting (CTRL-SHIFT-c/v) is incredibly annoying and inconsistent. Also the redraw in the terminal is really screwed up, half the time I try to go back to WSL and my terminal prompt is drawn in 3 different places on the screen.
I prefer my Mac with iTerm etc etc but I still work with WSL just as well today
The onus is on you to prove that this is true and endemic to the platform and not your unfamiliarity with the workflows on Windows.
I had a similar transition. I used DOS through XP/2000 heavily growing up. I worked jobs that used Linux and had a Mac at home until I had a recent job as Win10 was being adopted. I tried to give it my best effort. I got a book on Powershell and read it and researched. I was aghast that the same frustrations I had with XP and earlier hadn't been touched. I wish I had kept a log as I re-discovered them.
* Nobody used PowerShell. I tried to push it, but then I realized I needed a BAT file wrapper to run PS1 files, anyway. I was hoping PowerShell would be a next-gen BASH, but having verbose flags is great in scripts, but horrible interactively. The system I was on was air-gapped and the documentation required an extra download on each system.
* Man, Windows still updates a lot. Often requiring reboots. MacOS asks to reboot like twice a year (and doesn't force it). With Linux it's very, very rarely necessary to reboot.
* I found window management awkward. I was coming from Linux where META+LMB moved Windows, META+MMB resized them. I tried the hot-corners shortcuts and other built-in things, I tried installing a few things.
* When the UI is busy I still can't resize or minimize it?
* Control Panel and other configurations were a huge mishmash of tacked on menus with a mix of old UIs and icons.
* I really missed ssh-ing in to query and poke at stuff. RDP felt so heavy for small stuff that should be quick or automated.
After a few months I toyed with WSL, but spent most of my time sshed into a Linux box using vim or bash when managing files or source code. Most of the small services I set up running in Linux. After a year and a half I left for a variety of reasons.
Nothing stops you from installing an SSH server also.
Also, you can change the update policy (although that might be due to your IT).
> Nothing stops you from installing an SSH server also.
I didn't want to get too much into this in my previous comment because it has more to do with how the place was managed, then Windows itself. But it does speak to Windows out of the box. This was an air-gapped setup and they were fairly open to me making changes, but I was very careful about jumping in suggesting big changes since I had 0 practical experience managing Windows. They mostly started with Windows as it was installed when it was delivered. Windows 10 was fairly new and they were comfortable with 7. Things were managed with PDQ. Most things were done in an "artisanal" fashion (individually done in a simple or straightforward way). I was used to installing a bunch of software on a network drive and running it directly off NFS. I've been told at multiple places that's unfeasible with SMB because of performance. (I'm definitely not speaking to NFS or SMB as a whole here--just with this specific use-case)
This also meant our rack of headless machines, when the power went out, had to be brought up individually since the disk checker was waiting for input before booting. I had on my todo list to change this, but it's difficult to test and roll out and doesn't come up often.
Back to that question; it would have meant finding a third-party ssh and rolling it out just to appease me. I likely would have done it if I stuck around, though. Maybe in tandem with a full update to Win10.
On that topic, though. Currently, I support Windows users who work from home. It's a bit odd you need admin privileges to create a symlink (I admit, that need mostly comes from trying to get feature parity with Linux/macOS), but detecting and running Admin rights is incredibly awkward [1]. We also need these non-technical people do to some port forwarding or to ssh into our Linux servers. PuTTy's configuration interface is horrid to describe to random people. Since you can't import/export configs we've looked at creating a Registry file with the right configuration, but it's not a trivial thing. For a few people we've had them install WSL, but it's a bit overkill to install however many Gigs along with Linux just to get an ssh client (and it's not an option for non Windows 10 users).
[1] https://stackoverflow.com/questions/4051883/batch-script-how...
These days I'm on macOS not linux but my desire for that kind of control and speed remains; fortunately tools like BetterTouchTool enable this really nicely, and I get the best of both worlds: nice mouse-driven control when I want it, and a quick/easy way to throw a window where I want it the rest of the time (i.e. most of the time).
(I'd also say, addressing the parenthesised part of your first question, that for me, this isn't just about dev - this is a general preference; for some tools, e.g. the GIMP, tiling's a bad fit and the mouse is where it's at, but in general, if I can keyboard it, I will.)
So I've got a whole bunch of hotkeys doing things like "maximise window", "put window in top-right quadrant", "put window on display 3, taking up 1/3 of the width of the screen at the right and at full height". That kinda thing. This allows me to quickly/easily set things up as I want (not _automatically_ but that's fine for me in practice since the world and my needs are always in flux.) If you dig into it you can do some fairly powerful things... E.g. you can set up named triggers (i.e. actions not bound to hotkeys) which you can then call from AppleScript triggered by hotkeys (or, if you want, triggered externally by, e.g. Alfred, though I don't do that); the AppleScripts can maintain state between calls, so I have some hotkeys that move windows in cycles, e.g. "maximise the window's height and push it all the way to the left, and on each call cycle its width between 1/6, 1/3, 1/4, 1/2, 2/3" - stuff like that.
It's true you don't get "real" tiling with this - but as I say, for me, it satisfies the "why" of tiling WMs, without doing the "how". Hope that makes sense.
Weird, I always ask people the opposite. Why would you spend time manually positioning windows when the window manager can do it for you?
What is "tedious" about tiling window managers?
In a tiling WM full screen is the default. I never have to manually full screen something, it’s automatically taking up the whole screen. I usually have it in tabbed mode, so all new programs are just full screen in tabs. (And split view is just a hot key or two away)
Really though my favorite thing is the easy multiple desktops. Win+4 is always my chat program. Win+2 is always my ide, win+1 is always my web browser. I never have to mash alt+tab a varying number of times. and more importantly if the second desktop is actually two programs in split screen, it’s still easy to switch to and from. Otherwise I frequently find myself looking at one thing in full screen, then having to alt+tab multiple times to bring two half-screen programs back to the front.
I’ve tried to install various windows tools to either provide hot keys to virtual desktops, or otherwise replicate my tiling WM setup but nothing seems to be quite as convenient to me. I feel like I waste so much time alt+tabbing and getting things where I want them whenever I’m in a normal WM. In i3 it’s all either already the way I like or it’s 1-2 hotkeys to fix it.
It automatically makes the window you're using take up 100% of the screen. You can also switch between tiling and a maximized view in pretty much every tiling wm. Also, there are usually multiple desktops (or even better, "tags" like in dwm) which allow you to easily switch between applications in any of the different tiling modes.