Don't believe me? Just wait and see how this turns out in three years.
Don't believe me? Just wait and see how this turns out in three years.
There's quite a lot of developers at stodgy Fortune 500 non-tech companies that are sort of forced to use Windows for development. Either explicitly, or though poor enterprise support (vpn connectivity, local admin restrictions, difficult path to purchase a Mac, etc).
It's one reason things like Gitbash, WSL, Docker Desktop, etc, are very popular.
"Quite a lot"? There are more developers at Fortune 500 than FAANG for sure.
In that sort of company it’d take 2 years to get approval to install it anyway. If you submit the paperwork now there’ll probably be a windows port by the time it’s approved.
https://medium.com/codex/jetbrains-django-developer-survey-r...
In case you are seeking anecdotal evidence: does your company employ offshore devs? Try and ask them what do they use. Outside of the few countries where most people can afford Macs, things are different.
yes, you are right, they definitely were allowed to check more than one item, we can see that the total sum of all options gives us a total of more than 100%, so that must have been the case.
But even then, it's hard to overlook the fact that the first three options in the list are related to web development, and with quite high percentages.
But given that the majority of developers are web developers[1], how can that be the case?
[1] including, unsurprisingly, the respondents to that survey https://survey.stackoverflow.co/2022/#developer-roles-dev-ty...
It's naive to assume that Windows isn't prolific. There's probably no good way to quantify numbers, but it's a major player still and likely always will be. WSL certainly helped keep that a reality.
I don't see how rimraf is related in any way. If you want to remove folders by calling a shell command (with full knowledge of all potential security and portability risks), your code is going to be platform dependent - it's not Node's responsibility to reimplement bash and/or GNU coreutils to make it magically work. Therefore, you need a Node re-implementation of the same functionality, either in the standard library or as a package.
And besides, rimraf has been unnecessary for a couple of years now, as Node's standard library includes a direct replacement: https://nodejs.org/docs/latest/api/fs.html#fsrmsyncpath-opti....
I kind of have to as of late, because due to corporate security policy I get around a minute of internet access from WSL and then the antivirus steps in and blocks it.
https://github.com/sakai135/wsl-vpnkit/commit/94a85aaf4db365...
It's possible to create command line tools that work across Windows and UNIX-oids, and I appreciate this, but it's a lot of additional work (even 'cross-platform' solutions like Python don't fully wrap this stuff, even though they do their best).
FWIW, I have been remarkably impressed with Rust for this. The stdlib and package ecosystem are unusually good at building abstractions that work across *nix and Windows, and so the average command line tool written in Rust usually has good Windows support.
Of course, the additional work hasn't really gone away - it's just been relegated to libraries unusually effectively :)
* What IDEs/editors I have access to
* What image editing tools I have access to
* How easy it is to get my server’s backend running on my local machineas a dev environment
The last one is most relevant to this conversation. If I’m working on a bun-based project, not being able to run a local dev copy on Windows easily is a nontrivial obstacle.
One of the reason WSL exists is to solve this problem.
(assuming bun doesn't work on native windows but works under wsl)
Safari often has bugs and rendering issue which aren't present on Chromium or Firefox and need fallback.
Things like "www-authenticate: Negotiate" in an SSO environment, people pasting rich text into web forms, handling environments with private certificate authorities, and so on.
I have bad luck with Macs, getting dev tools properly installed seems as hard as on Windows and everything falls apart a few times a year. The OS also seems to break itself and crawl to a halt sometimes (>1 minute to open settings). Linux distros were stable only if I can stayed on the happy path (single monitor, integrated graphics, don't try to sleep/hibernate) with close to default config. Windows can seemingly tolerate a lot more fiddling, at least since 7.
So basically, there will never be Windows support until JavascriptCore is able to be used on Windows and I'm not entirely sure on the state of that. My guess is that it has limited to no support for that scenario.
I wonder how much of Bun's immaturity is due to Zig's own immaturity.
How so? Zig is a programming language, so I'm guessing the main interactions it needs with the OS are file IO. It shouldn't need to do any GUI work as long as it provides proper bindings to the C functions. And file IO is essentially cross platform in C++ as long as you use the stdlib. Threads are also essentially multiplatform if you're using the stdlib. I also don't know if Zig is written in C, C++, or Zig so it may differ.
Generating binaries is different, but I wouldn't consider windows binaries any more archaic than Mac or Linux binaries, and I'm not sure if zig already uses LLVM backend or something anyways.
But given all that, writing basic Win32 code to do file IO or any sort of OS level interactions isn't any less archaic than what I've had to do in Linux. It's an API, and it's got a lot of cruft built up over the years, but so does any sort of Linux OS API.
Here's the Linux API for creating a file[0] and here's windows[1]. There's more parameters for the Win32 version, but the documentation is solid and gives a lot of tangential information. I actually prefer the Win32 docs to a lot of the Linux docs that I've used because they describe all the details very explicitly. So I wouldn't call Windows any more archaic then any other OS.
Basically what I'm saying is, it takes like 2-3 hours at most to add Windows support to a programming language unless you've architected your code in a way that tangles OS operations with regular operations. It's really not that hard to keep OS code separate from the apps logic to make porting the app to different operating systems trivial.
[0]: https://linux.die.net/man/3/creat
[1]: https://docs.microsoft.com/en-us/windows/win32/api/fileapi/n...
C'mon.
The total:
> Showing 26 changed files with 255 additions and 90 deletions.
If you architect your code well, porting between different systems shouldn't take anymore than a few hours ;)
Edit: I just looked through the diff and remembered that the bulk of these changes was fixing warnings that surfaced from using a different compiler.
The actual code that I changed necessary to get this running on Linux was in File.cpp and consisted of 124 lines of code. Going the other way (from Linux to windows) would have been just as simple, I just would have added the code in the __WIN32__ macro block instead of the code in the __linux__ macro block.
[0]: https://github.com/codingminecraft/StreamMinecraftClone/comm...
Not only that, it looks like they do have windows support and it's just failing atm. It also looks like they have cleanly separated all OS functionality from the logic. This is where it looks like the majority of the OS dependent code lives[0], and the implementation for this is 1000 lines of code. So clearly, it looks like it shouldn't take more than a few hours to get even a programming language up and running when porting it.
Further, it looks like they're using the cpp stdlib to assist with some OS dependent functions[1]. They're clearly using at least:
* std filesystem
* std future
* std iostream
* std mutex
* std thread
* std atomic
And more. So if you're being smart about things, which it looks like the developers most certainly are, then you don't need to reinvent 90% of the OS dependent code and can instead use the stdlib that already exists to automagically get that functionality.
[0]: https://github.com/ziglang/zig/blob/master/src/stage1/os.hpp
[1]: https://github.com/ziglang/zig/blob/a9c4dc84f487c4764c578743...
There are so many projects which do well without a native Windows port. It may fade away in three years, but lack of Windows support will not be the primary reason for it.
ASP.NET + Windows, sure that makes total sense. Even C++ + Windows is solid and very performant. But node.js has always been a second class citizen with Windows support (it wasn't until Microsoft themselves put fulltime devs working on node that it supported Windows) and it's a huge bet to take with very little benefit and tons of potential failures.
Not having windows compatibility is not uncommon working on the web.
As an example, out of 100 developers of my company working on a web product, zero are using windows in my knowledge.
I still read often in HN that "most people use iPhones" and "almost no dev uses Windows".
Makes me question if my own beliefs have these enormous misconceptions too.
They seriously couldn't fathom the idea of intentionally following someone they didn't agree with.
So not only are people aware of their filter bubbles, they guard them like it's the responsible thing to do.
Even Microsoft themselves recognise it indirectly, that's the whole reason why they built WSL.
those areas where Windows is still popular account for a tiny percentage of the devs who responded to that survey. The majority of responders define themselves as backend, frontend or fullstack developers - which are web development roles https://survey.stackoverflow.co/2022/#developer-roles-dev-ty...
TL;DR nowadays, most developers are web developers.
PS the reason why the total of all responses is more than 100%, is that this was a multiple selections response.
If you use windows primarily, there's a very big chance it's the ONLY operating system you use.
If you use MacOS or Linux, there are most likely windows machines sitting around too.
In my case, I have a windows laptop from work in addition to a macbook. I'd check both boxes, but I've only opened that windows machine a handful of times for esoteric windows issues.
If this idea held true just 50% of the time, then real use of windows would actually be somewhere around 25% and that's assuming a 100% overlap between the Linux and MacOS people (a bad assumption).
Another telling point is the tiny sliver of WSL responses. MS Server is so incredibly unpopular that even the majority of Azure instances have run on Linux for years now. Writing on Windows without WSL then deploying to Linux is a recipe for disaster.
A question where the reader has to infer a lot is a bad question. They should have asked about how much a particular OS is used.
to be clear, I'm not disputing that in some areas of web dev, Windows is less supported than Linux, I'm just saying that a significant percentage of web devs use Windows, whether or not an open source project decides to keep this into account is obviously not up to me to decide, and I can understand why some projects, especially smaller one, might decide to focus on Unix/Linux in the initial periods.
Yes but how many JS developers use Windows?
How many developers are really working on Windows? That's got to be a rounding-error of zero.
There are so many programming tools with basic or non-existent support for Windows and nobody notices.
I think most programmers are actually using Windows as their development environment.
https://insights.stackoverflow.com/survey/2020#technology-de...
It's hard not to look around with your own eyes and notice that you never see anyone using Windows - like I say, even the Microsoft ones!
Do you meet a lot of developers using Windows? What kind of circles is that in?
I would generally say that native Windows development is in decline, but it's a long slow decline and it's starting from an incredibly high base.
"a rounding-error of zero" is so wildly incorrect that it is very clear you are in a bubble of sorts.
The games industry is primarily Windows based.
(It can be different in some teams - e.g. lots of Macs in VSCode - but company-wide that's an exception rather than a rule.)
If you use windows, you are VERY unlikely to use Linux and OSX. Conversely, almost EVERYONE who uses Linux or OSX will still have to use Windows. If even just half of the Linux users checked Windows, but rarely used it, then Windows would drop to 3rd place.
The overwhelming majority of servers are Linux (even Azure was announced to be majority Linux a few years ago). Despite this, only a fraction of "windows users" also used WSL. Trying to build UNIX software on Windows is fraught with difficulty. The fact that this number is so low either indicates a sampling bias for Stackoverflow or a lot of people checking the Windows box despite not using it a lot.
Also, looking at some strictly web development surveys, Windows is behind Mac/Linux: https://medium.com/codex/jetbrains-django-developer-survey-r...
I'm also a front-end dev using Windows since decades, and I had like 0 problem using this OS.
If we move to .NET5 or higher I might use linux at work too.
This is still a new project — anyone interested in using a new, cutting-edge beta JavaScript runtime is certainly capable of using bun through WSL.
Your comment is unnecessarily antagonistic. It comes across as if you’re personally offended that bun wasn’t launched with native windows support.
Also, this made me laugh:
> …this project will never takeoff until it treats windows as a first-class citizen.
I think you seriously over estimate the number of developers still on windows.
I don't remember any specific "wtf" details, but generally it was kind of a non-starter. I got node installed, but then there were issues with using that runtime for my simple server demo. The whole attempt was frustrating. Tried installing the pseudo Linux shell thing for the command prompt and I gave up trying to use that pretty quickly.
Obviously I'm not a native Windows developer. This was just me experimenting. I'm not sure how Win devs actually work these days on non-Win applications in any productive capacity.
I can easily get stuff done on MacOS and Linux but Windows is just this multi-decade old black box of cruft.
WSL. It's trivial to drop into Linux for development these days.
That said, I generally haven't had issues with Node on native Windows.
I know quite a few people who do, I actually wouldn't be surprised if their number was higher than pure Windows users for web dev.
https://medium.com/codex/jetbrains-django-developer-survey-r...