Hacker News new | past | comments | ask | show | jobs | submit login
Solving the Worst Problem in Programming Education: Windows (learncodethehardway.com)
104 points by vinipolicena 37 days ago | hide | past | favorite | 177 comments



> 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.


> most corporations do use Windows

Not really.

They put it on desktop with packaged software. The software they develop themselves run almost exclusively on Linux.


Speaking as someone who happily lives in the mac engineering bubble and has very little interest in leaving said bubble…

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.


A lot of engineers who use windows aren’t programmers. This is because a lot of custom engineering packages that require windows, especially since they were developed 20 years ago when windows was dominate.

But programmers have many more choices, and visual studio shops aren’t very common anymore, at least in the developed world, and I would bet countries like Russia and China as well.


There’s also the whole world of Java software and engineering which all pretty much Just Works on Windows.


You don’t have to be a Visual Studio shop to use Windows machines, just like you don’t need to be an Xcode shop to use Macs.


Sure, older tools are also feasible on windows. But if you are going with clang or GC, why bother? I guess you could do java dev on windows as well as other platforms.


Quite a lot of programmers use windows, because they require less maintenance and there is no reason not to.


Are you sure any of the three major operating systems require much maintenance these days?


At least for linux, I would assume that it hugely comes down to how much of a personal statement the OS is to developers.

I use Arch btw.


Well, yes, "Linux" is not well-specified. When one installs Arch, they hopefully know what they want, and it's something else than just a low-maintenance casual desktop OS. :)


Mac’s don’t require much maintenance either, and last longer then Lenovo things. When I worked tech in Beijing already a lot of programmers used them, even in changping around Lenovo’s big R&D office.


Microsoft itself doesn't recommend that you deploy software on Windows servers anymore. It's something that is supported, not recommended.


What do those ellipses mean?


    When Shute uses three dots it means, "Use your own imagination. Conjure the scene up for yourself." (pause)

    Whenever I see three dots I feel all funny.
~ https://inkscrawl.blogspot.com/2005/01/whenever-i-see-three-...

~ https://www.youtube.com/watch?v=hfKvOlSJ77o


That's a great response. I unfortunately still just perceive end-of-phrase ellipses akin to a blank stare.

Or as a passive-aggressive suggestion that you're incorrect in whatever is being responded to.

Definitely no (positive) funny feelings.



I've developed software on Windows for Windows when working in a bank. It's pretty common.


I notice that's in the past tense. I'm old enough (as in, used Borland Delphi) to remember if you developed small business software, you were almost by definition a windows developer.

But that was a long time ago. Along came Google whose master plan looks to have been to turn the web browser into the business platform of choice. Seemed like insanity at the time. Yet here we are. Browsers have since become masters at playing video, can handle interactive voice, and can talk directly to the GPU. Now Microsoft wants you to use Excel of all things in a a web browser and has dropped the Windows native version of Outlook in favour of the web one packaged as a desktop app. Seems like Google made it's vision work.

I know there are some heavyweight applications out there like video editing and Engineering CAD with finite state analysis that need raw metal performance. But they are few and far between, and aside from them - who is doing Windows native development any more? Certainly not the firms that make accounting packages - the abandoned Windows long ago. For those that are left - are they going to survive the transition to ARM and RISC-V?

POSIX / Linux / BSD / whatever applications - they continue to be as strong as ever. They drive embedded at one end, and the servers at the other. That sort of development is easiest to do on the the target platform, and since it dominates now Windows had to emulate that platform if it wanted to keep the developers. Which is how we got to WSL.

But Windows native app development - that seems like it belongs to a bygone era. Now even Microsoft develops own apps target Electron, not Windows.


> But Windows native app development - that seems like it belongs to a bygone era. Now even Microsoft develops own apps target Electron, not Windows.

I indeed have the impression that some industries (e.g. banking, insurance, development of engineering tools (e.g. CAD applications), PC gaming, ...; observe that at least banking and insurance are two financially quite powerful industries) have a lot more love for the "Microsoft ecosystem" (Windows; in banking and insurance also Microsoft Office) than Microsoft actually does. Thus, in these industries Windows (and Microsoft Office) is used and Windows software is developed despite Microsoft's actions and stance.


> I notice that's in the past tense.

Yes, but that's because I moved companies. The bank in question still uses Windows.

> I know there are some heavyweight applications out there like video editing and Engineering CAD with finite state analysis that need raw metal performance.

WASM and WebGL etc (or whatever the newest developments are called these days) are there to make working in the browser faster.

Btw, if you have beefy enough servers, it's not the 'weight' of your application that's the problem, but the latency.

> For those that are left - are they going to survive the transition to ARM and RISC-V?

Just recompile, or use the automatic translation of binaries that comes with your OS.


Tell me which bank so we can all avoid it.


You're gonna have a bad time


Almost all


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.


They do, *really*


>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.


Here's a report of the actual experience one game developer had with bug reports on Windows vs. Linux, suggesting that having Linux support is useful: https://old.reddit.com/r/gamedev/comments/qeqn3b/despite_hav...


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.


They didn't during my time. But my department didn't do anything that had to do with Web... also, we got into Google through acquisition, and the company originally started with developers working on Linux and rarely Macs. The IT wasn't really very selective about it, so there was a guy who wanted a Windows laptop, and they gave him one since they had licenses for the HR / sales etc. people, but he quickly gave up the idea.

So, by the time we became Google, nobody really thought about it as a viable option.


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 use Win11 and I don't use Visual Studio. What lock-in, specifically?


Did you ever get rid of the Edge Browser or does it still seemingly randomly open links for you?


Not OP, but I use Chrome and Edge does not open up randomly. There is literally zero issue with it.


You conveniently leave out all the hoops you have to jump through every couple months to make sure it stays that way. Every now and then some windows update adds another shortcut to your task bar, resets it to be the default browser, and other shenanigans.


That never happened to me.

I have mac, Windows and Linux machines.

It's funny to observe HN bias against Windows.

Makes me wonder what other strong biases I'm being exposed to without noticing.


Bias is when people don't like a thing you like, right?


This is stuff I witnessed happening at work, and with relatives still on windows; the internet (not just hn) is full of rants about it, even some news outlets picked up on how Microsoft aggressively tries to shove Edge down everybody's throat. And you show up here claiming that never happened to you and that it's just HN folks hating on windows. How can anyone be in such denial?


I don't have these issues.


It does and sadly it is not random


Try opening Edge and you will realize that is has imported all the Chrome session/cookies etc and now you are logged in those sites in Edge. This setting is on by default.


Try opening a link from teams


Just found that out the other day, Teams has its own preference for what your standard browser is and somehow its edge


Opens in chrome.


In Teams Classic, Teams for Schools, Teams for Personal use, or New Teams?


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.


Or building containerized software. Building on windows and deploying on linux is perfectly easy. Microsoft heavily supports that.


I write in C, mostly. For Windows, I mean.

Incidentally, is there a good way to build native Android apps on Android, without installing Android Studio?

Wait, Android Studio doesn't even support Android.


You can just use the Android SDK via the command line and don’t need to use Android Studio: https://www.revelo.com/blog/how-to-build-an-android-developm...


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


All I think Notepad++ did was criticize Russia’s invasion of Ukraine in its release notes. I guess it rubbed this guy the wrong way.


Ranking risks from more to less likely,

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.


No, it has had political statements for like a decade at least.


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.


I probably wouldn’t have put the messages in a document, but I support this


It is about SW. Wanna do politics ? Quit SW, go get voted.


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 strongly agree.


sorry but how is open source a political statement exactly? it can be a choice for a host of different reasons besides political activism


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.


The Open Source name was specifically invented to distance itself from the polarizing political aspects of the Free Software movement.

https://www.gnu.org/philosophy/open-source-misses-the-point....


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.


Indeed, wsl2 is a dream. This article is either very old, or the author is clueless


First commit on the linked GitHub is three days ago, so this article is probably not old.

I love WSL2.


wsl2 solves the Windows problem by being Linux.


Not really. It combines the best of the two words. You have good UI and operating system that requires very little maintenance and Linux command line with tools where helpful.


> good UI and operating system that requires very little maintenance

good UI on Windows? are we talking about the same OS that uses UI paradigms from at least three different eras all in one?

and the little maintenance is laughable. force reboots galore on Windows.


Yeah, it has better UI then linux. There is nothing controversial about it.

And when it comes to maintenance, yup there is less of it. Linux users are constantly dealing with this or that hardware not working, not working after update and what not.

Linux is better on the server. But for a user, nope.


> Yeah, it has better UI then linux. There is nothing controversial about it.

Few examples (Windows 11):

- You cannot move taskbar to different edge of the screen.

- By default, search shows results from bing.

- Three finger swipe gesture animations to switch desktop or open task view are jarring.

- Explorer window shows partial UI first and then fills in the rest of UI.

- Ctrl+F or F3 doesn't focus on the search field in Settings app (and other MS apps that have search bar at the top of the window).

- Connect to external monitor and close the laptop lid, the laptop screen doesn't get disabled, it is still enabled and you can move windows to it.

- In tiling mode while resizing a window, causes other windows to show the app icon instead of their content.

Here is another amazing thing: All operating systems (even chromeOS these days) have a system settings to configure keyboard shortcuts, for some reason Windows doesn't (probably because all system level keyboard shortcuts are hard-coded in things like dwm.exe or explorer.exe).


> some Linux users are sometimes dealing with this or that hardware not working, not working after update and what not.

fixed that for you. when you have existing, already supported hardware, it does not break constantly on updates.


> Yeah, it has better UI then linux.

Older versions of Windows have some aspects of UI better than Linux, and others worse. Newer versions of Windows are often worse in other ways too (although there are also a few benefits, but mostly it is worse).


What's the "best" you are talking about when it comes to the Windows world?

Also, while I cannot really speak to how Windows contributes to the experience, I know for certain that the integration comes with a tall bill to pay. You don't get to manage your computer with Linux, which is, ultimately, what it was built for: to empower the computer owners to take ownership of their hardware. And you don't get that when running in a VM. You are totally missing the point if you do that.


The best in the sense that it is less hustle to have working UI, headphones and what not. The UI is just comfortable and working. Not having to deal with this or that maintenance issue that prevents you from working once every two months. That is something I see colleagues having to do with fairly often.

Linux command line is great, when it is in wsl I get to have it without having to sacrifice the comfort.


how is wsl2 maintenance?


Devcontainers are great! They allow windows users to develop on Linux and they allow Linux users to develop in an sandbox environment seamlessly.

To play devil's advocate: so if you use devcontainers you are developing on Linux actually?


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.

Worlds better is still worlds apart from native.


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


if you use wsl2 you are not using Windows under the hood...


VS Code is atrocious for C and C++ development, for beginners. No build system works out of the box.


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.


He's talking about education. This is for students, not programmers. Anyone with a Windows machine should be able to become a student.


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.


"Manage to get stuff done" is not the goal of a student. Students need to learn.

A simpler environment can make a difference between someone pushing on vs giving up.


Visual Studio Code, Windows Terminal and WSL are hot garbage, which I wouldn't want students to get anywhere close to. Why does it matter that they exist?

The point of education is to understand how to do something. An editor that uses Electron is a massively complicated system that's impossible to comprehend. And so is a virtualized operating system. You would have to twist yourself into knots trying to explain the reason behind terminal existence and function, if all you have is Windows -- all because that system ultimately doesn't need one, it's contrary to how everything works there.

More so, all these tools were developed by Microsoft because they wanted to get developers' allegiance by feeding them with superficial fakes, by doing market research and implementing the most "liked" features -- not unlike the spirit of other Microsoft products. And, like with other Microsoft products they've created an ice-cream miso soup with churros and peanut butter. The tools are pathetically bad, but they've managed to convince a lot of developers they are good by specifically checking the checkbox they've complained about. A reverse malicious compliance of sorts.


> Visual Studio Code, Windows Terminal and WSL are hot garbage

This is your opinion. I like all three.


You should also read the next paragraph.


I like them too.

About 10 years ago (funny that you mentioned that era earlier), before WSL, I was using Sublime Text, mintty and MinGW.

I even had a project to auto-spin a unix-like shell for windows: http://github.com/alganet/shunt (doesn't work anymore since ms crippled wscript).

VSCode is just another bloated Sublime Text clone. Language servers are a fine addition and I respect them, but pretty much everything else is a ms-branded copy. It's good, and I like it, but considering what it could be it kinda sucks too.


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).


> setup is typically a one-time cost.

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 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 see annoying political messages all the time, there's an ocean sized gap between virtue signaling and cyberterrorism.


> This is a risk indicator.

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".


No workaround needed. CTRL+C will copy the text.


Sometimes. (Excel is a famous example).


https://learn.microsoft.com/en-us/windows/powertoys/text-ext... will OCR/copy any text in a region of the screen you select


CTRL-C will copy the entire text to the clipboard for standard message boxes.


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.


The author's repeated expression of "concern" that the Notepad++ author might erase people's files borders on libellous in my opinion. It suggests that such an event might have happened in the past, and especially in the context of a separate piece of software having done that previously, it's almost like the author _wants_ people to misremember and think it must have been Notepad++. If it were only once I wouldn't have made my opening statement in such strong language, but twice?

Ironically the whole thing just damages my trust in the author. People who see other people's forthrightness about their own beliefs as a negative are people who should not be trusted, they are people who view a kind of dishonesty as being a virtue, and honesty with suspicion, consider what that means for somebody's trustworthiness.


Why are programing students having a hard time setting up thier environments? Shouldn't they have taken some OS 101 classes? At least know how to install software? I never went to college, but I assumed they would get you proficient in prerequisites first..


> I never went to college

I did ... the thing is, most college students need a lot of help, especially in earlier classes. On a statistical level it's somewhat the opposite of a population of self-taught programmers, who self-select for being into the gritty details of computer systems, and being able to figure stuff out. You know, in most college tracks, there are problems with lots of students needing help, cheating, struggling, it's kinda the regular state of things, now that most people go to college.

Some college students switch to something else later; some continue to need lots of help with system setup when they start working professionally; those who are really good were largely self-taught either before or between college courses. College/university is still useful for the self-taught programmer, to cover gaps, and for the advanced courses. I had been installing, configuring, fixing, and re-installing windows and linux for 4+ years before university, and I really loved my systems programming courses.

Now that there are millions of programmers out there in the world, working professionally, yeah lots of them are kinda useless ... there's a reason why "average" doesn't have a great connotation.


You're thinking far too much in traditional colleges, and also I personally didn't have an os 101 course at my college. The only time we talked operating systems was how they worked at the kernel/system level. Schedulers bootloader forking shared memory etc.

The author is more for the use case of 'hey I have a full time job and want to change careers to programming, how could I get started?' or 'i couldn't get into college even if I could afford it because that's just not a path my community is set up for, but I'm motivated and want to learn programming anyway'


Zed's courses are, afaik, targeted at absolute beginners. The exact folks who have the most problems setting up environments.

That said, programming for over 20 years and I still sometimes have problems w/ environments, so... yeah.


I've never seen an OS 101 course offered.

And how would that course work if every one had a aligytly different laptop with different OS versions?


My school did. But that was back when nobody was expected to have a laptop, and the labs were on getting used to the school's Solaris computer environment and the UNIX command line, with assignments on using grep, tail, sed, awk, etc. Probably half the class had only ever used Windows before.


Setting env can be tricky as fuck


If the goal is to have students have experience that will help in real world jobs, use standardized tool chains they will see there. WSL2, VS Code, git. Or a Linux VM. Having to code for a Linux environment on a non Linux machine is super common in industry, and a well solved problem at this point.


I use windows, mac and linux basically interchangeably for coding. For windows, I install the Git Bash package [https://gitforwindows.org/] and then just use chocolatey as a package manager for stuff like python and node.js. Bash gives me a completely functional commandline with my C drive mounted as `/c`, and I can write code using VSCode. I don't really have issues. With this setup, it operates indistinguishably from the other two platforms.

For me, the key really is the commandline. Learning powershell is not something I'm going to do.


I really think the worst problem in programming is language. If you don't speak English basically youre doomed.


I believe you never had a pleasure to work with translated Excel commands.

https://www.excelfunctions.eu/


Thanks, I hate it.


English is the current lingua franca, so to speak, of the computing world.

If it changes to another language, then I guess I'll have to learn how to use the new language professionally, much as an opera singer might have to learn how to sing in Italian/German/French/etc.

Though there are computer languages like APL or Scratch. Or Lisp/Scheme and Forth, which are only marginally English-like (though their libraries may depend on English literacy.)

AppleScript is an interesting language which had English, French and Japanese dialects.


English helps a lot, just like Latin helps in medicine. But there's plenty of material available in eg German to get you started.

(German is just the language I have the most familiarity with. I don't know how the programming material available stacks up to other non-English languages.)


I don't think that's a bug. I think that's a rather nice feature that programmers all over the world can talk to each other. Programs are written for other programmers to read and only incidentally for a computer to execute.


I feel the same way. Modern science standardized around English and I don't mind programming standardizing around English also.


> I don't mind programming standardizing around English also.

Will you mind when everything re-standardizes around Chinese?


Given China's ongoing demographic collapse [0] it is unclear how that could happen, not to mention why.

[0] https://www.scientificamerican.com/article/chinas-population...


If and when that ever happens I'll be dead by then, so no :)

But I hope humans of the future can standardize around something. It's better than the alternative.


I say dash but the military / defence peeps say tac, drives me nuts.


it is absolutely insane the lengths Windows users have go to complete basic tasks. This is one of the things that drove me away from Windows. I was learning to program and it was so frustrating. The Python PATH issue was one of the first I ran into, the anti-virus nuking my project directories OR causing the Go compiler to choke up and go insanely slow. You have to allow-list dev directories to avoid this kind of issue. On top of that installing packages is a nightmare.

Its perfectly fine if you are a web dev... or you develop ONLY for windows, but I think that is a terrible mindset that stunts your growth. The way that VS hides all the "complexity" behind layers and layers of menu's is god awful. I dont want to learn how to speed click through a GUI, I want to learn whats happening on a lower level.


> The official Python Installer The guy who works on this is employed by Microsoft so big surprise it refuses to add Python to the PATH.

I wonder if Zed knows that Guido van Rossum works at Microsoft now. I wonder if his head will explode when he finds out.


Could this issue be solved by having many cheap laptops with preinstalled Ubuntu?


Of all the people in the world to go after, he's going to go after the Notepad++ guy? Really?

https://notepad-plus-plus.org/author/



So he's just adding a message to the release notes every few years. I don't think that justifies a fear that he'll "erase all my students' computers", as TFA seems to worry.


Yeah, if he was showing some political message the first time you start notepad++ or something like that then it might make sense to worry about future behaviors but every single time it has been the release name or the release notes so its completely unjustified.


But that did happen. It auto typed stuff in the editor after start.


Citation needed, I find no information online about that happening.


Weird, if true, but far from the implied cyberterrorism.


Btw, your edit is against HN guidelines:

> Please don't comment about the voting on comments. It never does any good, and it makes boring reading.

https://news.ycombinator.com/newsguidelines.html


This must be at least several years old, I do remember when things were this bad. Windows really used to be a huge impediment to education and made getting started with programming seem like a daunting esoteric task. But these days you can have students download WSL2+Ubuntu, Windows Terminal and VS Code from the Windows Store and then you’re an apt-get away from whatever programming language you want. The situation has massively improved.


Ehm... So you try to mitigate some Windows problems automated the solution, while we have GNU/Linux who do not have such issues natively...


I mean, the author explains this and it makes perfect sense. Starting a class with "OK guys, wipe your entire OS on your personal device" is a total nonstarter.

Yeah WSL exists, but that's adding a whole new layer of complexity and indirection and leaves developers without any ability to program natively for the most popular consumer OS around.


Well... I'm not a teacher BUT I was a student and I have lectured some courses about IT to different age cohort and well, I exactly told "you need a system with easy replaceable storage, we start with GNU/Linux", I spent the initial time to help anyone set up, providing some iron to some who can't, than start showing the system for simple things. And it worked even if these days most people have no knowledge even to install system software often asking for "web version, it's simpler".

Touching the complexity and the sorry state of IT things is VERY good in didactic terms. It teach an important lesson to start changing the mindset.


That's great and I support that approach too. I can understand why a career teacher might be less inclined to doing that though. Not saying anyone should be, but I can understand why some wouldn't accept "install Linux" as a viable demand.


I can understand as well: most teachers simply do not want to face a big load of potential issues and have not enough time to train their students enough so instead of teaching for their courses they'll have to replicate "The Missing Semester" (MIT) or even much more basic and time consuming knowledge.

But the fact is that IT in our society is our social nervous system and to be Citizen we must know that enough to operate alone, being not so easy tricked by some PR etc. Obviously most citizens have definitively not enough knowledge in that field but desktops today are books and libraries of yesterday. We can't have a modern culture without the modern tools of knowledge.

Knowing them is like being able to write with pen and paper before and as we can't progress in schools without knowing how to read and write so we can't in modern world progress without knowing to use a desktop properly. That's is. All the tentative to "lower the barrier" have created more issues than those they try to resolve. It's about time to admit it and correct the aim because as a society we are heading to a disaster fueled by some big tech interests exactly because of the ignorance of most.


Why does it need admin rights? Is it just because it relies on installers that need admin rights? There's no reason the whole thing couldn't be in userdir (or better, portable) right?


I remember my CS course using web tech (Codio) to teach coding, which doesn't seem like a bad option for educators, as far as dealing with cross-platform differences goes.


I use VS Code for Javascript, Eclipse and Idea for Java/Kotlin without issues. Before VS Code I used Intellij for Javascript without issues.


Most programmers these days don’t use Windows. They use the WSL (Windows Subsystem for Linux), which means they are using a VM with Ubuntu.


> Notepad++ This guy thinks his text editor is a political statement rather than just a damn text editor,

Well, there's always emacs and vim.... oh, wait....


I'm using unigetui which allows me to easily install packages from winget, scoop and chocolatey


Isn't this easily solved by VMs?


Windows is not the root problem. The root problem is people thinking Windows is acceptable.


I will find MacOS acceptable when Finder will start treating Enter as Enter and not as rename. And the worst thing is that you can't even change this behavior.


I must admit that, when changing to Mac, I had to get used to that. (Btw opening is cmd+arrow down.) Now I’m changing back to windows and have to get used to pressing F2 instead…


F2 is rename on Linux too. At least in VSCode and some file browsers.


They should port thunar to macOS. For the moment yazi will suffice.


That's how I feel about macOS


Don't even get me started on macOS.

Develop Linux server software on macOS is the worst idea of all time.



You want MSYS2.


[VSCode + browser + docker or WSL2 image] = who cares?

This article feels about 4 years out of date which is more a commentary on how fast the industry moves and how sometimes not even Google can burst your bubble.

It’s the students who suffer.




Consider applying for YC's first-ever Fall batch! Applications are open till Aug 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: