We're a place where coders share, stay up-to-date and grow their careers.
I've never understood how software devs can have so much trouble with windows. I've used it for years and have never had more than a few minutes of downtime. And even that was my fault for letting it do the updates instead of waiting.
I build my own pcs, meaning I choose the right parts for my build. Can easily build a more powerful pc for half the cost of a Mac. Plus Microsoft owns github and VSC so I'm getting first class support.
I've tried to work with some geographic projecttion libraries (gdal, pyproj) on windows a few years ago. Finally, after a couple of days trying to put all the pieces together (specific versions of multiple libraries to work with python on windows) I was sucessfull!, ok well, I work for a week or two in my project, everythings fine.. suddenly my hard drive fails... ok. So I have had got to go through that install hell of packages..., so I've tried on debian (that time, today I have Arch) apt install that stuff.. that other.. about 2 hours to get everything working fine. And from that time (2012/13 may be) i'm running all my code projects on GNU/linux.
This year I'm start thinking to buy a mac, just because, but certainly the price is a big no no to me.
A hard drive failure almost certainly has nothing to do with windows. Nor would the compatability of specific python libraries.
But if we're talking about compatability, windows is the largest desktop computer operating system (77%). So if libraries aren't considering windows dev environments, I believe that's a failure of those libraries.
Windows popularity has nothing to do with quality nor convenience for development. Any serious non-windows specific development constantly requires adjusting environment to make it closer to unix-like one. Even microsoft realized this and added WSL. So, unless there are very strong reasons to use windows, using unix-like system is just plain more convenient. And a pleasant bonus for Linux users - very simple and convenient maintenance and upgrade of system and all applications.
Honestly, for me, Windows updates (I've had to nuke my two Windows PCs about 3 times each because of updates), having to juggle with WSL to get many things done and not being able to just install all the things in CMD are enough for me to not want to go anywhere until Windows, until I'm playing Steam games. Another thing that messes with me in Windows is that my Asus ZenBook is crippled in Windows due to the Specter/Meltdown fix.
I can't understand why people flock to Macs, but Linux/Mac are better for most people, since most programming happens for Linus/Unix platforms. I use Linux because I can just use it! I can do just about everything from the terminal (outside of the actual coding; I'm a VIM noob, for sure), but I guess it also offers me some consistency between my desktop and laptop, since I use a Pixelbook for my laptop.
Depends on context. In the earlier days of nodeJS based web development, Windows was a total nightmare to work on. It was working around those problems that got me into Linux. I suspect it's why a lot of frontend web devs started using Macs; but I never understood the appeal.
Git ain't GitHub.
That's a fact that I usually overlook. In terms of my experience it is, but then, to many other people Samsung IS Android, so... I'm definitely going to be more careful about this, from now on! I never even thought to check, before now, if other VCSs were supported by GitHub!
I don't know what extra support you get with github on windows, the underlying core of github, gitlab and similar services is the git version control system, which was initially created to help multiple developers contribute to Linux.
Some to think of it, I've had a WAAAY easier time with git on Linux! And C++...
I never understood why software developers ever might need windows unless they develop windows apps.
I never understood why software developers ever might need mac unless they develop macos apps.
This case is quite simple: mac is best choice for those who want development convenience of Linux, but afraid that Linux UI is too complex for them :)
P.S. Mac is not ideal for development, but much more convenient than windows.
The Linux UI (I assume you meant the GUI, not the command line) really feels antiquated and even ugly and it's kind of a pain to look at (I'm typing this on a Linux laptop). If I'm going to stare at something all day, I like it to be somewhat pleasant-looking. Still much better than when I started using Linux in 1995, though. :)
I find that some development can be more difficult on the Mac than on Linux for some things because installation is sometimes hacky, like a user-contributed version that's not officially supported. I've had this happen a couple of times in recent months. In one instance I had to give up because I was wasting too much time trying to work around the problems.
I use Mac, Linux and Windows every day, so I find it hard these days to get into a religious war about platforms. Ultimately the choice should be whatever one is most comfortable with.
Not sure about that, I'm using debian buster and with few tweaks it looks really nice.
Also there are distros like PopOS, Manjaro and others who look awesome.
Well, that's the thing with Linux: so many distros. I wish I had time to mess around installing distros all day, but I don't. And you never know if your favourite distro won't just disappear (as in no further updates to whatever niceties it might bring) unless it's one of the big-ish ones.
I'm using Linux Mint at the moment. (Well, not this VERY moment - right now I'm using a Windows 10 VM hosted on Azure).
Well that's the thing with cars: so many makes. I wish I had time to try out makes and models all month, but I don't. And you never know if your favourite make won't go bankrupt. That's why I don't own a car. Oh wait...
There are so many thing Linux can be accused of. But having a choice is just not one of them.
Crappy analogy, and you completely missed my point. sigh
I think Pantheon UI is quite polished (Elementary OS), but still, it is more geared towards keyboard users; but then who the hell need Desktop Environment anyways. CLI these days is quite powerful enough.
I've heard of that one but didn't get a chance to check it out.
It is certainly interesting that, even though GUIs are more powerful and flexible than ever, there's been a move toward the command line for a lot of development-related tasks. "ugh... Don't feel like finding it in the GUI, I'll just type the command". Even when developing .NET Core stuff in Visual Studio, I'll often type commands to get some things done.
Anyway, I use all three platforms and have likes and dislikes for each one of them.
The Linux GUI is ugly and antiquated -- what? Aside from the fact that there isn't a single Linux desktop environment, I'm using Fedora with the default, most popular DE, GNOME, and it looks perfectly modern to me. It has all the modern visual design elements that Windows and MacOS have and does all the fancy window docking tricks (in fact, some Linux DEs have supported that far longer). And it's very easily customized with themes and icon packs, frankly much more easily than Windows. Ubuntu, the other big distro, uses a customized DE that I believe is based on GNOME as well. But if GNOME isn't to your tastes, they have direct support for another half dozen DEs out of the box as "flavors" of Ubuntu, several of which as also quite modern.
Used Ubuntu but found it "heavy" and switched to Kali it's been 3yrs now .
I haven't tried Kali. I'm using Fedora mostly because all the systems I use professionally are Red Hat, and I often find myself needing to test something at home and/or advise the IT folks about how to install or configure something.
I thought Kali was mostly only used for security testing or similar gray-hat work. I didn't know many people used it as a daily driver.
Linux GUI, antiquated? Are you still on GNOME2, KDE4, LXDE or some niche text mode tiling GUI? I mean even XFCE becomes modern with a dock and a theme. Throw in a global menu and it's perfect Mac refugee territory.
I never understood why software developers ever might need to choose a Linux distro based on the look and feel when they can install basically what they want in any distro.
Just kidding :D
Windows with WSL is actually very viable for many kinds of software dev, and I use it happily for C and Go systems programming, and web development. That being said, the native Python toolkit for windows is... not great. It's burned me enough times that I flat out refuse to touch Python for Windows ever again, I'll just run it in my Linux vm tyvm
WSL is a nice step forward, but is still lacking. They only recently announced planned support for Linux GUI-based apps. NVIDIA doesn't allow virtualization on consumer graphics cards (i.e. GTX/RTX series), so that's a barrier to a lot of things.
When I can basically have Windows on a Linux kernel (or dual kernels, however that would work), I'll be happy with Windows for development. It's a perfectly nice user environment, and I use it on my HTPC/Gaming rig, but it's often a hassle for getting real work done.
Side note, always go Anaconda for Python. Solves a lot of problems up front, even on Windows. Also try the PyCharm IDE from JetBrains. I also hear the Python plugin for VS Code is good, and it has support from Anaconda now.
WSL would be the only reason I would be ok with 'developing on Windows'. I haven't touched this in a while, but my experiences were
With WSL I would basically build a Linux environment with Windows GUI. Since I am perfectly fine with the Gnome3 in Ubuntu, I have next to no reason to switch back.
For me Windows is a nice gaming platform.
The only way I'll use Git on Windows is Git Bash. I hear some of the GUIs are nice, though, like SourceTree, SmartGit, and GitKraken. It sounds like maybe you got to experience TortoiseGit, which I hate. Tortoise was usable for the old CVS style VCSs, but it's too clunky for a modern one.
I think it was tortoise. But that is not really the point. I would have to install Git Bash, whereas on Linux I already have a bash (zsh, fsh, etc.)
I suppose windows is the best when developing Desktop apps for Windows. For Web, mobile devices etc. I prefer to chose a *nix system.
Currently I am working on a Mac (and not really loving it).
Git Bash is part of the regular Git install. It's basically the equivalent of installing Git on a Linux system that doesn't have it. And often to get zsh or fish, you'd have to install those, so it's pretty similar. It's based on MinTTY, and is actually pretty good. It requires some configuration, but I have to do that for every *nix shell I touch, too.
I don't disagree. I'll take Linux all day every day for development over Windows. And it's telling that the best way to do a lot of development on Windows is to steal good ideas from *nix. I'm just saying it's not all bad.
I'm someone who slaps Linux on any PC that I want to development on. I have developed a bit on Windows and while its totally workable, and makes sense for some context, Windows just gets in the way in others.
From dumb stuff like the 260 character limit (which was finally removed), and the speed and "unique-ness" of its terminal powershell, to more serious problems like tooling not working or compatible with Windows out of the box such as Docker Desktop, which doesn't work on all versions of Windows.
The last thing I want when I'm trying to be productive on a project is the operating system telling me what I can and can't do, or finding something doesn't work out of the box simply because it wasn't built with Windows in mind.
PS. I don't use a mac because I'm too cheap to pay for their premium products when Linux is free.
We're a place where coders share, stay up-to-date and grow their careers.