In the ensuing decades:
- VMs for development have become more popular. You can run Windows but then easily develop on Linux using VirtualBox. Virtualization is very popular now when compared to the late 1990s/early 2000s. You also have WSL and WSL2 and cygwin
- Windows sadly is no longer the development platform of choice. Production runs mainly on Linux. Since deployment is on Linux, its a good idea that development happens on Linux to iron out any subtle platform issues and also get good support for native extensions in languages like Ruby, Python, PHP etc. Some server software/middleware (message brokers, databases, caches etc.) have much better support on Linux. This necessitates again using Linux rather than Windows for local development
- Due to the rise of mobile and web applications, the dominance of the Windows desktop platform has decreased. Not supporting Windows at one time used to be unthinkable but no longer
- The Windows platform in the late 1990s was arguably technically superior and robust when compared to its competitors. Now Linux and MacOS are robust and very capable as well
- MacOS has risen to become important amongst developers
- Docker runs on Linux
All these factors have led to Windows not being a first class citizen for many open source projects.
> If PHP never ran on windows it would never have ever gain its popularity, it doesn't matter if it's then deployed on Linux servers.
This is a historical fact. The situation in 2021 is different. If a new language is trying to break onto the scene today it must support Linux first. MacOS support often comes "for free" because of its BSD heritage. Windows is quite different internally and due to the reasons above, often lags behind in first class support for many open source packages. Platform support at the end of the day is a "network effect" and the network is with Linux/Unix currently.
In order to optimize adoption, a tool should aim for the platforms that potential new users _actually use_, not the ones that they _should_ use.
As of 2021, 45% of Stack Overflow survey responders use Windows [0], while 25% each use Linux and MacOS.
And I am going to advance the hypothesis that the subgroup of SO survey responders actually skews more towards Linux, based on the fact that the sub-subgroup of professional developers were more likely to use Linux. I expect that the much larger set of developers who don't take SO surveys are less likely to be professionals and therefore less likely to use Linux.
Windows is not quite as dominant as it used to be, but poor Windows support will still cut down your growth potential by half (and, if my hypothesis is correct, likely more).
[0] https://insights.stackoverflow.com/survey/2021#most-popular-...
Not finding settings for any of these is what drove me away from GNOME. But i'm always tempted to come back, because GNOME is otherwise very consistent and pleasant. I like that there's utilities i can place in inexperienced hands, for example GNOME Disks to create bootable USBs. But for those non-tech users of GNOME i know, lack of systray and 1D window list are the most painful points.
[0] How are we supposed to teach users to run apps/scripts? I remember long time ago on Ubuntu there was "Open", "Execute" and "Execute in terminal" actions. Nowadays a lot of non-tech people i meet learn to use a terminal just to start Tor Browser, which is not ideal. Is there a simple package i can install to setup such actions?
[1] That alt-tab doesn't consistently take me to the previous window i was on, i find heavily confusing. When i'm switching between browser or terminal windows, GNOME's Alt-Tab takes me a considerable time to reach my previous window because i need to expand the program's group before i can switch. Otherwise, alt-tab takes me to another window that's not the previous window i was on. Can this be configured back to "normal" now?
I'd admit that my windows explorer is tweaked a bit (like using the oldnewexplorer tool) though.
If anything, WSL is making Linux more irrelevant as a development environment, and Windows 11 is going to take this to the next level (take a look at Hanselman's demo video [1]).
Yes, production runs in majority on Linux but development happens massively on Windows. With macOS a distant second and Linux barely used as desktops.
That said, it's still a VM and Windows is still a PITA to deal with. Just today I wanted install a script as a Windows service. Windows won't do it. You have to Google for 20 minutes, then download some .exe and use that as a wrapper. The simplest things are difficult or impossible, and I don't think shoving your life into a VM is going to solve all that.
I think even a big chunk of Windows users would agree with that too.
However, the point is, it's still massively, unbelievably popular and not supporting Windows is like having a web app that doesn't run on Safari (which IMHO also suck from a developers perspective, pretty okay when just using).
You can get away with it, yes, but your audience will be (depending on context) unnecessarily limited.
They also realized that the crowd that buys Macs to do UNIX development doesn't care about Linux, they only want a POSIX like environment.
And since GNU/Linux has eroded the other UNIXes, the Linux kernel ABI has become more relevant than POSIX, that is all.
And if you're using WSL you are using Linux effectively. Windows is just that UI around you. Microsoft makes some good products/services and I think they have shifted in strategy. They are not so interested in what _specific_ APIs/OS you use (Win32 or Linux ...) as long as you do it "inside" Windows on the Desktop or on Azure in the Cloud. It clear that the Linux platform is dominating because Linux is everywhere from servers to mobiles.
One of the parent comments was complaining about lack of good _native_ windows support in Crystal. I've responded to why it may not be critical to have good _native_ windows support anymore above in detail...
Many people also don't use WSL. Many don't even have the basic nix tools on their path.
You may say that they aren't your target audience, but many new technologies weren't popular until they made them their target audience.
Linux on the desktop has always been a joke, but it's even more irrelevant now. You run Windows as your main development OS and when you're ready to deploy your app to Linux, you launch WSL or run a CI/CD pipeline.
But there is now zero reason to ever run Linux as the main OS on your desktop.
s/Linux/Windows/ /s
More seriously, i don't understand your point. Just because you're happy with Microsoft's practices doesn't mean free distros are all "a joke" or "irrelevant". Many people use GNU/Linux as a daily driver and we're more than satisfied.
Personal opinion: i just don't understand the appeal for Windows. MacOS at least has some design/UX guidelines which you can like or dislike but they're consistent about... Windows has just so many anti-patterns i don't have enough fingers to count. The only times i ever needed windows was because of phone-related crapware, and even then Wine was more than enough. Why would i need Windows at all?
Even for established products, so many enterprises have mixed Linux/Windows that supporting Windows as a first class citizen can get you in the door there in a lot of places.
If you don't have an easy frictionless story on Windows you're still missing out in 2021, and because so many people think that Windows isn't relevant its a real easy way to capture a market segment. Neglecting windows is leaving money/mindshare on the table.
I do.
I'm not intelligent (or silly) enough to create my own platform/language but if I were, windows compatibility would have been on the top of my list, second would be making JS developers feel at home (read: C syntax); or Python, if I'm being adventurous.
I have a very hard time reading JS, the single symbol blocks just all bleed together for me visually when dealing with nested blocks.
Though I manage my own cent VM, I'm really satisfied with my Windows environment, I can code in so many Languages and do so many things swiftly and easily on my delicately tinkered OS, why would I give it up to just code Crystal?
There's WSL and cloud servers are so cheap I don't see a reason to complain it doesn't work easy on Windows.
I believe it was Haskell I tried on Linux. After multiple compile errors caused by missing libraries and conflicting versions I just gave up. And this is not the only time this happened to me. Even with old languages like C this happened to me in the past.
This is a real problem for beginners because you just don't know all ins and outs of the ecosystem.
Just so people know -- go the stack route of building your haskell apps.
With Go? just download the Go compiler, nothing else, Crystal isn't first class on windows.
That's why. A lot of people here don't understand that a good chunk of developers (and students) still use Windows, without any linux subsystem or VM.
PHP became popular because of easyPHP on Windows. If PHP never ran on windows it would never have ever gain its popularity, it doesn't matter if it's then deployed on Linux servers.