> Because even though the world of non-programmers uses Windows, the world of programmers decidedly do not use Windows. I think if you were to analyze what people use in the vast world of startups, corporations, open source projects, and other places you'd find it's inverted with 95% of programmers not using Windows.
My personal observation is quite different - this is clearly written by someone who lives in his bubble.
Most obviously: most corporations do use Windows. Also for technology startups outside of the "web application operator" type (here it depends a lot on the local culture), many use Windows: often because this is what the customers use, and the software/service of the startup has to be compatible with the ecosystem of the customer.
I work for a mid-size publicly-traded software company that makes software development tools.
There's a clear dichotomy internally in choice of operating system. Corporate, project managers, and people managers use Windows. Developers and technical people use Linux (and we used to support Mac OS but that was recently dropped). Recently Corporate IT decided to move on-prem services to a Microsoft-hosted SaaS cloud, which caused some pain for the majority of employees but there was some kind of kickback or discount and some line in a spreadsheet was tortured to reveal the right numbers, so the deed was done.
Of our customers, about one third run our product on Microsoft Windows and two thirds on Linux. We certify both but only Linux gets dogfooded and support for Windows customers tends to be higher. The only people who ran our product on Mac OS when it was available were students and hobbyists and small startups whose license fees wouldn't keep our office lights on long enough to walk to the coffee machine.
I second that. In most large orgs I worked, non-tech people used Windows, but macOS wasn't uncommon. But as for developers, we often had a choice. Many people would just take macOS or Linux, but I know some developers who would use Windows because they somehow learned how to deal with its quirks.
Having audited quite a few mega-corps, and seeing their CMDBs in detail, "the amount of RHELs is too damn high" to use the meme. I can't speak to percentages as I didn't keep specific track of those numbers, but from memory/impressions, the RHELs were at least 30%-40%.
As a developer in a corporation, yes, the software I develop runs on Linux servers. But we don't develop in the server - my work computer is a "desktop with packaged software" and as such runs Windows.
>the world of programmers decidedly do not use Windows
Who do you think writes all the Windows software? There are hordes and hordes of people writing code on Windows for Windows all their lives. Server/web software aside, there are huge layers of windows-only software.
This is a ridiculous article because the author did not even bother to check the stackoverflow developer survey. Majority of developers use Windows. I use Linux, but just because I use Linux does not mean that I have to be delusional about it. Programming != {webdev,AI}. What operating system game developers are going to use? What operating system business GUI application developers are going to use? Win32 is still the most stable API out there.
And even if you, for some insane reason, decide to pick Linux and fight its technological challenges, in the end only a tiny percent of users is going to use your product. Yet they will be responsible for generating over 50% of the bug reports. To make matters even worse, most of them will come from Arch Linux users, providing absolutely useless debug traces because they use a distro notorious for not shipping the debug packages.
Majority of developers who use StackOverflow enough to fill out the survey, thats a bias already, and a massive one at that.
You have disproportionately more beginners using it than more seasoned professionals. Hell, I barely use it, and I have questions every day - I just look up the documentation instead.
This is like saying most people love overpriced dropshipping, just because an advertisement company tracks how many of the people who click on ads buy dropshipped garbage. Its a massive bias.
There's an even bigger hole in it than that: his list of languages completely overlooks Java. The language that prides itself on portability, has been taught in universities for decades, is widely used in industry and which every component needed including the compilers and runtimes can be fully installed and updated on any machine, graphically, just by installing the free version of IntelliJ, which conveniently works the same way on every OS. It meets almost every one of his requirements.
Agree, most of the ABAP developers at SAP or in the partner/SAP consulting companies do use windows, as the SAP GUI (business GUI app) runs the best on windows, the Unix-like version written in Java miss some critical features that makes it unusable for engineers.
The bubble is quite big though. Companies like Google, Amazon, Facebook typically offer developers laptops with a choice of Linux / Mac (but not Windows).
Windows for development is really a common choice if you make video games, hospital, school software or desktop stuff. But even there there are exceptions. It's unfortunately a common choice in some, esp. American companies where the product is intended for Linux, but they would still hand out Windows laptops to the employees because of their bad / backwards IT that only knows ("knows" is an exaggeration here...) how to work with Windows. So, it often comes to that an employee gets this decrepit system, but then works on Linux anyways, but the experience is worse because they need to jump through some hoops to get to the system they actually work with.
Anyways, any claims about what "most corporations" do smells like LinkedIn posts promoting a technology, where the claims are usually made w/o any research but also any way to disprove the claim. Just don't go there.
Google does offer Windows laptops, including to engineers. I had one for a while. It made a perfectly adequate thin client to my Linux workstation and made debugging in Windows browsers significantly easier.
In my experience the entire point of windows is to lock everyone involved, including developers, into an emaciated and dependent toolset that they can't even explain to others when something doesn't go as they expect, and on which unexpected behavior could be because of clandestine updates that enforce the whims of one of the world's most user-hostile corporations
Lock-in isn't just a strategy or a quirk, it is Microsoft's business model in every context. From monopolist strongarm tactics to lobbying for kafkaesque international copyright laws they have drafted, the goal of Microsoft is to put every human being in their little tinpot dictatorship and prevent them from leaving
We should suffer no such tyrant to live, let alone cave to its demands
I think the OP means building apps native to that platform. If you're building web or Android apps, you're cross-compiling, in which case the OS doesn't matter.
I mean lots of people manage to get around what they want to various degrees. Your use case is in spite of their efforts and wishes, and I guarantee that were you to run into problems, vs people would do everything they could to try to steer you toward it rather than help in any other way (that's even been my experience working in general programming contexts with people in that ecosystem)
Your question is deliberately constructed to deflect any possible answer (s.a. to protect the OS you've installed).
Let me illustrate this by example: let's say you don't even power up your laptop -- it's hard to imagine that you are locked into something in this scenario. The lock-in will be ultimately contingent on what you do with the system, not on what you don't.
> Notepad++ This guy thinks his text editor is a political statement rather than just a damn text editor, which makes him hard to trust even if I agree with most of his views. I can't have some wannabe activist deciding to erase all my students' computers because they happen to live in the wrong state or country.
Has notepad++ erased someone’s computer before? I did some quick googling and didn’t find much.
It seems really weird to bring this up if there hasn’t actually been any problems. Especially given the line that follows:
> Each of these have caused me weeks, months, or years of support problems because of their stupid decisions.
The truth is, programming is an expression and often a very political one (see open source). I’m immediately suspicious of the motives of anyone who says project authors shouldn’t talk about their beliefs
1. An expected development of this sort of political message is blocking access to the tool's website to users from some countries, either by the website owners or by the relevant authorities.
No, in the software itself he put political messages. There was a bunch of anti-China ones (for Uyghurs, Taiwan, Hong Kong), for Snowden, and for support to Charlie Hebdo after the terror attack. In some cases it opened a new document with the message for example.
Why do you think the two are wholly separate? If software is just a job and not an art for you then I get wanting to keep “clean”. The software you build is 100% an expression of your beliefs.
I would never build software for a defense contractor, or any other myriad of nasty things engineers are hired to do.
In a similar vane, if my work has given me a platform (ex: a popular open source project) then it would be a waste if I didn’t use that platform like Notepad++ is doing. (Though I’d probably restrict messages to the download page)
I think the FSF bent of open source is easier to identify as explicitly political because it tries to force developers to do something they may or may not want (disclose source code). There's some anti-corporate messaging there, because it's hard to make money from software if it's free[0], and that's a political view others may not share.
[0] I do know the suggestion to sell support for software rather than selling software itself but that's a political view as well, trying to persuade businesses to earn money one way rather than another.
I think the article is a little out of date. These days, learning programming on Windows is best done via VS Code (not Visual Studio) and optimally, though optionally, through devcontainers. Also WSL2 is very useful in running Linux on Windows with very little effort.
Unless you need a gui application, or DinD, in my experience. Yes windows has 'native' support for x11 apps but ime it's slow and the fonts are super messed up. Also configuring a volume/directory to be shared between wsl2 and windows itself is still more painful then I'd like.
Not out of date, the author is probably planning on teaching how to program Windows via WinAPI. WSL2 and VSCode will probably be outside the scope of discussion when it comes to coding Windows apps from scratch
That's a good reason to look at devcontainers. You would create a dockerfile configured to provide an out-of-box development environment with a fully configured build
What an odd take. Pretty sure most programmers actually do use Windows, you just don't see them all over social media telling everybody that they do (like some Linux users).
This is probably highly correlated to tech stack. A number of popular programming languages do not behave well on Windows and I make no editorialization about who is at fault there. Even if the language is ostensibly compatible, popular and/or crucial packages within its library ecosystem may not be. Elixir and Ruby are two from my personal experiences, though the latter is referring to c. 2005-2015 or so. Developing in a Unix-y environment is definitely the more well paved road in such cases. It varies between "less documented" to "doesn't work correctly at all" to "won't even compile". Social stigma is sometimes a factor too. Rails' early popularity (and Textmate) probably did as much to help sell MacBooks during a given era as Apple did.
Even though it has a more positive reputation for being cross-platform-capable, I will also observe that the Rust crates who strive to support Windows equitably seem to pull in quite a lot of platform specific code as conditional dependencies. Whether that is because of rampant Unix-isms or POSIX brain worms or whatever, I don't know, but it certainly seems to pose a maintenance/complexity burden that isn't there otherwise.
If so many developers manage to get stuff done on Windows, students can do it, too. This post feels like it's 10 years old, when there was no Visual Studio Code, Windows Terminal, or WSL.
I've taught coding to hundreds of beginning students, with about 50/50 Windows/Mac (some Linux). From my experience, Windows is not worse for beginners, nor is the setup process more laborious.
For example with Python, the author can standardize by having all students run the Anaconda Python installer alongside Visual Studio Code. This left us with virtually zero install/setup issues. Alternatively, using wsl2 you could set up any language very similarly to Mac/Linux.
In any regard, setup is typically a one-time cost. Once configured, students typically have no additional problems running code. That said, reducing getting-started friction is always welcome, and the author came up with a nice solution for personal computers. (Running `powershell -executionpolicy bypass` may not work on corporate laptops.)
Setup may be a one time sunk cost of opaque misery for you, but it's a lifetime of never getting any closer to truth understanding or enlightenment, upon a difficult opaque system that doesn't respect you & won't show you whats happening & has an array of barely supported weird add-on tools to accomplish the most basic software installs & setups.
It'll be a one time cost for your setup. Then a one time cost for the next setup as the student tries to do something else. Then another cost for the next effort. And the student will never gain any skill understanding or comprehension for any of these barely related steps.
Wsl2 is indeed savings Microsoft's bacon, by being some place where there are clear rules & patterns & behaviors, & where there's some kind of coherent underlying substrate. WSL2 is saving MS's ass. By not being Microsoft and by especially not being Windows. By being something social, with layers of accepted communal tools & platform.
Setup/config is a necessary evil on any OS. It's part of the game that you must learn to be a productive coder.
If the setup portion is a huge issue, students can use a pre-configured web solution such as replit. There, you're guaranteed to become dependent on an opaque third party platform (all just to save some minor setup hassle).
I was rather shocked when the author implied, on two occasions, that Notepad++ has the potential of wiping your computer. Is there some context I am missing, or is this based entirely on N++'s codenames and release notes?
There was another project which did something like that to "Russians" after the invasion of Ukraine.
I also found the author's conduct shocking, people's memories are fickle and making this implication once was bad enough, but insisting on repeating it? Feels like the author _wants_ people to misremember and erroneously believe that Notepad++ was the software package in question.
> I was rather shocked when the author implied, on two occasions, that Notepad++ has the potential of wiping your computer. Is there some context I am missing, or is this based entirely on N++'s codenames and release notes?
I don't honestly remember, but, did none of the author's vicious attacks and bitter diatribes posted online over the years include some slander?
He's not doing anything wrong with his release notes, but it is worse: it is a mistake.
The notepad++ guy comes across as a dingbat who cares about certain political things more than the software he's producing. This is a risk indicator. It doesn't matter if you agree with his current views or not. What happens when he takes the next step in using the software he's created to further his political ends?
The author is right to prepare for this possibility.
I'll be sure to pass this valuable message along to vim users that have been :q'ing political messages for the past 15+ years. They're gravely endangered!
Somehow tangent: can anyone tell me why WhY i can't just copy the text in any Windows' error windows? It looks like it's all text somehow is a texture which is un-selectable?
So i have to retype manually (and translate back to English) the error messages to look them up
Have you tried?
CTRL+C on most dialogs will copy all of the text to clipboard.
Of course, there are 3rd party dialogs that are not standard Windows dialogs and they do not implement this functionality.
To be fair, it's quite a hidden feature. I've used Windows as a daily driver since 3.1 days, and I didn't discover this until late Windows XP or early Windows 7 days.
Not dialogs, but you certainly can’t copy errors/warnings from Visual Studio inline popups, which is super annoying when I occasionally develop a Windows app in Visual Studio.
So literally today i tried to install sql server developer edition, and for some reason the downloaded file was corrupted. The error msg wasn't "ctrl-c"-able, so i had to retype whatever nonsense shown on the screen.
That was Microsoft's database, from Microsoft's website, to be installed on a Microsoft's OS.
There's a bunch of different UI frameworks, but WPF is pretty popular, and in WPF, my understanding is the normal control you'd use to just slap text on the screen is TextBlock. And a WPF TextBlock doesn't have any way to make the text selectable. And if text isn't selectable, you don't get the normal affordances of the window manager's copy functions.
I've used Avalonia, which is based on WPF. Its TextBlock control works the same way, which means the default way to put text on the screen is inaccessible. But if the programmer is thinking about it, they could use SelectableTextBlock instead, and then the text is available to the user for selecting and copying.
Maddening isn't it? One work around is to install MS Powertoys, then Win Shift T will give you a rectangle to capture text from anywhere on the screen, including an image then it will convert it and put it in the clipboard for you. Not perfect, it tends to confuse Capital O with the number 0, but it's better than nothing.
The why part is harder. My theory is Windows is made of many shells of of code, and they older parts of the system will never be refactored. I think someone counted 5 different gui interfaces in Win 11.
To be fair, MS is handcuffed by backwards compatibility. So interfaces remain frozen in time because changing anything can break compatibility in ways impossible to predict.
Fun Fact: File Explorer can keep changing because they never promised anyone they would keep it compatible with anything.
Edit: Just to say I did comment on the linked article, I never dreamed I would ever read the words "use PowerShell to create a nice GUI".
Yeah its maddening, its also an ubiquitous problem, in Android sometimes I need to copy a file name from the Google photos app, surprise surprise: Tapping the file name does nothing, the quick dirty solution its to screenshot it, use Google lens on such screenshot and from there I can select the text.
No need to retype manually. If you upload a screenshot of the error to ChatGPT, it will transcribe it for you and even give you some hints on how to resolve it.
My personal observation is quite different - this is clearly written by someone who lives in his bubble.
Most obviously: most corporations do use Windows. Also for technology startups outside of the "web application operator" type (here it depends a lot on the local culture), many use Windows: often because this is what the customers use, and the software/service of the startup has to be compatible with the ecosystem of the customer.
There's a clear dichotomy internally in choice of operating system. Corporate, project managers, and people managers use Windows. Developers and technical people use Linux (and we used to support Mac OS but that was recently dropped). Recently Corporate IT decided to move on-prem services to a Microsoft-hosted SaaS cloud, which caused some pain for the majority of employees but there was some kind of kickback or discount and some line in a spreadsheet was tortured to reveal the right numbers, so the deed was done.
Of our customers, about one third run our product on Microsoft Windows and two thirds on Linux. We certify both but only Linux gets dogfooded and support for Windows customers tends to be higher. The only people who ran our product on Mac OS when it was available were students and hobbyists and small startups whose license fees wouldn't keep our office lights on long enough to walk to the coffee machine.
Not really.
They put it on desktop with packaged software. The software they develop themselves run almost exclusively on Linux.
We tend to dramatically under-estimate the market share of Windows in engineering.
I have no trouble believing that most companies run Windows and develop on Windows. I just don’t particularly want to work for these companies.
Who do you think writes all the Windows software? There are hordes and hordes of people writing code on Windows for Windows all their lives. Server/web software aside, there are huge layers of windows-only software.
And even if you, for some insane reason, decide to pick Linux and fight its technological challenges, in the end only a tiny percent of users is going to use your product. Yet they will be responsible for generating over 50% of the bug reports. To make matters even worse, most of them will come from Arch Linux users, providing absolutely useless debug traces because they use a distro notorious for not shipping the debug packages.
You have disproportionately more beginners using it than more seasoned professionals. Hell, I barely use it, and I have questions every day - I just look up the documentation instead.
This is like saying most people love overpriced dropshipping, just because an advertisement company tracks how many of the people who click on ads buy dropshipped garbage. Its a massive bias.
Windows for development is really a common choice if you make video games, hospital, school software or desktop stuff. But even there there are exceptions. It's unfortunately a common choice in some, esp. American companies where the product is intended for Linux, but they would still hand out Windows laptops to the employees because of their bad / backwards IT that only knows ("knows" is an exaggeration here...) how to work with Windows. So, it often comes to that an employee gets this decrepit system, but then works on Linux anyways, but the experience is worse because they need to jump through some hoops to get to the system they actually work with.
Anyways, any claims about what "most corporations" do smells like LinkedIn posts promoting a technology, where the claims are usually made w/o any research but also any way to disprove the claim. Just don't go there.
Lock-in isn't just a strategy or a quirk, it is Microsoft's business model in every context. From monopolist strongarm tactics to lobbying for kafkaesque international copyright laws they have drafted, the goal of Microsoft is to put every human being in their little tinpot dictatorship and prevent them from leaving
We should suffer no such tyrant to live, let alone cave to its demands
Let me illustrate this by example: let's say you don't even power up your laptop -- it's hard to imagine that you are locked into something in this scenario. The lock-in will be ultimately contingent on what you do with the system, not on what you don't.
Has notepad++ erased someone’s computer before? I did some quick googling and didn’t find much.
It seems really weird to bring this up if there hasn’t actually been any problems. Especially given the line that follows:
> Each of these have caused me weeks, months, or years of support problems because of their stupid decisions.
The truth is, programming is an expression and often a very political one (see open source). I’m immediately suspicious of the motives of anyone who says project authors shouldn’t talk about their beliefs
1. An expected development of this sort of political message is blocking access to the tool's website to users from some countries, either by the website owners or by the relevant authorities.
2. Wiping people's files as part of open-source-as-political-message is less common, but not unheard of: https://www.bleepingcomputer.com/news/security/big-sabotage-...
3. Using or even advertising Notepad++ in Russia is probably not dangerous yet. Don't know about China.
I would never build software for a defense contractor, or any other myriad of nasty things engineers are hired to do.
In a similar vane, if my work has given me a platform (ex: a popular open source project) then it would be a waste if I didn’t use that platform like Notepad++ is doing. (Though I’d probably restrict messages to the download page)
[0] I do know the suggestion to sell support for software rather than selling software itself but that's a political view as well, trying to persuade businesses to earn money one way rather than another.
https://www.gnu.org/philosophy/open-source-misses-the-point....
I love WSL2.
To play devil's advocate: so if you use devcontainers you are developing on Linux actually?
Worlds better is still worlds apart from native.
Even though it has a more positive reputation for being cross-platform-capable, I will also observe that the Rust crates who strive to support Windows equitably seem to pull in quite a lot of platform specific code as conditional dependencies. Whether that is because of rampant Unix-isms or POSIX brain worms or whatever, I don't know, but it certainly seems to pose a maintenance/complexity burden that isn't there otherwise.
For example with Python, the author can standardize by having all students run the Anaconda Python installer alongside Visual Studio Code. This left us with virtually zero install/setup issues. Alternatively, using wsl2 you could set up any language very similarly to Mac/Linux.
In any regard, setup is typically a one-time cost. Once configured, students typically have no additional problems running code. That said, reducing getting-started friction is always welcome, and the author came up with a nice solution for personal computers. (Running `powershell -executionpolicy bypass` may not work on corporate laptops.)
It'll be a one time cost for your setup. Then a one time cost for the next setup as the student tries to do something else. Then another cost for the next effort. And the student will never gain any skill understanding or comprehension for any of these barely related steps.
Wsl2 is indeed savings Microsoft's bacon, by being some place where there are clear rules & patterns & behaviors, & where there's some kind of coherent underlying substrate. WSL2 is saving MS's ass. By not being Microsoft and by especially not being Windows. By being something social, with layers of accepted communal tools & platform.
If the setup portion is a huge issue, students can use a pre-configured web solution such as replit. There, you're guaranteed to become dependent on an opaque third party platform (all just to save some minor setup hassle).
I think that's what he's complaining about. It's been a one-time cost, for 30% of customers, each with a different issue.
I also found the author's conduct shocking, people's memories are fickle and making this implication once was bad enough, but insisting on repeating it? Feels like the author _wants_ people to misremember and erroneously believe that Notepad++ was the software package in question.
I don't honestly remember, but, did none of the author's vicious attacks and bitter diatribes posted online over the years include some slander?
The notepad++ guy comes across as a dingbat who cares about certain political things more than the software he's producing. This is a risk indicator. It doesn't matter if you agree with his current views or not. What happens when he takes the next step in using the software he's created to further his political ends?
The author is right to prepare for this possibility.
I'll be sure to pass this valuable message along to vim users that have been :q'ing political messages for the past 15+ years. They're gravely endangered!
That was Microsoft's database, from Microsoft's website, to be installed on a Microsoft's OS.
I've used Avalonia, which is based on WPF. Its TextBlock control works the same way, which means the default way to put text on the screen is inaccessible. But if the programmer is thinking about it, they could use SelectableTextBlock instead, and then the text is available to the user for selecting and copying.
The why part is harder. My theory is Windows is made of many shells of of code, and they older parts of the system will never be refactored. I think someone counted 5 different gui interfaces in Win 11.
To be fair, MS is handcuffed by backwards compatibility. So interfaces remain frozen in time because changing anything can break compatibility in ways impossible to predict.
Fun Fact: File Explorer can keep changing because they never promised anyone they would keep it compatible with anything.
Edit: Just to say I did comment on the linked article, I never dreamed I would ever read the words "use PowerShell to create a nice GUI".