There are also whole industries where Windows has a particularly strong influence, e.g. (from experience) some parts of finance, petroleum, television, and I imagine things like render farms or other specialist graphics work that might have grown out of a once Windows-only desktop software cottage industry.
I guess it's also important to say, much as you might find a zealous love for UNIX inside many (computer) engineering-led organizations, similar loyalty to Windows exists in many more (locally under-represented) industries for reasons that are less likely to be understood around here.
On the side of deploying and managing workstations, I would take Windows every single time over MacOS or Linux. For real, some combination of Apple Business Manager and JAMF is supposed to go head-to-head against AD+GPO? On Linux--Centrify, or something from Red Hat, that might well be more costly than Windows licenses (guessing here)?
Much render farm/graphics work was once Mac territory but given Apple's ridiculous pricing and lack of server options besides stacked Mac Minis or support for NVidia stuff many have shifted away. Truly sad...
Currently, a WPF developer, since that was the technology chosen by the previous developer, and cannot stand working with Windows 10. People praise Visual Studios but under heavy development, crash often. It is not designed for coding/typing. Visual Studio Code is better at that and has only been around a short amount of time.
.NET / C# is useful but frameworks like Entity are layered bloat where standard SQL is so much faster and cleaner to utilize. Moving from Entity to standard SQL reduced start-up time by 10 seconds in one application. All the benefits the Entity has is only if the provider for your DB back-end has those ability coded with-in it.
I actually miss being an embedded and full-stack developer writing C, C++, go, typescript, JavaScript ... Even writing cross-platform QT5 applications in Linux and only using Mac or Windows to build and package the binaries is more pleasant.
A big part is that Linux / BSD is focused around development where Windows is a second had citizen. From the register which prevents simple backing up and restoring configuration settings fro application settings versus a config.ini file or such, which can be stored in git. Or the directory System32 = 64 bit DLLs versus SysWow64 = 32 bit DLLs. Inability to use very useful commands such as rsync and lsof or even piping through SSH. Or forced to keep useless applications around/running/installed such as XBOX or Cortana.
Example: `echo -e "#include <stdio.h>\nint main() { printf(\"Hello, world\"); return 0;}" > hello.c && gcc hello.c && ./a.out`
Even the desktop environment in Windows lacks usefulness and takes more steps then ones in Linux. Windows keeps on adding bloat to each new version. Why do I need to have the ability to run 16bit applications around if I'm never going to run 16bit applications?
These are some of the reasons I only deploy Linux VMs on Azure. Lean and only retains what you need with simple backup means and deployment.
At least with wsl2 I get the Linux goodness and decent docker support finally, hopefully it can roll out of insiders in into GA soon so everyone can get their hands on it.
Eh... outside of the broadcast motion graphics group, small personal/business farms, or educational institutions this is largely a majority Linux area.*
*I'm speaking from the perspective of public cloud farms and the feature film industry (for VFX and Anim). You can't escape Windows for select software and plugins, but if it's not a strict requirement by the software, then it's a business choice for other reasons (i.e. existing environment, staff, etc) because you will from a technical standpoint operate at a loss using Windows.
It's a bunch of actual people designing buildings that cost so much more than a Windows license doing Real Things that have some lingua franca interface that has no reason to go Linux and probably never will, because in that business they're too busy with actual priorities to ever even discuss how the status quo could change. There are 10,000 industries like this, and probably 10,000 people to each of those who simply don't care, because to them the computer is and will remain only a tool. That's the world of Windows we can't see.
Once you get beyond small teams doing the work, this starts to play in massively. Pretty much all medium+ sized studios have their artist pipeline on Linux, reserving Windows or macOS for tools like Adobe, ZBrush or Marvelous Designer that don't have a Linux build yet. And where I'm at, the operating system itself doesn't even matter to the artists. All they need to know is "this button opens terminal, this command puts me in the right show, this command launches the hub" and from there they're in our GUI pipeline. Their environment is the DCC, not the OS. For all intents and purposes it's completely abstracted away from them.
That's not to say there aren't those that take advantage, creating custom commands and utilities to share with others. But for the most part the fact that it's not Windows or macOS doesn't bother them.
Most of what I've written in the past 5+ years either targets or runs in linux/docker. It's been a challenge pulling the teams up to spead.
I still get the occasional question when something breaks. That said, it would be nice if more understood some of the underlying stuff... I've had to champion a lot of the changes myself.
I have IT experience in the "mom and pop" small-medium business world but am pretty Linux illiterate.
I can buy a copy of Windows Server 2019, install the ActiveDirectory role, create a domain, and domain-join every computer that business has, and start doing all kinds of simple-but-effective policies like folder redirection+shadow copies, define password policies, start checking various compliance boxes, formalize a file share permission structure, enable Bitlocker, etc etc etc. Also, apps for nearly any business exist on Windows.
Do Linux equivalents for any of this even exist? If they do, is there a large pool of competent admins you can hire for cheap in every non-megacity?
The shift currently is from physical servers being owned by SMB to _the same architecture_ in the cloud. As the cloud admin market saturates, you'll see the % of Linux machines in the cloud drop and drop as SMB migrates their familiar setup to the commoditized cloud market.
The bottom line is your average non-Silicon Valley user can't smoothly change between Outlook 2010 and Outlook 2013. If you think a switch to Linux is possible in any timeframe less than decades, you are out of touch with the common computer user and their business needs.
EDIT: i use SMB as an abbreviation for small-medium business https://en.wikipedia.org/wiki/Small_and_medium-sized_enterpr...
https://en.wikipedia.org/wiki/Distributed_Computing_Environm...
Interestingly, SMB is about to switch to Google's QUIC UDP, which is a great improvement.
Windows can also manage linux authentication, but likewise is missing parts for advanced usage.
while this is probably true, it entirely misses the point.
it's only true because a very, very small number of megacompanies consume huge amounts of servers; a more accurate number for this discussion would be server per company. Nearly every business larger than a few people has a need for a windows server (for basic filesharing and Domain authentication, not databases or custom apps) and a windows app for their business that can be filled nearly off-the-shelf.
the cost-benefit of trying to start a linux setup is not even close to worth it.
SMEs tend to buy cheap laptops, that come with "free" Windows Home. (I don't that that version can even be added to a domain) Then they start expanding and just stick with "what works", until it doesn't.
But I see this dropping drastically in the next decade, as PC replacements(read even cheaper Chromebooks and tablets) take more hold and web takes over even spreadsheets.
are you referring to azure AD? thats basically what i said originally - on-prem deployments are being replaced by cloud infrastructure. the point is that its a windows architecture, which is what the person i was replying to didnt understand/know.
But it should be cheaper when it comes to refresh time (for your on-prem AD), unless you have to pony up for Enterprise (for compliance and enhanced MFA, which is more like 40 dollars per month), or if you have software which relies on on-prem AD. And Intune manages Windows systems using a combination of MDM profiles and GPO (https://docs.microsoft.com/en-us/mem/intune/configuration/ad...).
I understood you:
The cheapest Enterprise Mobility + Security license is ~$105 per year.
A Windows user CAL is ~$10 per year. To be on-prem requires a physical server; if a $10k server lasts 6 years, thats ~$1700 a year to do more than AD but let's assume 100% of costs are for AD. Also, the Windows Server license (depending on purchase method) is ~$100 per year.
Up until 18 users, the server investment is more expensive. [18 * 10] + 100 + 1700 = 1980 versus [18 * 105] = 1890. At everything above 19 users, EMS is more expensive, 1990 vs 1995. Note that this comparison is very slanted in favor of EMS licenses. A $10k server is more expensive than most small business have and 100% of the cost isn't actually for hosting AD (domain controllers are generally lightweight and non-resource intensive). In reality, it becomes cheaper at something closer to 8 users, which covers most small businesses that are more than just a personal laptop and a point-of-sale terminal/CC machine.
If anyone is looking for something to open source: Meet manager. Since the 90s it has been the go-to software for running competative swimming meets (timing, heats organization etc). It's a niche market but is alway a very broad and steady user base. (Similar software is also used for track and field meets.)
http://activesupport.force.com/hytekswimming/articles/en_US/...
https://arstechnica.com/gadgets/2018/11/microsoft-wants-azur...
https://github.com/dotnet/orleans
Orleans can run on .NET Core now, but I don't believe .NET Core existed when those backends were first created. So they would've been running under the full .NET Framework on Windows.
I switched to Linux, and most importantly open source technology - in order to get out of the Windows ecosystem. I switched from an ASP stack to Node.JS, but it feels Microsoft is still stalking me, buying NPM, Github, releasing their own JavaScript flavor, releasing their own "open source" software bundled with proprietary add-ons, meanwhile suing Linux users for patent breach.
ASP.NET MVC C# with EF has got to be one of the most solid web frameworks I've ever used. Open-source fanatics refuse to listen about why it's great... even though it's open source now.
I think EF might get a bad rap because it's pretty closely tied to MS SQL Server - and if you don't know exactly what you're doing it will write some pretty hideous queries for you.
edit: by no abstraction, we have like 4 db methods that have a different generic type interface, but that's it across hundreds of different SP calls at the API later.
Once you add Windows to any implementation a few things happen. You pay more for licensing, you pay a lot more for resources (you can do a lot with 128MB/0.25 vCPU VM with Linux), and it is a much slower for VMs to scale in and out for elastic workloads like bringing instances up and down based on queue length.
On Linux l, I never had a problem with ssh unless I made a mistake in network configuration and doesn't suddenly block my access like that.
Windows also takes larger amount of resources compared to Linux and running a 1GB memory instance meant it could run out of memory anytime freezing the whole experience without doing much of anything on it. Not sure why 1GB instance even exists as it's quite useless.
I feel like I'm doing a job inside ssh session but feels I'm being dragged down with mouse click achieving very little per second. On Linux, automation can be done anyway you like but on Windows, that's just not the way it's meant to be with random GUI apps. No idea how to back up configs of those or invoke actions programmatically.
And you have to pay for the license.
Windows is a consumer OS by design.
But the barrier to entry seemed so high at the time - you needed MSDN subscriptions, paid IDEs, and paid servers. All out of my reach as a self taught junior developer.
I don't know how or where everyone learnt it all, except as graduate developers at BigCorp?
Moving to Linux was a new world opening, that I had only seen glimpses of before. Using apt-get to install an app was mind blowing. Getting used to the command line took a while, but now I do everything from the terminal, except some GUI apps and the browser. Still have to look up most commands and read man pages though.
Much the same way as Windows users probably are not big objective C developers...
It just felt like for a server language like .NET that your personal laptop shouldn't really matter much.
And even if you're buys a laptop, then you must pay extra for the "pro" version of Windows to actually install IIS. (Last time I tried installing IIS on Win7Home - it just told me that my OS wasn't supported)
Anyone running a copy of Windows could run a free copy of SQL Server (Express) and SQL Server Studio, IIS Express and the .NET Framework using VS Community to build MVC apps. You would use the Web Platform Installer for just about any of those things.
Between https://dotnet.microsoft.com/apps/aspnet (previously https://asp.net) and https://www.microsoft.com/web/downloads/platform.aspx it's generally very easy to dip your feet in the waters.
(All that being said, I'm now in the NodeJS ecosystem. It's... interesting!)
- Visual Studio Community Edition is full featured and free
- SQL Server Express is free
- You really don't need IIS but it is free. With C# you can run on top of Kestral.
There were free editions but they were crippled versions of the paid ones with no extensions, etc. The free versions were generally unloved and had annoying quirks.
At the time you needed to add a Resharper license in there too to be decently productive which was yet another overhead.
However, VS Express itself took a while to appear. Back when .NET first appeared, the only thing that was free was the .NET Framework itself (including command line compilers), and online MSDN documentation. Eventually, we got SharpDevelop.
But, well, there's free, and then there's free. In my home country, you could buy a bundle of CDs with complete VS 2002 + MSDN distribution on the black market for around $20. Which was still expensive for students, mind you - so the same bundle was then shared around the class (including the teachers, who only had an older bundle of VS6).
It wasn’t until 2014 when MS started releasing the non crippled version.
But consider yourself lucky. Do you know how hard it was for middle schooler to get a good 65C02 assembler in the 80s like I had to?
It looks like they design for developers with gaming rigs and ten finger chords, I even start enjoying using Eclipse again after spending a couple of months on a Java assignment with InteliJ.
Then my .NET team wonders why I never complain about VS speed and crashes, easy, I am the only one not using Resharper.
Even reading the docs seemed to need a login and paid subscription.
I think VS Community started in 2015... there was also a SharpDevelop and MonoDevelop option in between, from pretty early on. I used SharpDevelop on my own projects for a number of years. Around 2011 I started using Node more and have been back and forth on projects since.
Microsoft certainly don't sue as much as they used, but that's because they are no longer developing as much groundbreaking tech. And when they do develop something, everyone avoids touching it with ten-foot pole (see also: "success" of UEFI on ARM devices).
https://cloudblogs.microsoft.com/opensource/2019/08/28/exfat...
I won't argue how groundbreaking their technology is of late, but in all fairness they have been much more open with their code.
Aside from breaking stuff all the time, Ubuntu seems to have wide swings in the quality of documentation.
Btw - "more powerful" is literally the ultimate subjective statement.
This is especially applicable if you learn a bunch of generic “everything is a text file” hacker skills, maybe with a little code on top.
Could you manage the crematorium using YAML files edited in GitHub? Maybe. Any collaborative tool with tagging can usually be beaten hard enough with a hammer to turn it into something useful in a specific domain.
We make pens and paper and do all sorts of specific business with these generic tools. Encouraging the generic use of computers might seem like dragging us back to the 1980s, but it’s how these tools were meant to be used!
This is similar to the fact that basic knowledge of file systems and file formats is lacking in many modern teenagers, because this is all abstracted away by smartphone apps and cloud storage.
As a tech guy, I'd love to run the crematorium using YAML files in GitHub, but the reality is that the target audience for the system is Funeral Directors and Cremation Assistants, so it needs to be a non-technical user interface.
Most mind-blowing use case of a Windows server I've encountered was a server running nothing but nginx.
On the bad side, I just couldn't be bothered to create a script that would do that automatically, which resulted in one or two downtimes when I accidentally just tested the changes instead of reloading nginx for them to take affect ("nginx -s reload"). Repeated boring work lead to more carelessness, which would absolutely not happen if it was on any Linux system. I'd create an Ansible script(s) instead and wouldn't have to log into the servers manually for that one frequent use case.
Anyway, we have Windows servers running in Azure because we do a lot of GPGPU work, and the NVIDIA/CUDA drivers work best in Windows.
- Microsoft often bundles discounts for their their desktop and server licenses (used for AD and such) with Azure credits. Managers are under pressure to use the free service to deliver value, so teams are told to spin up things in azure as they see fit. reject the credits and reject the discount for the stuff you do use.
- Office 365, Outlook, Xbox Live, Xbox Music and Video, the Microsoft website, MSN, Search, and Visual Studio Online all run in Azure either in whole or in part. If you think Microsoft doesnt dog-food their cloud to pump its numbers, you probably werent around when they bought out shared hosting providers "park website" clusters and converted them to IIS instances to inflate their Netcraft numbers against Apache.
The medium-sized enterprises (100MM$ to 500MM$ annual revenue) are the ones who aren't looking at Linux. These are the ones with in-house tech support, who only know Windows. Maybe they are the average customers that won't switch over?
Note that I'm only talking about cloud-hosted SQL Server installations. When you're buying the whole infrastructure stack, it's a different story. Also, this isn't the area I specialize in, so this is just a narrow observation, not a broad pattern.
https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-...
You can find most of the material we reviewed in the official MS documentation:
https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-...
For example, here's the note about deprecating database mirroring:
https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-...
> Database mirroring, which was deprecated in SQL Server 2012, is not available on the Linux version of SQL Server nor will it be added. Customers still using database mirroring should start planning to migrate to availability groups, which is the replacement for database mirroring.
Database mirroring has been deprecated for several years. The replacement is Always On Availability Groups, which is vaguely supported on Linux.
It’s not just for enterprises!
For anything less, I reach for Node first, only because I can get something done faster.
https://www.microsoft.com/en-us/sql-server/sql-server-downlo...
No need for emulation.
Big chains probably have these things integrated in their ERP and CRM or use a custom software solution. But for smaller chains in their respective industries I don't see how you move these programs in the cloud right now without a complete rewrite.
To me that just seems weird... even though it's their product.
However, my experience in those kind of niches, is that the client will likely be very non-technical, and will prefer to use what everyone else is using, even if it's vastly overpriced and locks their processes in place.
Many internal apps likely don't need to target windows, but may have windows-isms baked in for a number of historical reasons. There are also a lot of .Net apps tethered to windows more out of heritage, most are easy enough to port, others much harder, it varies and there's a lot of apps unlikely to receive the effort to even explore the feasibility of migration to either mono or dotnet-core.
I'll bet that there's a huge number of virtual desktop machines. Instead of having to push a really fat windows disk image with all the apps installed, to all workstations, those workstations run remote desktop, and connect to a windows VM running in Azure.
> Crematorium Management System
Genuine question: why can't you use Microsoft Access or G Suite for this? Seems like the canonical data entry use case these products are designed for.
For example, the managed Postgres service runs on Windows which I didn't expect.
Willing to bet it's SQL Server and Azure AD
It was October so he was doing a checkup before firing them up. I went in for some PR chit-chat. Unfortunately he took it as a genuine occasion for conversation (genuinely lovely guy, genuinely liked him, genuinely liked the conversations, but... well...)
“Yeah yeah, you guys are great, calling me in to do preventative maintenance before firing ‘em up.” “Yeah, it’s protocol, I guess.” “Yeah yeah, but not everybody follow protocol y’know...” “Really?” “Yeah yeah, no... just came over from the crematorium.. they had a fat client inside and the burner conked out and we had to pull ‘em out half-done and let the chamber cool off so I could service the damned thing.” “...” “Yeah yeah, real bitch of a mornin’. Family there and everything. Waiting for the ashes, y’know?” “That must’ve been awkward.”“Yeah yeah, no no, they understood... you only do these things once, y’know... yeah yeah... bitch of a mornin’.”“Well I guess I’ll leave you to it then.” “Yeah yeah see you around."
I can't think it'd be anything other than 'big enterprise' applications, where there seems to be a lot of bespoke stuff built specifically for Windows Server (e.g. finance software, healthcare systems, marriage registration, taxi licensing, nursing home management, etc).
Unfortunately this sort of stuff is fairly rare to be available in the open-source world, because there is such little demand for it by individuals.
The wackiest one I've come across is a CMS (Crematorium Management System). If anyone wants to create an open-source one with me, please get in touch...!