[HN Gopher] Will Bun JavaScript Take Node's Crown ___________________________________________________________________ Will Bun JavaScript Take Node's Crown Author : kiyanwang Score : 252 points Date : 2022-08-14 08:40 UTC (14 hours ago) (HTM) web link (semaphoreci.com) (TXT) w3m dump (semaphoreci.com) | verdverm wrote: | What is up with buns binary config file? How does one check | dependency versions and warn of security vulns? How can someone | think binary format config is a good idea? | | (edit): https://github.com/oven-sh/bun#why-is-it-binary (though | this does not answer the last question, and only partially the | second) | saghm wrote: | Honestly, I can sort of see it making sense. The only time I | need to look into my lockfile are to see the exact version of | something I'm pulling in, and generally I think I would be fine | doing something like `lock-file-tool --show-me xxxx`. In Rust, | there's a `cargo tree` command to see the tree of your exact | resolved dependencies for when you want to see the whole thing | expanded, so I generally don't use the lockfile for that | anyhow. I certainly don't ever update my lockfile by hand, so | there'd be no loss of usability in that regard. | | That said, I'm not super convinced that performance would | necessitate this; if parsing the text file was really that | slow, I think you could instead have a separate binary file | created whenever the lockfile is changed that has a serialized | representation of the lockfile along with a checksum to ensure | that it's not out-of-sync, then hash the lockfile before using | the binary representation. I guess it's possible that if the | tooling is brittle or people try to edit their lockfile by | hand, this might end up detecting an out-of-sync lockfile more | often than not, but at that point I think the issue isn't | really with the lockfile format. | bduffany wrote: | There's an option to output a yarn-compatible lockfile. In | practice, I think this means you'd need a branch protection | rule to disallow a change to the binary lockfile without | updating the yarn lockfile. I'm not sure that complexity is | worth the performance gain of the binary format, personally. I | think Bun should have an option (maybe in bunrc) to always use | the human-readable format, though that detracts from the | "batteries included" nature a bit. | gervwyk wrote: | Nice article. | | Was listening to this chat [0] recently. Jarred Sumner is doing | really cool things with this! Excited to see where it goes. | | [0] - https://youtu.be/rL4qpniIR7o | williamstein wrote: | That's a great interview. He sites one of his motivations for | wanting to make the dev cycle faster: "if it is slow you get | distracted and read Hacker News"... | JoyrexJ9 wrote: | I've given Bun a spin against several of my older Node.js | projects and the lack of Express support killed it for me. | | As a drop in replacement for Node it has a long way to go. A | promising start, but I'll check back in a year | azangru wrote: | > Will Bun JavaScript Take Node's Crown | | It's far too early to be asking this question. Deno has been | around for longer, and it hasn't decrowned Node yet. | franciscop wrote: | IMHO Deno's has been approaching it "wrong", so it'd never take | over Node.js. Deno has 3-4 big differences over Node: url- | imports/no npm, explicit permissions, web compat, typescript. | | As both a dev and as a package publisher, those are either not | an advantage, or a straight disadvantage. npm, for all the | downsides it has (and it does have them), IMHO has been a huge | net positive for the JS/web community. Explicit permissions on | the land of 100-dependencies is just a non-starter. Web compat | is def the biggest advantage as a dev myself, but Node.js has | finally woken up and catching up. I don't use TS so won't | comment. | | IMHO the main advantage of Deno, like IO.js back then actually, | has been to make Node.js stop being sluggish and actually | accept PRs/new challenging features. | crabmusket wrote: | From Deno's early days, it seemed their goal was to make | something fairly different to Node. Holding up "had it | replaced Node yet" as a yardstick seems misguided. | andrew_ wrote: | Agreed. The guy just wanted to make something he felt was | better. I've never seen a mission statement that said the | goals were to replace Node. It's a separate beast. | nickserv wrote: | I had completely given up on Node and JavaScript in general | until I had a chance encounter with Typescript recently. | Seriously looking at deno specifically for the built in TS | support. Will never touch basic JS again. | wetpaws wrote: | First thing I did is to test bun on my prod build and it crashed | spectacularly. It's nowhere near being ready for any serious use. | jeroenhd wrote: | There are some real obvious downsides to using this tool right | now. Most importantly, the article lists there: | | * Documentation is limited, but Bun's Discord is very active and | a great source of knowledge. | | I'm not interested in becoming part of a community, I want to use | the tool. Without official docs, I'll pass until the project has | matured. | | * Bun is not 100% compatible with Node yet. Not every npm package | works. Express, for instance, is not yet functional. | | I don't expect full bug-for-bug Node compatibility but if | extremely popular packages such as Express don't work, I'm not | sure if any of my projects will even run with this runtime. | | Hopefully, this project will turn into a proper Node replacement | because the Javascript ecosystem can use a big performance boost. | It'll be a while before it'll become part of any pipeline I have | a say in, though. | r_hoods_ghost wrote: | Yep, doing documentation and support through a chat service | designed for gamers with terrible search that means the same | question is going to be asked over and over again and where | most users behave as if they were 15 year olds because that is | the prevailing social norm means I'm going to pass. | acedTrex wrote: | Discords text search is incredible though, It's still not a | good platform for support but not because search is bad | andybak wrote: | > Discord's text search is incredible | | Really? There's no way to do verbatim searches and it's | "very" generous in deciding what it thinks you meant to | search for. It's almost useless for searching technical | posts (or anything when you need to disambiguate similar | words) | MatthiasPortzel wrote: | The primary use case that we're talking about is that | someone has a common error, in which case they can put | that error message into Discord search and read | conversation about previous errors. Discord search is | perfectly adequate for that use case. | antifa wrote: | The primary use case is actually googling the error, in | which discord falls flat on it's face. | | Every external chat room logs service I've seen has also | had bad SEO, buggy, bad UI/UX, etc.. | andybak wrote: | That's fairly close to my use case for which Discord | fails miserably. | | But let's not get stuck on this point. There's a dozen | other reasons why Discord shouldn't be used for technical | forums | TechBro8615 wrote: | It's far better than Slack's search, which limits you to | the last 10,000 messages unless you pay them a fee per | member in your community. | mulmen wrote: | > But according to Butterfield, Slack is actually an | acronym. It stands for: "Searchable Log of All | Conversation and Knowledge." | | https://www.businessinsider.com/where-did-slack-get-its- | name... | cercatrova wrote: | This might change in the future as Discord tries to | recoup their VCs' investment. See GitLab for a recent | example. | TechBro8615 wrote: | GitLab is charging for metered compute minutes, which is | hardly an unreasonable bargain for users who have been | them for free for two years. Slack's feature-gating is | disconnected from any unit economics - indeed, they | actually do _store_ the messages prior to the most recent | 10,000, but they just refuse to index them. The cost of | that indexing is relatively minimal and does not scale | linearly with number of users. | andybak wrote: | I'm stuck with an open source project on Discord for a mix of | developers, artists and casual users across a wide range of | age groups. I'd love to migrate off but I honestly can't | think of the right platform. | | 1. Lots of people like realtime chat. It's worth having | _something_ that fills that niche (the old "mailing list + | IRC" combo used to work well) | | 2. Forum software is usually fairly awful. I don't want to | install some 15 year old pile of PHP with bad UX. | | 3. A "Stack Overflow" style site requires a lot of moderation | and either annoys users for being too messy or annoys users | for being too strict | | 4. I actually still have some fondness for Google Groups but | Google's brand is too tainted for most people. | | 5. Nobody under 30 seems to use email any more so mailing | lists are out but something that syncs with email is a must | (reply notifications etc) | | I am also hoping for something free but very easy to install. | (SaaS with a free tier, one-click docker or similar). And | easy on resources ideally (I guess $10/month for hosting is | about our limit at the moment) | | Yeah. I'm asking for a lot. | citizenkeen wrote: | Nobody's saying don't use Discord. But that shouldn't be | the home of the documentation. | andybak wrote: | Well - I am kinda saying "don't use Discord" - at least | except for specific cases where it's ephemeral nature | isn't a liability. I personally wish I wasn't so tied to | it. | dimal wrote: | How about GitHub discussions? One open source library I | depend on uses it to good effect. You could keep the | Discord for realtime chat for stuff that should be | realtime. Of course, you'd probably have to make effort to | push support questions to GitHub. People would probably | still ask questions there. | dom96 wrote: | > 2. Forum software is usually fairly awful. I don't want | to install some 15 year old pile of PHP with bad UX. | | Isn't Discourse an answer to that? | rapnie wrote: | Yes, can use Discourse for async, long-term | communication. Or Flarum if you want something more | modern feeling (but with a lot less features). | | And then Matrix for real-time chat. Bridge it to IRC if | you want. Search is not great in Matrix but sufficient | for simple keyword searches. | synergy20 wrote: | I just checked out Flarum the other day, why is it more | modern? I actually found Discourse is still much better. | Flarum does not even have nested reply threads as far as | I can tell, it's all flat and hard to read for any thread | of replies. | rapnie wrote: | I far prefer Discourse myself, and it is superior in | useful features. "More modern" is mostly what I heard | others saying in response to me recommending Discourse. | Suppose it is a look&feel thing mostly, and personal | preference. That said, you can customize Discourse quite | extensibly. | e12e wrote: | Did you look at zulip? https://zulip.com/ | | I'm not convinced it's better than irc+proper mailing lists | - but given that real users are stuck in awful mail clients | (like web/Gmail or outlook) - mailing lists isn't a great | option any more. | | Main thing I miss from zulip is a proper weechat plug-in | (like wee-slack) - although the official cli client isn't | terrible - it's just not irc-like. | BbzzbB wrote: | Why is something like Gmail an awful client and what does | a great client have (or has not) that it doesn't (or | does)? | kevinmgranger wrote: | Yeah, I don't quite get it. The problem with mailing | lists is their fundamental design, not the clients for | them. | e12e wrote: | Mutt/pine (or newer clients like sup/notmuch) are faster, | handles quoting/threading better, allows decent keyboard | operation and is workable with high-volume of email. | | My biggest issue with Gmail (as someone who interacts | with users of Gmail) - is that it generally breaks | quoting _and_ hides this from Gmail users with its magic | conversation view. | | Outlook(web) does atrocious top-quoting rendering it | useless for mailing lists. | | In general the web interfaces doesn't work well with | hundreds/thousands of mails IMNHO. | | They also tend to needlessly lean on html formatting | rather than plain text - with things like "my replies in | blue" - rather than just proper quoting. | | Ed: in general I've just given up the idea that the | average user has any hope of interacting well with email | lists - which means such lists aren't useful for general | discussion (but can still work for specialist groups like | Linux kernel etc). | | The conclusion being that one will need "something else" | for a general audience. | | Zulip might be a reasonable compromise. | na85 wrote: | >Outlook(web) does atrocious top-quoting rendering it | useless for mailing lists. | | The weirdly aggressive way people talk about top vs | bottom quoting is probably one of the things turning new | users away from mailing lists. | megous wrote: | Gmail can't do basics properly like replying in the | middle of a quoted text, etc. It shows you something | relatively sensible, but sends completely garbled mess to | the recipient. | [deleted] | bashonly wrote: | i think element (matrix) could work for you. it can't do | email notifications, but if you have the mobile client on | your phone you can get push notifications. | [deleted] | mderazon wrote: | What about GitHub Discussions ? | (https://github.com/features/discussions) | | I am not seeing a lot of projects adopting it and I wonder | why because it seems quite good to me | toastal wrote: | It's locked behind a proprietary service/account owned by | a publicly-traded corporation, Microsoft, with | shareholder value obligations. The other options listed | in siblings can be self-hosted, are all open source, and | some don't require a an account or at least support a | form of decentralized identity. | cmeacham98 wrote: | Matrix? Assuming you don't want to host your own homeserver | you can make a room/space on matrix.org | silvi9 wrote: | Have you tried Outverse?[1] It's a new startup aiming to | solve this problem, with support for forum spaces, threads | and more. I've been using it for some time now and would | definitely recommend it! Makes it easier to save threads, | common questions, etc and has a super intuitive interface | overall. I'm looking forward to using it for my open source | project, and it solves a lot of the problems I've had with | current platforms. | | [1] https://www.outverse.com/ | zzo38computer wrote: | I think NNTP+IRC is good, and you can have bridging to | other services if desired (which is probably a good idea | too). You should also make logs of the IRC; the IRC channel | for my project has public logs. | | Discourse and Flarum are even worse, in my experience. | | However, having chat services does not substitute for | having documentation; you should also have good | documentation, too; you should not expect someone to only | ask questions. | mizzao wrote: | Would Reddit fit your bill? | djbusby wrote: | Mattermost? And all your chats are in Postgres so you can | build all kinds of fun magic on top. | smrtinsert wrote: | Thr just reinforces the power of the java community to me. | Servlet container is completely a choice built around standards | unlike the js community where it still seems to be node or | bust. It makes java look light years ahead of js. | thayne wrote: | Another concern I have is that cool as zig is, it is still | pretty unstable, with breaking changes almost every release. | So, I'm not sure i would want to trust this with production | code. | highwaylights wrote: | True story: "But our Discord is very active" is the new "hard | pass". Tell your friends. We're gonna make fetch happen. | hn_throwaway_99 wrote: | In one sense, I completely agree with your central point: Bun | isn't yet stable enough or mature enough for production, "Node | drop in" usage. | | But on the other hand, when I look at Bun I think it has heaps | more going for it than Deno. The fundamental value prop of | offering better performance (both runtime and developer | experience) is huge, and something that would get me to want to | use it. Contrarily, while I see a number of improvements in | Deno, the vast majority of them seem to be "niceties" that | solve some initial "setup" issues that can be painful in Node - | but since I already _have_ taken care of a lot of those Node | issues in my own projects, there is not a ton that I see | compelling in Deno. | | Point being, if I were a betting man, I'd easily put all my | chips on Bun vs. Deno. It's a "plan where the puck is headed" | vs. a "plan where the puck is now" approach, and from that | perspective I see a lot more value in Bun. | modernerd wrote: | > ...I already have taken care of a lot of those Node issues | in my own projects, there is not a ton that I see compelling | in Deno. | | I felt this way too before using Deno for a while. So far I | enjoy: | | - Breaking from npm/node modules support on purpose turns out | to be a real plus for me. It's refreshing to have | dependencies referenced by URL, and it's good to have them | cached centrally by default (in $HOME/Library/Caches/deno on | macOS and $XDG_CACHE_HOME/deno or $HOME/.cache/deno on Linux, | for example). | | - Use of web platform APIs | (https://deno.land/manual/runtime/web_platform_apis ) and the | work to standardise those across platforms | (https://wintercg.org/ ) is encouraging. | | - `deno lint` and `deno fmt` make adopting and using JS/TS | feel more like Rust/Go/other languages with good built-in | ceremony-free tooling. | | - Fresh is turning into a very nice Next.js/Astro alternative | (https://fresh.deno.dev/ ) that I found very easy to learn | and deploy, with great performance and developer experience | out of the box. | | Bun is interesting, but I wish it didn't embrace node | modules: perpetuating its use instead of attempting to move | the community on by recognising it for the mistake it was | feels sad to me. (See Ryan Dahl's "Design Mistakes in Node" | PDF or talk for more: https://tinyclouds.org/jsconf2018.pdf | and https://www.youtube.com/watch?v=M3BM9TB-8yA ) | mulmen wrote: | Discord scares the crap out of me. I just don't trust the app. | I couldn't figure out how to stop it from opening on boot. And | it has access to my camera and mic for some reason? Managing | identities across different communities seems leaky at best | because I think I have to change my name _after_ joining. I'm | sure a lot of this is my own ignorance of the tool but I have | no interest in learning a modern gamer chat service. None of it | is going to stay the same in 10 years, or even 10 weeks. That's | all a hard pass. | | This says nothing of what a terrible choice it is for a | knowledge base, especially long term. The only way you choose | Discord is if you aren't thinking beyond the "next release". | That's a huge red flag in a fundamental framework project like | this. | userbinator wrote: | _And it has access to my camera and mic for some reason?_ | | That's not unexpected given that it has voice and video chat | functionality. | | _if you aren't thinking beyond the "next release"._ | | I think that lack of long-term thinking is endemic to the JS | community in general, unfortunately. | kayodelycaon wrote: | Changing your nickname on a server doesn't hide the name used | on your account from anyone. This is why I'm not on my work's | discord server. | kaetemi wrote: | You can have multiple accounts in the Discord client now. | yashap wrote: | It's a work in progress, it's definitely not meant to be ready | for production workloads yet. It's in beta, I'm assuming if | they do get to a full stable release, node compatibility will | be far better, Express will work, official docs will be | improved, etc. | chiefalchemist wrote: | To your point, it would be refreshing - and appropriate - if | more projects baked "documentation-first" into their purpose. | For all intents and purposes it's "marketing materials". When | it's lacking, as you noted, it creates doubt. "Join us?" Huh. | Join what?!? | | This is one of engineering things that happens year over year. | We all understand the value of good docs. Yet it keeps | happening. Why? | jamesgpearce wrote: | Agree. But it's not either/or. I invested easily hundreds of | hours in docs before launching TinyBase.org - but I don't | think it made the subsequent community building challenge any | easier. | chiefalchemist wrote: | Yes, fair enough. And I'd like to add | | Docs !== community | | Docs === Odds of gaining traction | | To your point, achieving community is a whole other beast | to battle. | yen223 wrote: | Because a poorly-documented product that does something, is | much better than a well-documented product that does nothing. | | Engineers have to decide where to spend their time, and | taking time away from feature development when your early- | stage product doesn't have many features is not a winning | move. | wruza wrote: | True, but if it's too early for a good documentation then | talking about taking someone's crown is too early as well. | replygirl wrote: | > a poorly-documented product that does something, is much | better than a well-documented product that does nothing | | not necessarily. with the latter, you know the constraints | of a solution and can make an accurate judgment on whether | it's worth using | lewisl9029 wrote: | These days now that I'm fully in charge of building my own | product, I often wonder if we place too much emphasis on | centralized documentation sites that users have to | deliberately seek out and visit vs in-context documentation | snippets that show up as closely as possible to where users | might actually need them, deeply integrated into the product | and user journeys. | | Users don't search for documentation for the sake of finding | documentation. They search for documentation because they | want to know how or if our product can solve a particular | problem they have. My hypothesis is that the documentation | discoverability problem is really just a symptom of the | product discoverability problem, and that centralizing docs | in 1 searchable website to make docs "discoverable" is only | addressing the symptom, when that effort can be much better | spent addressing the root cause by making the product itself | more discoverable and deeply integrating useful documentation | into it. | replygirl wrote: | > centralizing docs in 1 searchable website to make docs | "discoverable" is only addressing the symptom | | a searchable docs website is the most important thing for | me. having to "discover" an api by stepping through code | and comments is a waste of time--only useful when you | already know the basics, which requires documentation | spacephysics wrote: | That's what kaseya is doing with their software, basically | having contextual assistance for each feature as an "AI | Buddy", where users can choose to listen/learn or just | continue using the product, all integrated as one | [deleted] | skybrian wrote: | I read the documentation before downloading anything, to | find out if the software will work for my problem. I'm not | sure that "in context" helps with that? | vlovich123 wrote: | Centralized documentation is valuable for several pieces: | | * Easily get an overview of the entire API. I may just be | scouting the library, so I want to understand what the API | looks like. | | * Examples as a starting point. How do I use your API? | | * Makes your product more discoverable / approachable to | potential users. | | Think of your users like a funnel - how are they using the | library? What are the common reasons you're losing | potential users? What are the common reasons you're losing | existing users? Users are also different so you have to | analyze by cohort. | | Now can something better be done? Maybe It takes a lot of | work and would have to address the above issues and I don't | know if it would necessarily change the need for something | centralized. | lioeters wrote: | I think it's because documentation (and design) requires | different skills than writing code. A great programmer is not | necessarily a good writer or designer. There are rare gems, | people who have a balance of such skills, but most of us | struggle to write useful documentation, even the bare minimum | necessary for others to get started - or any at all. The | code, or the lead dev's brain, is the documentation. | | A perfect example of this is documentation generated from | docblock comments. Some projects only have such docs, and | expect users to go from there. It's as if programmers | envision their audience as another machine to program. | | I feel similarly about business/marketing aspects of software | projects. Many programmers seem to assume, "If you write it | (the program), they will come." | | Successful software is so much more than just the code, it | usually involves a communal effort of various skills, | especially human communication, including writing good | documentation. | steveklabnik wrote: | Many engineers do not value good docs, even if they say they | do. | | Many people won't read them at all, no matter the quality, | and so it can feel like work wasted. | | Plus writing docs is a different skill set than writing code | that many simply don't like to do. | thinkharderdev wrote: | The boring (and probably mostly correct) answer is that | engineers don't like writing documentation so it is the last | thing to get done, if it gets done at all. This is especially | true of FOSS projects. You may be motivated to spend your | free time hacking on something cool and interesting, but | spending your free time writing documentation is another | matter. | [deleted] | Waterluvian wrote: | Docs aren't the fun part of dev. | beebeepka wrote: | They are more fun to me than writing tests | agumonkey wrote: | Unless you make it programmable | lelanthran wrote: | > This is one of engineering things that happens year over | year. We all understand the value of good docs. Yet it keeps | happening. Why? | | Because doing anything is is irrational? | | Time is finite, only a rounding error number of projects | (especially open-source ones) are going to be successful, | with or without docs. | | Only an irrational developer would think that they are going | to hit the 1-in-a-thousand jackpot with their project. | | Any time spent producing documentation is _time not spent_ on | adding features and fixing bugs. | | Spending time on documentation over and above the bare | necessity needed to get out a working product "just in case | we win the jackpot" is simply irrational. | | This is probably why you don't find many projects spending | significant startup time on good, clear and comprehensive | docs (as opposed to a README and an FAQ and nothing more): | the ones that do as you suggest mostly die before even | getting users. | | TLDR; don't treat your startup project as if you already have | 5m users who depend on you. The odds are that you are never | going to get to that point without a good product, and the | better the product, the fewer the docs needed. | whynotminot wrote: | It's not fun to write documentation, and for documentation to | be good, it has to be persistently updated. | | It takes a lot discipline to do things right. | gervwyk wrote: | Because being a small project with limited resources requires | devs be as resource efficient as possible. Docs, demos, tuts | are all super important but it creates an additional | maintenance overhead - if they are not maintained up to date, | they become worthless. | | So for the early stages of a project it makes sense to keep | the overhead low and work with a small group of focussed | early adopters. | | As projects grow, mature and become more stable, more | investment into learning material becomes important. Doing it | too early burns valuable resources. | chiefalchemist wrote: | > As projects grow... | | I'd argue _if_ should replace _as_. The point being docs | are all but essential for growth (and added participation). | To neglect them is self-defeating. | | Put another way: Docs are an investment. They have a known | return. | | Again, we've seen this. We know this. Yet again and again | there's case after case of docs denial. | rikroots wrote: | I've been working on my OS library for 9 years now, almost | entirely by myself. For the majority of that time I kept | documentation separate from code. Now I do enjoy | documenting stuff - I have diplomas in both Computing, and | Creative Writing - but my various approaches to documenting | the project would start off with the best intentions but | soon enough degenerate into an irrelevant mess as I tweaked | code, forgot to update related webpages and demos, etc. | | In 2017 I stopped working on the project entirely: I'd | coded up a new major version of the library but never | released it because knowing I had to overhaul and re- | document so many different pages, demos, etc ... like a | dementor, it sucked all joy from me. | | Then in 2019 I recoded the entire project from scratch. | This time I thought about the documentation first, before I | wrote a line of code. I decided the best approach was to | generate the main documentation from inline comments. I did | this for both core code, and for demo examples - the demos | stopped being standalone afterthoughts and became instead | my end-to-end testing suite. To present the documentation | to any developers who might show an interest in the | library, I coded up the library's website in a way so that | the core documentation[1] and the demos[2], with easily | accessible code, could be very easily copied over to the | website whenever I rebuilt the library (which regenerates | all the documentation). I also added a set of lessons to | the website, and a set of "How do I" articles - both of | which are an ongoing project. | | The library's website doesn't have any functionality where | users can ask questions - but that's what the GitHub issues | and discussions pages[3] are for. | | The system isn't anywhere near perfect (I still need to | automate the demo testing, for example, and there's no CI | for copying stuff from the repo over to the website, etc) - | but, given the depressing messes I've managed to fall into | in the past ... it's working really well for me! | | [1] - https://scrawl-v8.rikweb.org.uk/documentation/ | | [2] - https://scrawl-v8.rikweb.org.uk/demonstrations/ | | [3] - https://github.com/KaliedaRik/Scrawl-canvas | simonw wrote: | I've learned over time that it's much easier to | incrementally update existing docs than it is to add them | to a large project from scratch - so every single one of my | projects, no matter how small, now has documentation from | day one. | | As I add new features I update the docs to reflect the | changes, trying to keep those documentation updates in the | same commit as the tests and implementation. | | Since I started doing this the quality of documentation I | produce has gone up a ton, because I'm constantly | exercising those muscles. | | It's been a huge win for my coding quality and productivity | too - I don't have to remember as much stuff because I can | refer back to the docs, and documenting as I go along | causes me to make much better design decisions. | | Worth noting: I'm a native English speaker writing | documentation in English, and I've been blogging frequently | and writing online for over twenty years so I've | accumulated a LOT of writing experience. So what's easy for | me may not be easy for other people! | gervwyk wrote: | This is good advice, thanks. Really want to practice my | writing more as well. | beebeepka wrote: | Good point but writing and maintaining README.md files | for your solo projects is nothing like writing proper | docs for big projects with multiple contributors and | users. That's a full time job, isn't it? | | Writing non-code is easy and fun to me - I used to do it | for a living - but when I am pressed to deliver features, | documentation takes a backseat. Also, I've never felt | like documenting other people's code | BaculumMeumEst wrote: | because time is finite | | if you spend your time making sure your product works but | don't write thorough documentation, it can become a breakout | hit even though some hacker news commenters may complain | about a lack of good documentation | | if you spend your time writing great documentation, the | product will suffer and nobody will use it | jcpst wrote: | > if you spend your time writing great documentation, the | product will suffer and nobody will use it | | This is an unfortunate perspective. And I could say the | opposite is true. If you don't spend time writing great | documentation, your product will suffer and nobody will use | it. | | Documentation gets neglected because developers don't feel | like doing it. If you are building a product for | developers, documentation is critical. | rswail wrote: | Because people are "scratching an itch", not creating a | product. Most engineers are terrible at writing | documentation. | chiefalchemist wrote: | True. Adding tho' that the original topic isn't a side | project. It's a team bringing something to market and | looking for participants. | | And to your point, writing docs *is* something to consider | when building the team. As is making sure the culture has a | reward system if such behavior is important. | sbmthakur wrote: | > Documentation is limited, but Bun's Discord is very active | and a great source of knowledge. | | What sort of knowledge are we talking about? | toastal wrote: | The kind that requires another proprietary account behind a | nonfree service to get access to. | Bolkan wrote: | And it doesn't address the semver malware injection bug | demonstrated by colors author. Funny isn't it, any one of the | thousands of npm package authors can inject a malware into our | computers and nobody gives a shit. | | https://snyk.io/blog/open-source-npm-packages-colors-faker/ | Supermancho wrote: | > And it doesn't address the semver malware injection bug | demonstrated by colors author | | [Not a fan of Bun] In Bun, you can pin versions with | package.json just like in node.js | | What would address the malware injection when someone chooses | to auto-update packages as part of a build? | Bolkan wrote: | You can only pin your direct deps. | leodriesch wrote: | A lockfile is a way to lock your indirect dependencies. | If you only install based on the lockfile every | dependency is pinned. | Bolkan wrote: | You cannot audit and pin all your transitive | dependencies. The amount of churn tge lockfile goes | through is insane. | phantomathkg wrote: | Betteridge's law of headlines. No. | seizethecheese wrote: | The "what is bun" section explained almost nothing for me. Is | there a better explanation? | conaclos wrote: | I follow bun since the start and its author has achieved a | tremendous work! | | However, I am a bit afraid of the rapid growth of the project. I | could appreciate a slower growth in order to think twice about | the direction of the project. It could be terrible to have new | tools' specifics in a world already crowded by them. | lioeters wrote: | From the start of the project, at least from when I first saw | it, it seemed to me that the author already has a long-term | vision for the project, and the direction it should go. | | There was a list of super ambitious goals, like replacing | Node.js, NPM, Webpack, etc. It's been impressive to watch how | the project is making such progress in achieving them. | | So I think the rapid growth is a good sign that the project has | communal support and momentum. I'm looking forward to seeing | what Bun becomes, maybe more excited about it than Deno. | lloydatkinson wrote: | I think it's really unfair to Deno as thats existed for many | years and gets ignored meanwhile a hobby project is being touted | as "the node replacement". | hu3 wrote: | Deno is featured here frequently. Plus they had $21m in | funding. | | I woudn't call it unfair. There's space for both. | conaclos wrote: | The post is wrong about Deno's node comparability. Deno has | actually a node compat mode [1] | | [1] https://deno.land/manual/node/compatibility_mode | dimgl wrote: | True, but in practice it barely works. | russellbeattie wrote: | This thread reminds me of the comments on Slashdot when the iPod | was announced. A single guy launches an amazing project after a | year of solo work. | | The response a month later: "No docs? Pfft. Useless." | birdyrooster wrote: | Node never had a crown. It's a dirty turd. | junon wrote: | Not until they remove URI-based imports. | dimitrios1 wrote: | OK now in true JS fashion, somebody make a combo of the two | | - Bun lacks Denos best feature which is the permission system / | sandboxed by default operation | | - Deno lacks Bun's best feature which is backwards compatibility | with NPM | vips7L wrote: | Are there any benchmarks between Bun and GraalJS? | dgreensp wrote: | Installing a gigabyte of NPM packages (or whatever is being said | to be faster) _a little bit faster and a little bit worse_ is not | that interesting IMO. | | I actually use Deno right now because I only use a handful of | third-party dependencies in my project, and I can use Deno's | bundler instead of webpack (even though that's not its intended | use). I'd rather simplify away the stuff that's slow and | complicated rather than making it faster and more complicated | (less correct, less compatible). | BiteCode_dev wrote: | So after node, the ion, then the merge, then deno, now bun. | | JS started to get a bit sane, but I guess we are going back to | fragmenting and madness pretty soon. | andrew_ wrote: | Not really. Know your history first. Node split to io.js due to | team disagreements and fragmentation. io.js made an immense | amount of progress, adopted semver, and had all the momentum. | At the time, Node was stagnant. The choice to merge was | rational and good. Deno is a separate project, and while has a | node compat mode, is meant to be a TS-first ecosystem with many | different rules and methodologies. Bun is an experiment to see | if it's possible to build node greenfield today. Only the brave | will use it in prod, and only the wild mustangs of management | will allow it. | | Try not to give into FUD. The JS universe is fine. | treis wrote: | 1 GB+ files to create a react app seems pretty crazy to me. | That's an order of magnitude more than Rails. | andrew_ wrote: | perfectly reasonable to choose not to use react for that | reason. CRA is also known to be very bloated. See Vite et | al. | matsemann wrote: | Speed isn't really the biggest factor for most of my node usage, | though. Of course, if it's a drop-in replacement one might | switch. | | An aside, but as a non-native speaker and haven't heard of Bun | before, an all-capitalized title is very confusing. "Who is Will | Bun"? | AlfeG wrote: | For me speed issue is totally solved by Vite. Moved whole | project to it including old legacy scripts. | papito wrote: | Speed nowadays is almost an anti-goal. | | People choose the "fastest" language or framework, then add a | bunch of lazy ORM queries without really knowing how to | properly leverage a performant database, stitch together a | bunch of "microservices", adding multiple HTTP trips across the | wire, and by that time the performance of the core language is | a rounding error. | makeitdouble wrote: | To note, nowadays node is not just for production runtime. | Anything related to tooling (compilation/check/bundling etc.) | for instance will benefit from faster runtimes. | | Also, having a slower runtime only marginally push people to | code more efficiently (e.g. people wanting to use an ORM will | do so either way) | nickserv wrote: | Sure, until you're stuck on some inner loop with a poorly | performing language. | | Of course,if you're doing microservices correctly, it should | be easy to separate the parts where performance is important | and write them in a language optimized for that. | lpapez wrote: | I got a PHP gig recently (after working as a Go developer for | some time), and this rings very true to me. In PHP you often | have to make the most of your database, and this tends to | result in a far more enjoyable codebase experience. | crabmusket wrote: | Are you saying that performance can't be outsourced? | jraph wrote: | Yes, I had to backtrack while parsing this sentence. Not all- | capitalized would not have helped, "will" is still the first | word, so would get capitalized regardless, and Bun is a proper | name that would also get capitalized. It doesn't help that | "bun" is a kind of bread, and is also part of the name of the | "bo bun" dish. | | An "?" at the end would have helped a lot though. | rwalle wrote: | "No native Windows support" should be written in all caps at the | beginning of the article. This is a dealbreaker for most | developers working on Windows, and this project will never take | off until it treats Windows as a first-class citizen. WSL helps | but not everyone uses it (probably most people don't use it for | regular development environment). | | Don't believe me? Just wait and see how this turns out in three | years. | mytydev wrote: | We should also talk about why this is the case. JavascriptCore. | The reason Bun is so fast is mostly due to the fact that it is | using Apple's JavascriptCore and what all of the benchmark | comparisons are really doing are comparing Google's V8 engine | to Apple's JavascriptCore engine. | | 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. | wffurr wrote: | You can use JavaScriptCore on Windows right now: | https://github.com/Lichtso/JSC-Standalone | Hamcha wrote: | Zig, the programming language Bun is written on, is currently | having some Windows headaches of its own: | https://github.com/ziglang/zig/issues/12420 | | I wonder how much of Bun's immaturity is due to Zig's own | immaturity. | dimgl wrote: | Why not point the finger at Windows? Development on Windows | is archaic. | _gabe_ wrote: | > Why not point the finger at Windows? Development on | Windows is archaic. | | 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... | ripley12 wrote: | I was with you until "it takes like 2-3 hours at most to | add Windows support to a programming language..." | | C'mon. | t_mann wrote: | > probably most people don't use [WSL] for regular development | environment | | 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. | o_m wrote: | Windows users are fairly conservative and won't be looking at | the latest tech that isn't established yet | geuis wrote: | On a lark recently, I tried to get node setup on my Win10 | gaming box so I could try out a basic workflow and see how I | liked it. My normal environment is using MacOS and Linux. | | 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. | ripley12 wrote: | > I'm not sure how Win devs actually work these days on non- | Win applications in any productive capacity. | | 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. | qbasic_forever wrote: | I am genuinely curious who is using production node.js web apps | on Windows server OS. I'm sure there are niche things like a | massive legacy Windows shop that's slowly moving off, or | trivial load internal applications where it doesn't matter. But | it would really surprise me to see someone take a major bet on | running large public, internet facing load on node + Windows | server. | | 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. | teaearlgraycold wrote: | > This is a dealbreaker for most developers working on Windows | | Yes but how many JS developers use Windows? | skrebbel wrote: | Lots | thrown_22 wrote: | >Just wait and see how this turns out in three years. | | I think you seriously over estimate the number of developers | still on windows. | Siilwyn wrote: | Are you sure? From let's say the 100 web devs I encountered the | past years I remember 3 using Windows, and they all used the | Linux environment for development. | JoyrexJ9 wrote: | Not saying you're wrong about the windows support but when it | comes to WSL, my entire department uses WSL for their primary | development environment | quickthrower2 wrote: | Ooh. I find it a bit painful. Stuff like watching for file | changes if you mount C:/ don't work. Adds friction to web dev | for sure. | isbvhodnvemrwvn wrote: | Dogshit IO performance when accessing native files makes it | unusable for me. | JoyrexJ9 wrote: | I suggest never access native files, if you are still | keeping your code in C:\ somewhere I think you're | approaching WSL the wrong way. Go all in and I've never | looked back | sanitycheck wrote: | I'll second this. I treat WSL (2) as a Linux box I'm | working on, which I can access via a terminal and \\\wsl$ | (and VS Code, crucially.) | dom96 wrote: | This is why I don't use WSL 2. WSL 1 has much better | performance when used on C:\ | madeofpalk wrote: | I think "WSL is our Windows strategy" is perfectly acceptable | for "bleeding edge"/modern things like this. I've been using | WSL as my full time web development environment for years now. | Thanks to VSCode's great remote support for it I don't notice | any downsides to it. | mderazon wrote: | I don't like WSL, it magically works with VScode until it | doesn't and some extension breaks or it runs super slow or | git commit takes 10 seconds. | flohofwoe wrote: | Fair point, but I sometimes wonder if there are even any web | developers left who use Windows as their main platform. The one | thing that has probably changed most in the last 15 years is | that Windows isn't the center of the (coding) universe anymore. | And (from what I can tell), Windows support with node.js isn't | perfect either, otherwise tools like rimraf wouldn't be needed. | AlfeG wrote: | I'm working in web Dev for a decade. Yet have to see at least | single Dev using linux. Have seen several working on Mac, | both designers to QA. Strictly speaking I'm a bit biased, | cause work in . net stack. But still. | mastazi wrote: | This might be the case in your specific social circle, but it | doesn't seem to be generally true | https://survey.stackoverflow.co/2022/#section-most- | popular-t... | infamia wrote: | Those numbers are all developers overall. In the Django | developers survey (i.e. web only), Windows is just above | 10%. The most used platform is Linux (42%), Mac 32%, | Windows with WSL (i.e. Linux in a VM) 17%, and straight up | Windows is a paltry 12%. In other web frameworks the | numbers are likely worse, since Django has a pretty good | Windows support. | | https://medium.com/codex/jetbrains-django-developer- | survey-r... | mastazi wrote: | Actually, they are mostly web developers | https://survey.stackoverflow.co/2022/#developer-roles- | dev-ty... | | 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. | flohofwoe wrote: | I'm coming out of the game development 'social circle' | which is still a Windows fortress, but even there the wall | is slowly cracking ;) In general I notice more and more | that 'new peeps' are not automatically familiar with | Windows, but instead started to tinker with programming on | Linux. | M4v3R wrote: | We are talking about web development, while the survey you | linked is about all software developers. No one argues that | Windows is king in software development world in general, | but for web development I would argue Linux/Mac duo is way | more popular. | mastazi wrote: | > No one argues that Windows is king in software | development world in general, but for web development | | 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... | mark_and_sweep wrote: | Any data to support this claim? I'd argue the opposite: | Especially in web dev, Windows is king since most people, | including semi-professionals, do some sort of web dev. | throwaway0asd wrote: | If you are developing for the web what difference does the OS | make? Web technologies work the same on any OS | CapsAdmin wrote: | While the final output should be the same, the development | tools are not and that's really where all the subtle | problems are. | | One of the reason WSL exists is to solve this problem. | | (assuming bun doesn't work on native windows but works | under wsl) | searchableguy wrote: | You cannot install safari on Windows and Linux. If you want | to support apple users, you need to get a mac. | | Safari often has bugs and rendering issue which aren't | present on Chromium or Firefox and need fallback. | flohofwoe wrote: | Mainly subtle differences around command line tools and the | file system. There are UNIX cmdline tools collections for | Windows (like busybox) running in the vanilla cmd.exe or | Powershell, but they don't quite fit in (for instance the | way how string escaping and cmdline argument parsing | works). You can use bash in a mingw 'UNIX emulator', but | then you can just as well switch to WSL. And those little | things propagate and amplify upward into toolchains and | workflows. | | 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). | Zardoz84 wrote: | Windows it's painful slow to do anything. | pmontra wrote: | Sometimes the target OS for deployment matters. Obvious | case I run into: a deploy broke because a developer using | Windows didn't realize he had some MiXeD case file name | with the wrong capital letter. The Linux OS on the | production system noticed. Sometimes it's the availability | of native modules. They tend to exist for Linux, because | it's the target for deployment, and sometimes not for | Windows. | davidmurdoch wrote: | Basic CI tests should catch those cases. | pmontra wrote: | The file names yes, modules are catched at development | time. "We can't use PackageX because it doesn't exist for | Windows and Joe won't be able to run the project | anymore." A VM first and WSL2 now solved much of those | problems, which leaves us at why bothering with Windows | in this kind of business tough. | 542458 wrote: | As a web dev, my choice of OS influences: | | * 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. | tyingq wrote: | Lots of little gotchas if you don't at least do a fair | amount of testing on Windows, since that's what most of | your end users (usually) will be on. | | 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. | Tade0 wrote: | > Fair point, but I sometimes wonder if there are even any | web developers left who use Windows as their main platform. | | 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. | tyingq wrote: | If that's because you're using wsl-vpnkit, you might want | to see this commit: | | https://github.com/sakai135/wsl- | vpnkit/commit/94a85aaf4db365... | sanitycheck wrote: | I swapped between Windows and Linux (Mint/Pop) for a while | because quite a lot of JS ecosystem things were problematic | on Windows. WSL2 has solved most of those problems though. | | 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. | tyingq wrote: | >if there are even any web developers left who use Windows as | their main platform | | 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. | rr808 wrote: | > There's quite a lot of developers at stodgy Fortune 500 | non-tech companies | | "Quite a lot"? There are more developers at Fortune 500 | than FAANG for sure. | paavohtl wrote: | > And (from what I can tell), Windows support with node.js | isn't perfect either, otherwise tools like rimraf wouldn't be | needed. | | 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.... | andrew_ wrote: | Health care, logistics, law, finance, retail - there are a | number of major industries that all still use Windows as | primary. I have a good friend working in tech for Walmart, | and another for a major hedge fund; both are Windows shops. | | 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. | ledgerdev wrote: | It might not seem like it but a vast majority of developers | exist outside of hacker news sphere and have no doubt that | windows is by far the most popular dev platform. WSL2 is | making this a lot easier to use linux though. | MBCook wrote: | Yes. My entire company. And it's not some little 5 person | shop. They starred that way long ago and continue to this | day. | jpambrun wrote: | I hate it but where I work WSL is not allowed and Docker | requires continuously renewed exceptions.. InfoSec/IT says | they can't see what we (or malware..) are doing within.. | jeswin wrote: | > Don't believe me? Just wait and see how this turns out in | three years. | | 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. | quickthrower2 wrote: | It is the other way round: Windows support usually comes | because something is popular (and therefore has the funding, | resources or help to do so from keen Windows users). | cr3ative wrote: | Web development is predominantly macOS and Linux; node servers | generally run in Linux containers. Your claim that this won't | take off until Windows is at parity just doesn't ring true. | andrew_ wrote: | several folks in the threads here have posted references to | the contrary. perhaps you have data which disagrees, or you | may be operating on observations from your own circles. | infamia wrote: | Those numbers were all developers overall. In the Django | developers survey, which is web only, the most used | platform is Linux (42%), Mac 32%, Windows with WSL 17%, and | straight up Windows is a paltry 12%. In other web | frameworks the numbers are likely worse, since Django has a | pretty good Windows experience. | | https://medium.com/codex/jetbrains-django-developer- | survey-r... | chrisseaton wrote: | > This is a dealbreaker for most developers working on 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. | quickthrower2 wrote: | I do professionally but I prefer Linux for coding at home, | mainly because it needs less RAM, runs quicker and stuff just | works. | | If we move to .NET5 or higher I might use linux at work too. | [deleted] | arrow7000 wrote: | lol this is a ridiculous take | sdflhasjd wrote: | HN bubble alert! | | I think _most_ programmers are actually using Windows as | their development environment. | | https://insights.stackoverflow.com/survey/2020#technology- | de... | 255kb wrote: | Definitely. I created a popular dev tool, and more than | half of the users are using Windows. | | I'm also a front-end dev using Windows since decades, and I | had like 0 problem using this OS. | chrisseaton wrote: | Even the developers I know at _Microsoft_ use Linux or | macOS! | int_19h wrote: | I work at Microsoft, and the majority of people I know | use Windows for development. Macs are around, but they | seem to be more popular with the managers than with the | devs. | | (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.) | throw5653 wrote: | You were just shown statistics that disprove your idea | that almost nobody codes using Windows... over half of | the developers who answered StackOverflow's survey are | using Windows. Pointing at more anecdotes around you does | not change this fact. | chrisseaton wrote: | Maybe Stack Overflow skews to Windows developers? I don't | know how good their data is. | | 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? | kroltan wrote: | In game development, it's all almost exclusively Windows, | and Mac if developing mobile games. | kcbanner wrote: | I think you may have quite a large blind spot here. | | The games industry is primarily Windows based. | towawy wrote: | "The survey must be bad because it doesn't fit my optics" | is an awful take. | chrisseaton wrote: | Most surveys are skewed to a particular set of users who | choose to fill it in! SO is one of the few examples of a | major developer site that runs on Windows, for example. | vips7L wrote: | The Jetbrains survey also shows majority of developers | working on Windows. | izolate wrote: | That looks like global statistics. Of course most | developers in the developing world aren't using MacOS. I'd | be interesting to see the OS breakdown when selecting for | just the developed world. I'd imagine Windows percentage is | much lower. | | Also, looking at some strictly web development surveys, | Windows is behind Mac/Linux: | https://medium.com/codex/jetbrains-django-developer- | survey-r... | realusername wrote: | WSL is there for a reason though, it's that Windows is severely | underused in some development areas and web is one of them. | | 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. | mastazi wrote: | that might be the case in your company, maybe in your state | or even in your country, but not outside of it | https://survey.stackoverflow.co/2022/#section-most- | popular-t... | realusername wrote: | Stackoverflow isn't only for web development though, they | are areas were Windows is still popular, I 100% agree on | that. | | Even Microsoft themselves recognise it indirectly, that's | the whole reason why they built WSL. | hu3 wrote: | It's kind of amazing how our beliefs are still mostly | formed by our surroundings. Even in the age of internet | where information is plenty and free. | | 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. | davidmurdoch wrote: | Someone on Twitter was upset that people they follow were | following someone they disagree with. I pointed out that | it's healthy to make yourself aware of dissenting | opinions, and that following someone doesn't mean you | align with every one of their beliefs and opinions. | | 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. | kevin_thibedeau wrote: | Cult members need something to hate to reinforce their | identity. | beebeepka wrote: | Question you should. For decades I've been trying very | hard to avoid such statements because what do I know | about "errybody" or "most people". I find it very off- | putting when someone uses these levers in a conversation | RossH wrote: | Fan of Deno here. You get permissions, standard library, no | node_modules, Typescript, built in test, fmt and linter, auto | reload for development etc. | | Their new "Fresh" framework is a nice touch too along with the | Deno deploy infrastructure and good documentation. | | I've used it for a few projects now, no issues. | bongobingo1 wrote: | > Documentation is limited, but Bun's Discord is very active and | a great source of knowledge. | | :-1: I loath to use discords search interface to look for | information. I'm sure the Bun team doesn't see this as an end | goal, but I wish forums were still a thing. At least they're | mostly indexed. | toastal wrote: | > Choosing proprietary tools and services for your free | software project ultimately sends a message to downstream | developers and users of your project that freedom of all users | --developers included--is not a priority. | | -- Matt Lee https://www.linuxjournal.com/content/opinion- | github-vs-gitla... | svnpenn wrote: | I am all for moving away from GitHub, but GitLab is dogshit: | | https://gitlab.com/gitlab-org/gitlab/-/issues/22578 | | https://gitlab.com/gitlab-org/gitlab/-/issues/556 | | I think Codeberg is a better option: | | https://codeberg.org | nickserv wrote: | I agree, but nobody bats an eye if your open source project | is hosted on GitHub. | qudat wrote: | A friend and I recently started a dev collective | (https://pico.sh) to work on projects targeting the smol | web. We decided that many popular communication and | collaboration tools would not fit into our stack. Things | like GitHub and discord were out of the question pretty | quickly. | | Instead we opted for Sourcehut and irc and have been pretty | happy with the results. | ezfe wrote: | For issue management, sure - but just using Github doesn't | remove the semi-decentralization of git. | aposm wrote: | I see your point, and I don't use GH when I can avoid it, | but those are very different in my mind. GH, for all its | flaws, is a value-added hosting service on top of git. It | interoperates freely with any other Git host and you can | clone/pull at any time. Discord is in an entirely different | category: a completely proprietary reimplementation of IRC, | with rent-seeking features bolted on. | emkoemko wrote: | IRC is horrible compared to Discord at least you have a | history to of chat vs nothing. | sbmthakur wrote: | At least some of the things on GitHub are not inside a | walled garden. | ilammy wrote: | In this case, you're not supposed to search. You're supposed to | ask your question, hoping that once somebody gets annoyed | enough to repeat the answer over and over, this question gets | deemed worthy of documenting. | yomkippur wrote: | This was my experience working with Unreal Engine. Couldn't | figure out what to do next until I could get somebody to take | a look at my problem and that would take multiple postings on | discord to get somebody's attention. Somebody had the galls | to get upset by my question because he was in the middle of | getting help on his. | | This support by discord or community only on discord trend | needs to stop. It's just creating toxicity and those with | malice/narcissism personality dominates. | | Rarely do fast response times create a sane knowledge based | community, it only agitates and lots of noise is created as a | result. | turdnagel wrote: | Betteridge's law response to headline: no. | | Short answer: not any time soon. | | Long answer: Maybe, in the long term. Node is really entrenched | in orgs and 99.999% compatibility is probably a must have before | they'd would consider switching. Also, don't underestimate the | strength and persistence of Google's V8 team. Year over year | incremental performance improvements may prove to be enough to | ensure Node's dominance for another 10 years. | rcarmo wrote: | I'm waiting to see when it can run Node-RED (it currently can't). | Seems quite promising for embedded devices in general (again, not | right now). | notpushkin wrote: | The article mentions Yarn, then proceeds to benchmark Bun against | npm only. Not a fair comparison IMO :-) | LAC-Tech wrote: | I have a soft spot for bun because I like zig so much. | | But the key attraction of deno for me is being able to delete | node_modules, package.json, package-lock.json etc etc. I don't | want to bring them back. | franciscop wrote: | I really hope Bun at least becomes a big player. Node.js has been | very sluggish implementing new features, to the point where most | people just don't trust them much anymore with this. Deno's | direction is interesting but doesn't align well IMHO with dev's | interests. Bun in exchange: | | > Out-of-the-box .env, .toml, and CSS support (no extra loaders | required). | | This makes a lot of sense. Node.js should be "sherlocking" | (integrating into the core) the most popular/common features devs | use. It's crazy to me that, after 10+ years of `.env` being a | common abstraction to manage environment variables, you still | need to install a separated library because Node.js doesn't know | to read the file itself. Same with yaml or toml. | | Same with features like fetch(), which took 5 years from the | Issue to be implemented in Node.js (and not for lack of | collaborators, but for lack of wanting to merge it). | | I'm happy though that Node.js is finally approving web features, | and that the move to ESM has been finished, but they are moving | so slow that I can def see a focused small team (might be too | much for one person) overtaking Node.js. | davnicwil wrote: | The problem with stuff like introducing .env support out the | box is breaking backwards compatibility in a silent way, ie | without any code changes and in a way that'd still run the same | in dev, and pass tests on CI etc, and then just affect prod. | | I know this _shouldn 't_ ever happen, but you can well imagine | plenty of legacy/badly configured setups where it would. More | pertinently, where it would _no matter how loudly you warn | about it_ in release notes etc. | | When you're as mature and used a platform as node, you just | can't risk things like this, unfortunately, no matter how more | convenient it would be for the vast majority of users. | franciscop wrote: | That would be _very_ easily solved by adding a Node.js | version or range in your package.json that specifies where | the program is supposed to run, and treat major versions as | breaking. There 's a balance to be had here, and avoiding | breaking anything at all costs is surely not really balanced | and it's starting to add a lot of cruft that will be needed | to be maintained long-term. | | The solution is not to "warn loudly" here; specify a Node.js | version in your package.json, and your code will continue | working on that version. Upgrade the Node.js engine version, | and then it's on the person upgrading making sure that | nothing breaks. That's how virtually all platforms work | (except the web itself, but that's not "versioned" so it's | fair). | | It's a bit more troublesome when changing core packages and | considering dependencies, but the same could apply there. | atwood22 wrote: | Apple breaks stuff all the time when updating their APIs. If | you hold yourself to decisions made long in the past, then | your platform will undoubtably become crusty and stale. Maybe | Node maintainers are ok with that, but it shouldn't be | surprising when people go to greener pastures. | davnicwil wrote: | I do agree to an extent but the specific point I'm making | here is about breaking things in a potentially silent, not | obvious way. | | Not sure what things you are referencing here in terms of | Apple's breaking API changes but if it's the sort of | breaking change where previous code just doesn't compile or | run on the new version it's a different matter in my view - | as in, it's something far easier to catch in dev or testing | and not only affect prod. | anonydsfsfs wrote: | Node already has a solution for this: core modules are | prefixed with "node:" to distinguish them from third-party | modules. https://fusebit.io/blog/node-18-prefix-only- | modules/?utm_sou... | andrew_ wrote: | There's value to a system where everything is bolt-on as well. | t0astbread wrote: | I have zero experience designing systems like that but I | think the sweet spot would be a standard library that's | modular and detached from the core. You could pull it in | after setting up the core, replace it or upgrade it in parts | but it's still maintained by one entity with a consistent | level of quality. | andrew_ wrote: | That's the general approach Deno has gone with. it's | finding success. | inglor wrote: | Node is a small team too but what features in particular are we | missing? | franciscop wrote: | I explained some right in my comment, currently missing are | things like native support for .env, for .toml and .yaml. | Support for ESM and fetch() was missing for way too long | until recently. | | Currently I don't see big gaps between web and node anymore, | but I still find the APIs a bit messy and to e.g. do work | with files I have to import all of the three `node:fs`, | `node:fs/promises`, `node:path`. It'd be nice if at least | `node:fs/promises` ALSO included non-promises from `node:fs`, | like "createReadStream()" to avoid having to import another | core module for that. Also WebCrypto should define the | variable `crypto` as a global, like `fetch()` and `URL` do, | for compat with the browser. | | Just some ideas/examples from the top of my head, no much | search/research was put into this so def take with a pinch of | salt. | ledgerdev wrote: | How zig has worked out in bun as compared to how rust has worked | out in deno? | bamboozled wrote: | This title is bad, it reads as if "Will Bun" might be a person. | oarabbus_ wrote: | Not a js/frontend dev, but what I see is "47.12 percent of | respondents reported to be using Node. js, while 42.62 percent | were using React." | | Don't know if that qualifies as having the "crown". | peanut_worm wrote: | Well I guess Deno is dead in the water then. I have a feeling we | are going to have like 10 competing JS runtimes by the end of the | year. | eatonphil wrote: | Oh there are way more than 10 _implementations_ of JavaScript | before we even start counting all their _distributions_ (Bun | being a distribution of JSC, etc). | | https://notes.eatonphil.com/javascript-implementations.html | peanut_worm wrote: | Of course, but as far as general purpose runtimes go your | options currently are pretty much Node, Deno, and QuickJs. | Most of the other ones are for niche things like IoT or | embedded systems. | eatonphil wrote: | That's not true. Take a look at the post! And look into | these implementations and their users. | | Or don't. But don't make assertions then without looking | into the facts. | miralize wrote: | Why do you say that? | peanut_worm wrote: | If Bun gets more popular, which it seems to be, it will | probably draw away a lot of people who are currently using | Deno. | JohnHaugeland wrote: | i love how these folks are trying to blame node for create-react- | app's speed issues | mouzogu wrote: | another day, another javascript runtime environment | ikt wrote: | as far as I'm aware Bun is significantly faster than others | while maintaining a lot of the compatibility | thrown_22 wrote: | lmarcos wrote: | The problem of the JS ecosystem is not speed precisely. | o_m wrote: | Competition is a good thing. The javascript engines wouldn't be | as fast as they are now if there was only one engine. | birdyrooster wrote: | Sometimes it not a good thing when it keeps people using | JavaScript. | bigDinosaur wrote: | do we actually get many Javascript runtimes? Certainly fewer | than JS frameworks. | [deleted] | quickthrower2 wrote: | we've done virtual dom (and better than virtual dom) UI | frameworks to death so I guess this is next! | criley2 wrote: | Is there really that many? Outside of browsers, I know of Node, | Deno and now Bun. Is there really that many serious attempts to | replace node? | v413 wrote: | Bun is using the JavaScriptCore engine which is the | Webkit/Safari Javascript engine. It is not written in Zig. | SahAssar wrote: | The engine (V8 analog) is not a "Zig engine", it's | javascriptcore. The wrapper is Zig, like node is C/C++ and | deno is Rust. | criley2 wrote: | My bad, their page says | | "Bun uses the JavaScriptCore engine, which tends to start | and perform a little faster than more traditional choices | like V8. Bun is written in Zig, a low-level programming | language with manual memory management." | | I conflated these two. | _the_inflator wrote: | History is repeating once again. So let's face it: NodeJS is | now the new Java. ;) | riston wrote: | The problem with Bun currently is the missing killer feature, | there is no absolute reason to switch over or I might be wrong? | brrrrrm wrote: | I suspect it's going to be the FFI integration. | | On my machine (M1 pro), Bun calling into a C library and | running a no-op is 15x faster than Python calling a no-op | function. V8 has never had stable bindings but Bun is changing | the game with a TinyCC JIT-compiled FFI that yields a simple | API. $ bun bench.js | 3.5331715910204884 nanoseconds per iteration | $ python3 -m timeit -s 'def f(): pass' 'f()' 5000000 | loops, best of 5: 53.8 nsec per loop | rubyist5eva wrote: | > Documentation is limited, but Bun's Discord is very active and | a great source of knowledge. | | Discord is a blackhole for information that search engines cannot | index, it is not a replacement for documentation. | | I hate Discord with such a bloody passion, and this is one of the | biggest reasons. People think "just ask on discord" is | appropriate as a means of documentation, it absolutely is not. | matesz wrote: | Some of Bun's server speed can be attributed to uWebSockets, | which has node bindings [1]. Of course this is just a small | detail, since Bun is a huge project. | | [1] | https://github.com/uNetworking/uWebSockets/discussions/1466#... | joshxyz wrote: | alex got good points here as usual. | | it's been a long time since i've used node's built-in http | module since I've found uwebsockets.js. | endorphine wrote: | When talking about JavaScript performance, aren't we essentially | comparing Bun to V8? | | If so, wouldn't it be very hard to beat V8's performance, given | that there has been so much engineering effort for many years | towards making it fast? | | Or are we taking into account the speed of the package managers | and bundlers as well? | | Disclaimer: I haven't saw the benchmarks, if any. | xtian wrote: | Benchmarks are shown on the project's homepage | ksbrooksjr wrote: | For the simplest benchmarks the performance disparity might | come down to the difference between JavaScriptCore (which Bun | uses) and V8 (which Node uses), but for anything non-trivial | there's a significant amount of overhead introduced by the Node | runtime. | | Someone wrote a barebones V8 wrapper called Just Js, which is | based on V8 just like Node, but it crushed Node in the | Techempower benchmarks [1]. | | [1] | https://www.techempower.com/benchmarks/#section=data-r21&tes... | senttoschool wrote: | >When talking about JavaScript performance, aren't we | essentially comparing Bun to V8? | | Bun is powered by JavascriptCore which is webkit. Webkit is | developed by Apple. Safari typically outperforms Chrome on | benchmarks. | jesse__ wrote: | It's _mostly_ talking about the speed of the surrounding tools. | They wrote a package manager that speaks NPM (presumably in C++ | or zig instead of JS) which unsurprisingly completely dominates | NPM in performance. | | The other stuff he benches is built into the runtime ... HTTP | requests, copying files, and a webserver Bun ships with. | Presumably the Bun team wrote these tools with performance in | mind, but the article doesn't compare features. I'm skeptical | the webserver in particular is at feature parity with the ones | he benched against, which makes the numbers look pretty watery | to me. | | It does not address the runtimes of JavaScriptCore (Webkit/Bun) | vs V8 (node/deno) which, as you pointed out, are probably very | similar. | medv wrote: | If a title contains a question, the answer usually is No. | t0astbread wrote: | Bun and Deno both look really impressive and I hope development | in this space continues at the massive pace it's happening right | now. But I've tried using both on a small greenfield project | recently (nothing fancy - just a static website with some custom | build logic made by stitching together some templating engines | and libraries) and I ended up reaching for Node again. | | As mentioned in the article Bun still has a lot of | incompatibilities with Node. For example, as far as I could tell | scripts designed to be run with npx don't work right now. And I'm | not sure what to make of binary lock files. Sure, it's more | efficient but how do you know a `bun add` didn't change something | it absolutely shouldn't have changed? | | Deno has really fast TypeScript compilation and file watching | built in which is awesome. I always loathed using tsc together | with nodemon or some custom file watcher thing. And permissions | are great. But the package index is more or less the most | valuable asset of Node and Deno doesn't provide (and doesn't aim | to provide) compatibility with most of it. Also, while I do like | the idea of using URLs for dependency management, the way Deno | does it with import maps and lock files feels extremely | convoluted and too easy to mess up for me. NPM is more intuitive. | hayd wrote: | " Deno doesn't provide (and doesn't aim to provide) | compatibility with most of it" | | which packages did you have issues with/need that didn't work? | my understanding was with node compat flag deno supported quite | a bit... | t0astbread wrote: | At the time it was the "tailwindcss" package IIRC. I also | just tried it again on the latest iteration of that codebase | and ran into some import problems, seemingly related to | "markdown-it" (version 13.0.1). First I got "SyntaxError: | Cannot use import statement outside a module", when I changed | the package.json file to add "type: module", as requested in | the error message, I got a panic. If you want, I can open an | issue for that. | | Additionally, I'm currently using at least one function in | "fs/promises" that doesn't seem to be supported yet | ("opendir") and the "vm" module to evaluate some ( _trusted_ | ) JS. | | Most of those issues can be worked around, I just decided to | go with Node instead for the time being. | stephen wrote: | This is probably naive, but I'd love to see one of the Node.js | competitors, i.e. Bun or Deno, innovate on the "it takes ~forever | to load node_modules every time I run a test/script/etc" problem. | | I.e. Bun is improving "bun install" time for projects with large | node_modules, and that's great, but what about, after it's on | disk, having to parse+eval all of it from scratch every time I | run a test? | | As admitted, this is a very naive ask due to the | interpreted/monkey-patching nature of the JS language, but I'll | hand wave with "something something v8 isolate snapshots" + "if | accomplishing this requires restrictions on what packages do | during module load, deno is rebooting npm anyway..." and hope | someone smarter than me can figure it out. :-) | qbasic_forever wrote: | Deno doesn't use node_modules so you won't have a problem | there. You specify each dependency as an import URL (either in | the code or in an import map) and it grabs them directly (also | using a local cache directory). There's no need in the deno | world to even use a package manager. | stephen wrote: | Ah yeah, you're right that Deno doesn't have a node_modules, | but AFAIU it still downloads dependencies to "somewhere on | disk" and then, every time your code runs, it re-evals all of | them from scratch. | | So, admittedly I was using "node_modules" as a shorthand for | "the code that makes up my dependencies", and that AFAIU Deno | has not implemented this "use a v8 snapshot to cache | preloaded/pre-evald dependencies" optimization. | | I.e. I want something like: | | https://danheidinga.github.io/Everyone_wants_fast_startup/ | ch4s3 wrote: | > There's no need in the deno world to even use a package | manager | | That doesn't sound like I thing I would want. | int_19h wrote: | It is a package manager. It's just integrated into the | runtime to the point where you import things and it "just | works". | cercatrova wrote: | I have seen that while Bun is fast for startup, it performs about | the same as Node and Deno for longer running tasks, simply | because it just wraps JavascriptCore, which performs similarly to | Node and Deno's V8. | SahAssar wrote: | Bun is currently lacking workers, which at least for me is a | dealbreaker. I'd also think it'd be interesting to compare | against justjs when it comes to speed, since that is a very small | wrapper around V8 (much smaller than node/deno) and manages to | score extremely high on techempower benchmarks (top 25 on all, | first/second spot on a few): https://just.billywhizz.io/blog/on- | javascript-performance-01... | eatonphil wrote: | Just to clarify, Bun isn't a wrapper around V8. It's a wrapper | around JSC. | | I don't think Jared's benchmarks were benchmarking Bun and Node | so much as V8 and JSC. | | I don't think benchmarking Bun against justjs is going to | change much. | SahAssar wrote: | Considering the performance difference between node, deno and | justjs I don't think that's right. | | There is clearly a big difference between different wrappers | and how to handle different things. For example some of them | delegate most of HTTP handling to a native lib while IIRC | node does a lot of that in its js stdlib. | tiffanyh wrote: | Looks like Just-JS author is looking into swapping V8 for | JSCore. | | I'd be super interested in seeing just how much faster Just-JS | would get using JSCore (like Bun uses). | | https://Twitter.com/justjs14/status/1557856790897106944#m | SahAssar wrote: | Interesting! A small wrapper switching the engine might be | the most reasonable "real-world" benchmark there is. ___________________________________________________________________ (page generated 2022-08-14 23:00 UTC)