TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Why I develop on Windows

120 pointsby shortrounddevabout 2 years ago

23 comments

lucb1eabout 2 years ago
&gt; I know a lot of developers who will opt to do all of their scripting in python these days, even putting #!&#x2F;bin&#x2F;python3 at the head of a script so that it runs through the shell.<p>...which is exactly what you&#x27;re meant to do.<p>This is not an example of how bad Bash it, it shows that you didn&#x27;t understand what Bash is. It&#x27;s expected to use various languages to write code on Linux, nobody wants you to do things in a language that wasn&#x27;t made for the task.<p>Imagine you had to use Python on the shell and, any time you open a terminal, needed to import os and do something like print(os.path.glob(&quot;*&quot;)) instead of just opening a terminal and typing &quot;ls&quot; to get your directory listing. Different tools for different jobs.<p>Also the point they try to make about bash looking like a foreign language and having weird syntax. Yes, that&#x27;s the thing: it&#x27;s a very specific thing called <i>a shell</i>, not just any old programming language that you&#x27;re <i>meant</i> to use for things that are not shell scripts. If Python feels more natural to you, <i>that&#x27;s probably what you should be using</i>. Don&#x27;t feel like you need to use Bash for bigger tasks than a few lines of code for no reason other than because you&#x27;re on a system that has it.
评论 #35748000 未加载
评论 #35748228 未加载
评论 #35748100 未加载
评论 #35748126 未加载
评论 #35749838 未加载
评论 #35748182 未加载
评论 #35748254 未加载
deathanatosabout 2 years ago
&gt; <i>If the software is written well, it will be sufficiently cross-platform and modular enough</i><p>Yes … well …<p>We brought on via acquisition a bunch of Windows devs. It turns out we can&#x27;t even clone the repository onto their laptops: some files in the repo have &quot;:&quot; in the filename, which is forbidden. There&#x27;s a &quot;aux.rs&quot;, also a verboten filename in Windows. And then there were some that differed only in case, which honestly I don&#x27;t know how we manage that, as the non-Windows side is macOS, and yet roughly once per year someone introduces two files, same name, differing case into the repo.<p>&gt; <i>that &quot;CRT&quot; shader</i><p>Okay … that&#x27;s <i>not</i> what CRTs looked like. Like, the curve seems way overdone compared to my memory, and IIRC the &quot;lines&quot; affect was really only visible on TV&#x2F;camera. I have no memory of noticing it IRL, and I spent plenty of time at a command prompt.<p>(E.g., this random example — <a href="https:&#x2F;&#x2F;i.redd.it&#x2F;1s3ny22b2va51.jpg" rel="nofollow">https:&#x2F;&#x2F;i.redd.it&#x2F;1s3ny22b2va51.jpg</a> — matches my memory pretty closely.)<p>(Also there were flat screen CRTs, but those were relatively late to the game and were rapidly obsoleted by actual flat screens.)<p>Edit: but also I want to play a round of Hack¹ with that shader.<p>¹i.e., quest for The Amulet of Yendor; you might know the newer incarnation, NetHack, but I didn&#x27;t play that until flat screens, I think; the CRT time would have been on Hack.
评论 #35748013 未加载
评论 #35748207 未加载
评论 #35748111 未加载
评论 #35749901 未加载
评论 #35748379 未加载
评论 #35749537 未加载
评论 #35748017 未加载
评论 #35748313 未加载
jmbwellabout 2 years ago
Complaining that bash on macOS is old is valid, but it doesn’t seem relevant here. If you’re just going to use Powershell on Windows anyway, then surely bash doesn’t matter on either platform.<p>More relevant in my view is how well the workstation you use supports interacting with your build system. In many organizations, the actual build environment is only ever going to be Debian or alpine in a container, in which case, it doesn’t really matter which computer you have on your desk. If all your building happens remotely on a cloud instance, it hardly matters at all.<p>So by all means, use whatever computer you want. The great thing about the current era of computing is how little depends on the computer for getting work done. The author’s Chromebook story makes this point perfectly. Use what you have or what you like or what you can get, and get on with life, I say.
评论 #35748105 未加载
评论 #35748152 未加载
评论 #35748129 未加载
pcthrowawayabout 2 years ago
From everything I&#x27;ve heard about Windows turning into user-hostile bloatware over the last few years, nothing in this post seems like a good enough reason to use it. Perhaps it&#x27;s Stockholm syndrom, but I honestly like my Unix-y tools (bash, jq, awk) at this point<p>Also, regarding this example<p><pre><code> { $Env:MYSQL_HOST = &quot;MyHost.com&quot;; $Env:MYSQL_USER = &quot;MyUser&quot;; java -jar myprogram.jar; } </code></pre> You can do the same thing in Bash with perhaps slightly more verbosity<p><pre><code> ( export MYSQL_HOST=&quot;MyHost.com&quot;; export MYSQL_USER=&quot;MyUser&quot;; sh -c &#x27;echo &quot;using $MYSQL_USER@$MYSQL_HOST&quot;&#x27; ) sh -c &#x27;echo &quot;using $MYSQL_USER@$MYSQL_HOST&quot;&#x27; </code></pre> outputs:<p><pre><code> using MyUser@MyHost.com using @</code></pre>
评论 #35748310 未加载
评论 #35748365 未加载
lionkorabout 2 years ago
I dont really see the answer to the question in the article, maybe I missed it.<p>You can use PowerShell on Linux. You can use vcpkg on Linux (very well, even). You can learn C++ and you wont need the `_In_` and whatnot. If you use WSL2 for your development, are you even developing (fully) on Windows?<p>What you can&#x27;t do is really own a copy of windows (any recent one), and have the freedom to decide what tools you will use. There is nothing protecting your system from locking you out of any setting, at any point, and requiring you to buy a different key, subscribing, giving them your data, or whatever else.
评论 #35749280 未加载
评论 #35748255 未加载
AaronFrielabout 2 years ago
I&#x27;ve followed a different path, but I&#x27;ve come to the same conclusion. Along my path, picking up languages like Haskell or Node early on meant using Linux. So since high school I&#x27;ve always had _a_ Linux machine available, but preferred to use Windows as the user interface.<p>Two thing I can say for any naysayers who use a Mac and do devops, backend development etc.:<p>1. Are you sure your environment that matches your deployment environment? Do you have confidence your server code runs the same on an Apple Silicon Mac as the (very likely) x86-64 and Linux environment your users use?<p>2. Have you ever noticed how shell scripts on Mac often... don&#x27;t work the same on Linux? The way to fix that is of course use Homebrew, and, while brew has gotten leagues better, the quality pales in comparison to even Debian testing, Ubuntu main, or Arch and others.<p>As a devops engineer for many years, #2 was death by a thousand cuts. If I could, I&#x27;d have replaced every Mac user&#x27;s userland with GNU coreutils from brew without their permission.<p>To square the circle of preferring Linux systems and Windows&#x27; UI, I&#x27;ve done just about every approach you can imagine to make that work, from syncing folders via rsync, to ssh or nfs mounted filesystems. I&#x27;ve used Virtualbox and VMWare and Hyper-V to locally run the Linux environment. There have been a few different X window managers and remote desktop tools, but none of them have been great.<p>WSL1 is where things really began to turn around - what an interesting project to make the NT kernel work as a Linux kernel. It didn&#x27;t quite pan out, but that was OK.<p>WSL2 made major changes to how WSL worked, and now I can now run Kubernetes, Docker, 3d applications, machine learning (stable diffusion), have a real Linux shell and userland.<p>WSL2 is a true game changer for quality of Linux development on Windows. Being able to `docker run` Stable Diffusion or Llama or what-have-you is incredible.<p>I can imagine a PopOS - or another vendor-backed Linux OS - might persuade me eventually to shed Windows. In the meantime, I don&#x27;t feel like I&#x27;m making any compromises.
评论 #35751243 未加载
评论 #35748159 未加载
hesdeadjimabout 2 years ago
After 8 years on macOS, I was forced into developing on Windows back in 2015 when I was making a VR game. WSL1 hit at exactly that time and once I suffered through setting up the environment on ConEmu (Windows Terminal nowadays is <i>wonderful</i>), I never looked back.
queilabout 2 years ago
I have gone the other way. Used to be a hardcore C#&#x2F;.NET Framework dev on Windows and I still occasionally use Windows 11. However, since the advent of containers and dotnet core I&#x27;ve been doing lots of devops work. WSL2 is annoyingly slow and has its quirks vs a normal Linux. Docker Desktop with WSL2 backend is slow too. PowerShell is cross-platform so one can use it on Linux just fine.
stemlordabout 2 years ago
A lot of praise for the &quot;little known&quot; (???) Path variable in windows. But dealing with windows path really sucks for one major reason: there&#x27;s a shockingly low character limit [0]<p>Also idk if this is a problem for anyone else, but since admin privs are required to add to path, I need to fetch IT every time I need to add to it on my work machine, lol.<p>[0] <a href="https:&#x2F;&#x2F;superuser.com&#x2F;questions&#x2F;1385854&#x2F;how-do-i-bypass-restrictions-on-the-length-of-the-path-variable" rel="nofollow">https:&#x2F;&#x2F;superuser.com&#x2F;questions&#x2F;1385854&#x2F;how-do-i-bypass-rest...</a>
评论 #35757434 未加载
plaguuuuuuabout 2 years ago
I&#x27;m a battle-scarred Windows developer (more by chance than by choice, mind you) and even I find Powershell exceptionally annoying.<p>The commands are verbose and the syntax is non-standard in a way that, quite frankly, is unnecessarily and exceptionally annoying.<p>But the worst thing is some super confusing aspect of how scopes for variables etc work.. which I&#x27;ve somehow forgotten already because the last few times I needed to write something in PS I straight-up got ChatGPT to do the legwork.
subjectsigmaabout 2 years ago
I have no idea what the point of this article is. It just seemed like rambling. Are you trying to get us to switch to Windows? To shame macOS into a better dev experience? To justify your own decisions to yourself?
评论 #35757531 未加载
caleblloydabout 2 years ago
PowerShell 7 can be installed on Linux and MacOS! Native too, not like cygwin bash.<p>Around the same time that came out, so did WSL so I never really learned PowerShell because now it&#x27;s so easy to run real bash on Windows.
评论 #35748349 未加载
tpoacherabout 2 years ago
No hate to OP, but almost every single argument in the article regarding Powershell boils down to them not knowing a thing about bash. I know this is the case, despite the claim in the article that they do, because it&#x27;s clear from the text.<p>I also felt bash was cryptic before I decided to actually learn it. Now it&#x27;s one of my favourite languages. All it took was reading &quot;man bash&quot;, which is actually super clear and surprisingly enjoyable to read for a manpage.<p>As I was reading this article, initially I felt like I wanted to &quot;rebut&quot; the claims, but by the time I finished reading, I realised I would basically end up having to rebut the whole thing. (and doing so on a phone is simply not worth it).<p>Honestly, learn bash. It&#x27;s actually beautiful. By all means, use PS too; but judging from your article, you&#x27;re missing out on a lot of great stuff.
评论 #35767442 未加载
0x445442about 2 years ago
Powershell, an inferior shell to Bash and an inferior scripting language to Python. But probably quite useful for administering corporate windows instances.
评论 #35748326 未加载
shortrounddevabout 2 years ago
I&#x27;m disappointed that 90% of the discussion is on the first 3 paragraphs of the article. I wrote about C++ and DirectX, too.
评论 #35750994 未加载
sys_64738about 2 years ago
Microsoft has made Linux development cool again after got derailed by macOS. Nowadays you can use almost all Linux tools on Windows. They also provide Windows Terminal which is rather excellent.
评论 #35749619 未加载
评论 #35750855 未加载
Swalden123about 2 years ago
Regarding NodeJS and being cross platform, why didn’t the company just use path.join?
评论 #35747964 未加载
评论 #35748238 未加载
emodendroketabout 2 years ago
I actually kind of agree with the point about PowerShell but I suppose the problem is everyone is so used to bash scripts that they&#x27;ve forgotten how many annoying pitfalls they have and how cryptic they are to anyone not used to writing them. A lot of resistance to PoSh is just about it being something different.
评论 #35748563 未加载
lenkiteabout 2 years ago
&quot;and there are simply no good command line input parsing libraries for Java.&quot;<p>Looks like author missed the most obvious and popular OSS one: <a href="https:&#x2F;&#x2F;picocli.info&#x2F;" rel="nofollow">https:&#x2F;&#x2F;picocli.info&#x2F;</a>
deafpolygonabout 2 years ago
What a breath of fresh air. A well reasoned post about development on Windows when it seems to be the popular thing on HN just to shit on it [Windows].
bdcravensabout 2 years ago
I do a lot of work where I&#x27;m exporting data from SQL Server (often needing to rely on scripting semantics and transforming, not just a static dump), and really enjoy using PowerShell for this purpose (though in most cases, I run it from a Linux server or my own Mac)
thomasjbabout 2 years ago
I keep on seeing all this talk about Powershell, and it&#x27;s inspiring me to maybe learn some, although I&#x27;ve already commenced pursuit of skill in bash and python
评论 #35748046 未加载
评论 #35747871 未加载
revskillabout 2 years ago
apt-get install package-&lt;version&gt; is a nightmare, because it&#x27;s hard to know which version is the correct one.
评论 #35747889 未加载
评论 #35750659 未加载
评论 #35748226 未加载
评论 #35748210 未加载
评论 #35748063 未加载