News for hackers. Stuff that matters.
Re:Bun v0.5 by Jarred on Wednesday January 18, 2023 @01:56PM (#34431191)
I work on Bun. Happy to answer any questions or feedback
Re:Bun v0.5 by Yahivin on Wednesday January 18, 2023 @02:38PM (#34431860)
Civet just added a bun loader https://github.com/DanielXMoore/Civet/blob/main/source/bun-c...

I'm curious to hear your thoughts about Bun/Civet integration to explore improvements to the language frontend as well as the language backend?

Re:Bun v0.5 by culi on Wednesday January 18, 2023 @02:14PM (#34431480)
Not a question, mostly a comment. Excited to see the crypto speed improvements. Makes me hopeful about projects like scikit.js[0] toppling Python's ML dominance

[0] https://scikitjs.org/

Re:Bun v0.5 by adenozine on Wednesday January 18, 2023 @03:14PM (#34432383)
What scientist is going to want to write JS when they can choose Python?

I've worked with hundreds of scientists from different domains over the past two decades and I've literally never once heard of wanting to use Javascript for anything remotely scientific.

Furthermore, given that WebAssembly seems poised to (eventually) make strides in how browser-oriented applications are built then the logical conclusion is a sort of reduce function on languages where you choose the language that's the most pleasant to write and maintain since you will eventually be able to just target the browser from anything. For the life of me, I can't see a future where large, STEM-educated groups and agencies decide "Well yeah, I guess if we can use this cooked-in-a-weekend piece of $^&# then why would we ever use Python?"

I think a lot of language enthusiasts see python projects entering into spaces where it wasn't previously viable and think that the same principle applies to their language, which misses something fundamental about why Python has so deeply entrenched itself into the STEM/ML world, and why it will NEVER be uprooted. When I see things like Brython/Pyscript/Pyodide, it's obvious to me that people would rather write Python for ~accomplishing the task they set out to~ than have to muck around with another language entirely. Python is a winner in so many spaces because of that element of taking the programmer from Point A to Point B the easiest way. It's a language designed for accomplishing tasks, for getting stuff done, for being understood at a glance. Javascript was made up by one guy, in a very short period of time, for a singular purpose that it didn't even do well when it was introduced and has stuck around due to sheer coincidence and convenience. All languages on a long enough timescale converge to a point of usefulness but if we're pitting Python against JS I just can't see the scales tipping enough to warrant choosing it for real work.

Re:Bun v0.5 by sublinear on Wednesday January 18, 2023 @03:30PM (#34432610)
I don't know what scientific hole this peg fits into, but it might make more sense to run something in the browser than on the backend (scalability).

Instead of using a wasm runtime for python for that it might also make more sense performance-wise to at least write that part in js if not an even faster language compiled to wasm. Either way if it ends up on a webpage some js will be needed to at least glue things together.

Also, from the perspective of just wanting to write some code and get what I want, I really don't see much of a difference between python and js.

For the rest of us, it's kinda the other way around. We can't figure out why scientists prefer python over all the other many options. I'm assuming it's just a lot of cobbled together legacy code nobody wants to breathe on.

Re:Bun v0.5 by no_circuit on Wednesday January 18, 2023 @04:37PM (#34433460)
Scientific performance critical code isn't written in Python, it is written in C/C++ which is used by Python. Python in ML usually merely describes the calculation not unlike React describes the DOM that should be displayed in the browser.

JavaScript was never really known for admin or file manipulation (Perl replacement), so that was what probably established the dominant ecosystem for Python. I also don't think the runtime overhead is applicable due to native C/C++ part, and download time doesn't have to be bad since modules can be split just like in JavaScript ecosystem today. For an AI app, the model inference weights might be larger than the compiled WASM code itself. However, I'd agree with you that porting legacy apps might not be possible without something close to a rewrite.

There is a reasonable chance that once WASM GC is implemented, then direct DOM access will be provided [1], which I believe could pretty much halt interest in new JavaScript development for web frameworks overnight. WASM is the reincarnation of the Java Applet, but better. And a more typed language like Go or Dart could become the most widely used programming language. Either compile it to WASM as plugin for something like the browser, compile to JavaScript for "legacy browsers", or to native code for a standalone app. There are probably a handful of developers already assuming this and trying to write a version of React running in WASM already.

[1] https://github.com/WebAssembly/design/blob/main/Web.md#gc

Re:Bun v0.5 by pjmlp on Thursday January 19, 2023 @01:48AM (#34437418)
And Fortran, still.
Re:Bun v0.5 by KyeRussell on Wednesday January 18, 2023 @03:55PM (#34432944)
Given your extremely outsized reply I can tell this is something you feel passionately about or whatever, but the “JS was built in x days” line is a thought-terminating cheap shot. It doesn’t acknowledge the vast amounts of work that have gone into subsequent ES versions. The JS that a typical remotely-modern-tech-stack developer is writing these days is not the JS that you’re belligerently referring to.

I’ve got honestly no idea how long it took to write the first ‘version’ of the Python interpreter or whatever. It’s not as much a piece of tech lore that was later (mis)appropriated for Internet arguments. Even after acknowledging that JS being a browser-based language causes let’s say ‘less well-considered’ language quirks to hang around for longer than we’d like, I’d never use that as such a central argument.

To be clear: in my day job I predominantly write Python. It’s a web project, which I have control over the architecture of, and it’s for the most part oldschool server-side rendered Django views, in no small part because JavaScript scares me. I am FAR from a fanboy. Having recently spent a solid month writing TypeScript - which for contexts like this should be considered ‘JavaScript’ - it’s (way too late) become clear to me that it’s a language worthy of respect and consideration.

If we want to get into the comparative qualities of JS you dislike, well, I still don’t think I’d be interested in a language wars back and forth. However at least we’d be getting closer to a productive conversation. And, to be clear, I’m not jumping to take up arms arguing that JavaScript is as suitable for ML/scientific computing as Python is. Even if we pretend that e.g. pandas and numpy were available for JS, I’m still not confident that JS is up to the task, but I also don’t feel confident arguing against it either.

What I will say is that, coming back to writing Python after being deep in JS for just a little while, there are JS language features that I felt myself missing. Just like there are Python language features I felt myself missing in JS. My point is, again, that modern JS is in my eyes within the realm of respectable general purpose language, ESPECIALLY with TS.

Re:Bun v0.5 by culi on Wednesday January 18, 2023 @04:11PM (#34433126)
> What I will say is that, coming back to writing Python after being deep in JS for just a little while, there are JS language features that I felt myself missing. Just like there are Python language features I felt myself missing in JS

I relate to this a lot. If I've been doing Python a lot, JS can feel clunky. If I've been doing JS/TS a lot, Python feels clunky. I think TS tips the scales here for me though

The only language that I really feel is actually really elegant and readable and lives up to the "get stuff done" mantra in a way that goes beyond "this is what I know already" is Ruby

Re:Bun v0.5 by culi on Wednesday January 18, 2023 @04:06PM (#34433077)
Not JS, but I much prefer TS over Python. I've used all 3 pretty extensively for scientific work as well as webscraping

The thing is a lot of scientists are going to have to learn FE technologies eventually. The push to make scientific work more presentable and accessible means JS' place in academia is cemented for a long time.

WebAssembly is still a long way off and given that even Rust WASM was found to usually do worse than JS, I highly doubt Python WASM will outperform it any time soon. Even once it does become worth it, tooling has a long ways to go

> people would rather write Python for ~accomplishing the task they set out to~ than have to muck around with another language entirely.

your argument seems to boil down to: people know Python so they wanna use Python. People can just as easily know JS/TS. If I'm a botanist and I really don't wanna invest too much of my time in learning languages I can choose between Python, the language with all the scientific libraries, and JavaScript, the language of the web. If I choose the former, I'll likely have to bother someone to help me present my work to the web anyways. If in the near future JS also reaches good support for scientific/ml libraries it seems like entering that ecosystem is an obvious advantage. I get to learn the web and access scientific libraries at the same time

Also I don't really find Python all that legible. The language you're describing isn't Python nor JavaScript. It's something like Ruby. Modern javascript has some obvious advantages when it comes to syntactic sugar like arrow functions. It's also easier to teach because you don't need to install anything. Just open up your html file in any browser

Re:Bun v0.5 by brrrrrm on Wednesday January 18, 2023 @05:54PM (#34434285)
> If in the near future JS also reaches good support for scientific/ml libraries it seems like entering that ecosystem is an obvious advantage

Fully agree with this sentiment. To that end, I’ve been contributing to Shumai (linked by someone else in the comments) to enable torch-like machine learning for Bun

Re:Bun v0.5 by culi on Wednesday January 18, 2023 @07:10PM (#34434991)
Super exciting! I'd love to see Bun take a focus on this. Tbh with Deno's recent massive expansions to npm support it's kinda hard to see what role Bun plays in the ecosystem. Focusing on performance critical work like ML and crypto would cement it's place and fill a niche that's underserved. At least until WASM works as advertised but it seems that's kind of a ways off
Re:Bun v0.5 by sheetjs on Wednesday January 18, 2023 @04:10PM (#34433122)
JavaScript has a massive and unrivaled ecosystem outside of core data analysis. The main hurdle to adoption is ecosystem and community. A generation of applied mathematicians and data scientists were trained on Python. Python overcame older ecosystems like Matlab and Fortran for its ease of use for other general computing tasks (Matlab is a decent language for large array manipulation but soft tasks like string processing are kludgy compared to Python).

In the same way that Python developers are interested in extending their ecosystem to other spaces, JavaScript developers are interested in growing into the data science space. But that doesn't happen unless there's a clear benefit for switching.

What advantages do a native JS solution have over Python? Performance: There are arguably many more developers and companies focused on pure JS performance than python. Community: A JS solution opens up a much larger pool of talent to build innovative solutions. Cost: Running heavy computations client-side, in the web browser, reduces costs for service providers.

PS: We're hiring for this and other related problems https://sheetjs.com/careers

Re:Bun v0.5 by KptMarchewa on Wednesday January 18, 2023 @04:25PM (#34433302)
Pure JS or Python performance does not matter. Python is just a DSL to glue together C/C++/Fortran/Rust libraries in this context.
Re:Bun v0.5 by de_keyboard on Wednesday January 18, 2023 @05:09PM (#34433844)
Until it's not though. This is a pretty major architectural constraint on your code that you would not hit quite so early with a faster language.
Re:Bun v0.5 by silisili on Wednesday January 18, 2023 @04:23PM (#34433266)
Performance where, exactly? Most Python data munging I've seen just punts it all to C based libraries anyways. Are people doing things in pure python these days?
Re:Bun v0.5 by sheetjs on Wednesday January 18, 2023 @04:30PM (#34433376)
Under the hood, numpy and friends punt to native code. FFI / native module performance becomes a bottleneck, and Bun is correctly focusing in this area. Shumai [1] is a cool library for Bun that also punts to native code

[1] https://github.com/facebookresearch/shumai

Re:Bun v0.5 by danielEM on Wednesday January 18, 2023 @04:43PM (#34433543)
Why hiring US citizens only?
Re:Bun v0.5 by zimbatm on Wednesday January 18, 2023 @04:14PM (#34433168)
Relax man :)

Let's say you want to a small notebook in the browser, JavaScript is nicer there, even with WebAssembly. Or the user is not a scientist, and already knows JS, and it lets them discover ML. It's not taking anything away from those Python projects.

Re:Bun v0.5 by throwawaymaths on Wednesday January 18, 2023 @04:30PM (#34433385)
> What scientist is going to want to write JS when they can choose Python?

A scientist that doesn't want to give whoever is responsible for deploying their software a massive headache and ops problems.

Re:Bun v0.5 by detrites on Wednesday January 18, 2023 @04:48PM (#34433605)
> What scientist is going to want to write JS when they can choose Python?

One who has a reason to?

All languages have their strengths and weaknesses. Popular languages have a positive balance. JS is great for the web, and there's surely >0 applications in science that require web interoperability...

The statement "mucking around with learning another language entirely", comes across as someone who hasn't experienced other languages to the point they see they often have more similarities than differences, become easier and easier to learn as a result, and are best used - at that point - like a box of tools, rather than the situation most programmers start with of using a screwdriver for everything because it's all they have.

This is where more than a few scientists seem to have got stuck with Python, and possibly part of why the language itself has accelerated into becoming a bit of a mess - though they often do, anyway. (So much for that "just getting from A to B" thing, I hope it sticks around, but it's not looking good.)

While many might not presently be in a position to, any scientist who could choose to use something more readily suited to a particular use-case, such as JS, or C, or Perl/Ruby, or Elixir (particularly with regard to ML lately), may find themselves reaching higher heights than they could have when limited to only Python.

As with anything, those with more options have an edge over those with fewer.

Re:Bun v0.5 by yellowapple on Wednesday January 18, 2023 @05:04PM (#34433779)
The irony of this comment, given that there is precisely nothing about Python itself as a language that makes it particularly suitable for "anything remotely scientific", is thick enough to spread on toast.

I can see the validity of such an argument for languages like R or Matlab or Julia (EDIT: or Fortran), wherein the languages were designed with scientific use cases in mind. Python is not in that category; it's rather in the category of Perl (EDIT: and not Fortran): languages that happened to be useful to scientists by happenstance, and around which a library ecosystem developed in support of that usefulness. No fundamental reason why Javascript would somehow be ineligible if Python is eligible.

Re:Bun v0.5 by adenozine on Wednesday January 18, 2023 @05:23PM (#34433997)
I can see based on your perspective that you haven't collaborated with hundreds of STEM professionals, postdocs, or researchers.

I can also see that your comment fails to address the meat of mine, despite being a reply to it.

Python is extremely easy to get tasks done with, there's a minimal amount of ceremony and PLT background knowledge needed to program it. I love Perl, but explaining how $ and @ work differently given the point of usage is annoying, and if I taught Perl all day every day, it'd be a continuous annoyance.

I don't have the studies and data to back up my opinion, but a lifetime of work has taught me the certainty that Python is one of the greatest languages ever created, that quite literally ANYBODY who can type and read English can learn to become effective with it, and that it blows every competitor out of the water by a large margin with regards to getting from Point A to Point B as a novice programmer. As more of the world becomes programmers, that facet alone cements Python's continued success and its place in PLT history. It's the human part of the language, not the object system or type theory or compiler internals or any of the esoteric technical bits. Nobody can teach someone to program in anything other than Python quicker than I could teach them to program in Python.

But anyhow, this is well below my time to spend in a discussion like this. I mean this in the nicest way possible: I've probably spent more time teaching and training people who weren't programmers to write good programs then you've spent programming throughout your life. People who work in the White House, DARPA, the FDA, DOT, IRS, you name it. I know I can't PROVE my position, but time will. Python will always win eventually.

Re:Bun v0.5 by rykuno on Wednesday January 18, 2023 @05:41PM (#34434158)
Honestly though, the original comment was just a plea for more competition to drive innovation it seems.

Most of the data scientists I've worked with are programmer hobbyists as well. We've used Javascript/Python/Go/R. Maybe this will exist for people in that demographic, those who are data scientists that already are solid in programming.

Regardless, more cool toys are good.

Re:Bun v0.5 by yellowapple on Wednesday January 18, 2023 @06:55PM (#34434865)
> I can see based on your perspective that you haven't collaborated with hundreds of STEM professionals, postdocs, or researchers.

Surely you know the saying about what happens when you ass-u-me.

But hey, if that's the tone you'd like to set, then I'm happy to oblige...

> I can also see that your comment fails to address the meat of mine

There was no meat to yours. "Python is good for scientific uses because reasons and JS is not because reasons; also, here are some cheap shots at JS being a weekend project despite there having been literal decades of work since Brendan Eich invented it". That's the sort of drivel I'd expect from novices using tribalism as a substitute for an informed opinion, not someone who claims to have sufficient expertise in programming to competently educate someone else.

> I love Perl, but explaining how $ and @ work differently given the point of usage is annoying, and if I taught Perl all day every day, it'd be a continuous annoyance.

Explaining to beginners why their programs break if they don't get indentation perfectly right strikes me as no less of a continuous annoyance.

On that note, Ruby lacks either of those issues. Same with Lua. Same with Javascript.

> ANYBODY who can type and read English can learn to become effective with it

That's true of pretty much every scripting language out there; that's indeed what usually sets scripting languages apart from systems languages.

> it blows every competitor out of the water by a large margin with regards to getting from Point A to Point B as a novice programmer

Not every competitor. It's one of a category of languages which novices in significant numbers successfully learn reasonably quickly - and significant numbers of novices do become successful with Ruby or Lua or - yes - JS just as quickly as novices do with Python.

> I mean this in the nicest way possible: I've probably spent more time teaching and training people who weren't programmers to write good programs then you've spent programming throughout your life.

I mean this in the nicest way possible: if your comments here are representative of your teaching and training of others, then you owe your students refunds and apologies. I would hope that you don't teach your students blatant misinformation like JS being merely a weekend project (as if Python wasn't?) or fanboyishly insist that "Python will always win eventually" as if programming is all about winners and losers rather than using the right tool for the job. If you do teach your students such, then they are worse off for it, and deserve someone who actually educates rather than misinforms.

If you're as good a teacher as you claim to be, then the language doesn't matter; the differences between the various scripting languages out there are minute in comparison to the fundamental concepts like "how do I write and call functions?" or "how do I store data and use it later?".

Likewise, to your average non-programmer, the language doesn't matter. What matters is the path of least resistance between "I need to do this thing" and "I have done this thing". Sometimes that's Python. Sometimes that's JS. Hell, sometimes that's something totally bonkers like Haskell. Python is one of several paths of least resistance for scientists in particular not because of anything to do with the language itself, but rather because of a library and tooling ecosystem that formed around it by happenstance; no reason why that couldn't happen for JS, or any other scripting language.

Re:Bun v0.5 by crabmusket on Wednesday January 18, 2023 @11:29PM (#34436707)
> Hell, sometimes that's something totally bonkers like Haskell.

This literally happened to me the other month. I had a tiny problem which I realised was a perfect fit for the List monad. Guess which language has the best support for that?

I rewrote my little script in JS afterwards using flatMap, and it was much uglier.

Re:Bun v0.5 by hermitcrab on Wednesday January 18, 2023 @05:24PM (#34434003)
>it's rather in the category of Perl or Fortran: languages that happened to be useful to scientists by happenstance

From https://en.wikipedia.org/wiki/Fortran : "Fortran was originally developed by IBM in the 1950s for scientific and engineering applications"

Re:Bun v0.5 by yellowapple on Wednesday January 18, 2023 @05:36PM (#34434111)
Fair enough; edited, and thanks for the correction.
Re:Bun v0.5 by jitl on Wednesday January 18, 2023 @08:29PM (#34435614)
JavaScript has a very weak standard library. The language & standard library lacks essentials like structural equality, until 2015 or so very weak class-based object-oriented programming, and to this day has numerous footguns that are tricky to remove without breaking the web, like `==`, `this` scoping, and Array.prototype.sort() being in-place.

JavaScript is turning complete and I prefer it’s semantics to the lawless land of Perl, but it ultimately does not serve its users as a general purpose programming language for getting things done - it serves the web foremost, and as a distant second there’s specialized programming environments like Node and Bun with priorities like “asynchronous” that struggle with POSIX/system scripting basics like fork(2), execve(2), working with files in simple ways. Don’t even get me started on FFI/calling into dynamic libraries, which is the bread and butter of scientific computing. FFI is in the stdlib in Ruby; but requires writing or compiling C++ for Node, or a monstrous stack of compilers for the web.

JavaScript is interesting because there are so many healthy alternative runtimes, but when it comes to getting things done with data, both Python and Ruby are much more straightforward and prioritize developer happiness & utility, instead of standardized web compatibility.

Re:Bun v0.5 by yellowapple on Wednesday January 18, 2023 @11:10PM (#34436603)
> Don’t even get me started on FFI/calling into dynamic libraries, which is the bread and butter of scientific computing.

Which is, incidentally, one of the things Bun provides.

Like you said: there are indeed healthy alternative runtimes. Said runtimes can (and often do) readily provide a richer standard library, or break web compatibility to resolve footguns, or what have you. Bun seems to be making good progress to that effect, and my point in the previous comment presupposes that it succeeds.

Re:Bun v0.5 by jitl on Wednesday January 18, 2023 @11:39PM (#34436750)
I haven’t seen any runtime fix/add structural equality, array methods, or this scope
Re:Bun v0.5 by nine_k on Wednesday January 18, 2023 @06:22PM (#34434584)
Python is great and ergonomic for interactive fiddling.

But the scientific strength of "Python" comes not from Python itself. It just offers a nice interface to tons of C, C++, and Fortran code that implement the core of numpy, pandas, keras, pytorch, etc. That's what STEM and ML crowds use. Moving that code to WASM must be possible, but likely for demo purposes, not for serious work.

Re:Bun v0.5 by vcryan on Wednesday January 18, 2023 @08:22PM (#34435556)
More options is better
Re:Bun v0.5 by KRAKRISMOTT on Wednesday January 18, 2023 @07:43PM (#34435279)
Re:Bun v0.5 by Thaxll on Wednesday January 18, 2023 @02:08PM (#34431394)
What was the decision making of chosing Zig for Bun, a very promising but immature language?
Re:Bun v0.5 by Jarred on Wednesday January 18, 2023 @03:10PM (#34432326)
Zig is great for writing fast software and I’m really productive in Zig.
Re:Bun v0.5 by thayne on Wednesday January 18, 2023 @04:50PM (#34433621)
Are you worried about breaking changes in zig requiring large changes in bun, or getting stuck on an old version of zig?
Re:Bun v0.5 by danielEM on Wednesday January 18, 2023 @02:21PM (#34431576)
And a side note, before got to this thread was looking into bun code and saw your commits, you're very productive man, congrats!
Re:Bun v0.5 by detrites on Wednesday January 18, 2023 @02:21PM (#34431578)
Are there any plans for a REPL?

And thanks for bun! It's been impressive and inspiring to watch.

Re:Bun v0.5 by Jarred on Wednesday January 18, 2023 @02:30PM (#34431730)
This is something we need to do, but haven't prioritized yet

For now you can do

    bunx bun-repl
Re:Bun v0.5 by danielEM on Wednesday January 18, 2023 @02:19PM (#34431552)
Out of curiosity - how do bun plan on monetization? Is that even possible in the age of node.js, deno and who knows what else? :-)

I mean, I wish bun all the best, but trying to wrap my head around - who the heck and on what basis gave to bun project a money :-)

Re:Bun v0.5 by TAForObvReasons on Wednesday January 18, 2023 @02:26PM (#34431663)
Hosting is the obvious answer. Deno is monetizing in the same exact way (https://deno.com/deploy/pricing) and they managed to raise much more money with the same playbook.
Re:Bun v0.5 by edvards on Wednesday January 18, 2023 @02:07PM (#34431374)
What's the most challenging thing you had while working on the project so far? It seems like the project has a pretty complex goal, so I wonder what things were the more difficult ones for you
Re:Bun v0.5 by tiffanyh on Wednesday January 18, 2023 @02:26PM (#34431667)
Any plans to collaborate with just-js?
Re:Bun v0.5 by rmorey on Wednesday January 18, 2023 @02:15PM (#34431484)
What are some good resources to learn zig?
Re:Bun v0.5 by Jarred on Wednesday January 18, 2023 @02:36PM (#34431823)
- Ziglings is great - https://github.com/ratfactor/ziglings

- zig.news has some good posts https://zig.news/

- Zig's language docs: https://ziglang.org/documentation/master/

- Zig's standard library code https://github.com/ziglang/zig/

Re:Bun v0.5 by mattlondon on Wednesday January 18, 2023 @02:12PM (#34431452)
Is there a migration guide for Deno users?
Re:Bun v0.5 by Jarred on Wednesday January 18, 2023 @02:23PM (#34431616)
Not yet, we haven't released our docs site yet either. Probably won't be there in the first release of our docs, but this is something we should do

If you're familiar with Node, Bun should feel familiar except you don't need as much tooling to use it.

Things like TypeScript, jsx, loading .env files, Jest-like test runner etc just work. You can use the builtin TypeScript/JS LSP in your text editor instead of installing a separate extension. You can import packages from npm without the "npm:" specifier. It's worth mentioning that Bun doesn't support HTTPS imports yet, so you'll need to use npm - but bun has a very fast builtin npm client. Like deno, you can often skip running `bun install` or `npm install` entirely for bun because bun will automatically install dependencies from npm when there is no node_modules folder

Re:Bun v0.5 by MuffinFlavored on Wednesday January 18, 2023 @02:22PM (#34431598)
do you think it might be too “living on the cutting edge” to adopt this yet?
Re:Bun v0.5 by christkv on Wednesday January 18, 2023 @02:02PM (#34431302)
Is it possible to connect to Mongodb yet?
Re:Bun v0.5 by Jarred on Wednesday January 18, 2023 @02:04PM (#34431334)
Not yet. MongoDB requires resolving SRV dns records and we haven't implemented support for that yet (just A/AAAA via getaddrinfo()-like APIs currently)

Tracking issue: https://github.com/oven-sh/bun/issues/1822

Re:Bun v0.5 by christkv on Wednesday January 18, 2023 @02:05PM (#34431346)
Awesome thanks for answering it.
Re:Bun v0.5 by henry_viii on Wednesday January 18, 2023 @03:59PM (#34432991)
A couple of reasons that contribute to Bun's performance are:

1) using JavaScriptCore instead of V8

2) porting esbuild from Go to Zig

I have a couple of questions about (2):

1. How long did it take you to port esbuild?

2. Why did you choose to port esbuild to Zig instead of another language e.g. V?

Re:Bun v0.5 by kamikaz1k on Wednesday January 18, 2023 @04:11PM (#34433132)
Jarred didn't port esbuild, his vision/ambition is far beyond that for bun. But even as a transpiler, Jarred made different decisions about the compilation process. Also time doesn't really mean the same thing, this brosef works 80hrs/week on this stuff, and he's been doing that for over a year.

He chose Zig because it's a good language for performance sensitive applications and found himself to be very productive in it.

Re:Bun v0.5 by leidenfrost on Wednesday January 18, 2023 @04:04PM (#34433052)
How far is Bun to run a NestJS project? (Leaving adapters like Mongo aside)
Re:Bun v0.5 by ushakov on Wednesday January 18, 2023 @04:17PM (#34433208)
I have a question. Does Jarred ever have a vacation? Really concerning to see how much you work lately. Wishing you a more relaxed time
Re:Bun v0.5 by forrest2 on Wednesday January 18, 2023 @06:41PM (#34434756)
I don't wanna speak for them, but for some people, going in deep on something is the only way to stay healthy / happy / sane.

Different strokes for different folks

Re:Bun v0.5 by aarpmcgee on Wednesday January 18, 2023 @07:02PM (#34434919)
Fully agree. Imo, it is up to everyone to find their own balance within their own lived experience. Maybe this Jarred person is doing what works in their own case, and I hope its working well.
Re:Bun v0.5 by girvo on Wednesday January 18, 2023 @08:41PM (#34435699)
I, too, have ADHD and (in remission) depression. I'm only partly joking too -- focusing on projects, work, hobbies etc. keep me sane and useful to those around me
Re:Bun v0.5 by Jarred on Wednesday January 18, 2023 @07:12PM (#34435014)
I love working on Bun and find it very energizing
Re:Bun v0.5 by vcryan on Wednesday January 18, 2023 @08:21PM (#34435550)
Somehow being coerced to work long hours had been conflated with choosing to work long hours.

Some people really enjoy working. I know, it's hard to believe :)

Re:Bun v0.5 by 999900000999 on Wednesday January 18, 2023 @04:26PM (#34433316)
Like with any promising project, what are the downsides ?

How are you funded? Is speed enough of a concern to take a risk on using this vs Node ? From my experience with Node your lucky if it works at all, I don't know if I'd like to add another variable when things go wrong.

I can't imagine this supporting every single npm module.

That said, god speed. If you can really make JavaScript fast as a complied language, I and many other JS devs will be happy.

Re:Bun v0.5 by swyx on Wednesday January 18, 2023 @06:52PM (#34434846)
"Oven has raised $7m in funding led by Bucky at Kleiner Perkins with participation from Guillermo Rauch, YCombinator’s Continuity Fund and more." https://oven.sh/
Re:Bun v0.5 by okhuman on Wednesday January 18, 2023 @10:29PM (#34436379)
One downside: core devs only prioritize bun features which can enable use cases for running your code in their edge/hosted platform.

Missing some of the other general purpose use cases/servers that devs would want to build - which wouldn't fit into bun's flavor of hosting.

Re:Bun v0.5 by 999900000999 on Thursday January 19, 2023 @03:17AM (#34437930)
>Oven will provide incredibly fast serverless hosting & continuous integration for backend & frontend JavaScript apps — and it will be powered by Bun

Getting early funding is cool , but I'm not sold on the business model. Tons of hosting providers exist, corps are unlikely to switch meaning your stuck selling to hobbyist / small developers.

That said, they just need to stay alive until aquired

Re:Bun v0.5 by ZephyrBlu on Thursday January 19, 2023 @04:29AM (#34438368)
You should watch some of the interviews Jarred has given. Don't have any links, but searching "jarred sumner bun" on YT will bring some stuff up. His ideas for Bun are very different to a stock-standard hosting and he's thinking very long term.

Another thing is that he intends for Bun to be a drop-in replacement. Why •wouldn't* you switch hosting providers for a free massive boost in performance?

Re:Bun v0.5 by 999900000999 on Thursday January 19, 2023 @10:30AM (#34441332)
>Another thing is that he intends for Bun to be a drop-in replacement. Why •wouldn't* you switch hosting providers for a free massive boost in performance?

So I'm going to convince upper management to let me host our apps in a new unknown hosting provider vs the AWS contract we already likely have ? Maybe if your a CTO at a startup you could pitch this, but for the most part I'd imagine people will end up using Bun on existing hosts like AWS and Azure.

Nothing stops AWS from implementing whatever makes Bun hosting faster on their own platform. Don't get me wrong, I REALLY love Bun as an idea. I'm just not sure it'll make money.

Re:Bun v0.5 by okhuman on Wednesday January 18, 2023 @10:40PM (#34436443)
Bun and deno are in an arms race for nodejs compatibility in order to leverage node's vast ecosystem of libraries (think the "embrace" stage of embrace/extend/extinguish). This compatibility layer will take a long time... and will require early adopters to take more time to produce work which their nodejs counterparts can perform faster.
Re:Bun v0.5 by culi on Thursday January 19, 2023 @01:17AM (#34437282)
I've been using Deno for a few months and haven't run into an npm package I couldn't use yet...

I feel like compatibility-wise both projects are mostly there already

Re:Bun v0.5 by captainmarble on Thursday January 19, 2023 @03:53AM (#34438147)
Try AWS npm
Re:Bun v0.5 by jonasb on Wednesday January 18, 2023 @04:47PM (#34433593)
Will Postgres.js be the way to go for using Postgres, or do you expect to build a custom Postgres client library?
Re:Bun v0.5 by Jarred on Wednesday January 18, 2023 @04:53PM (#34433645)
We will eventually have a builtin Postgres client, but Postgres.js is also a great choice. I started to work on a `bun:sql` module, but ran out of time for now.
Re:Bun v0.5 by jonasb on Wednesday January 18, 2023 @06:27PM (#34434634)
Great, thanks! I'll start with Postgres.js then.
Re:Bun v0.5 by 2h on Wednesday January 18, 2023 @08:20PM (#34435535)
Windows.
Re:Bun v0.5 by nequo on Wednesday January 18, 2023 @11:10PM (#34436602)
Hi Jarred, I am curious about your insight into the source of Bun's performance advantage over Node.js. The Bun website[1] writes this:

  Why is Bun fast?

  ... Zig's low-level control over memory and lack of hidden control flow makes it much simpler to write fast software. ...
Is your sense also that this is the root cause of Bun's outstanding speed? Node.js is written in C++ (although not primarily) which also requires low-level control over memory.

Is there something about C++ that makes it less well-suited than Zig for what Bun does?

Or is the problem with Node.js that it relies too much on JavaScript rather than C++ in hot paths?[2]

[1] https://bun.sh/

[2] https://github.com/nodejs/node

Re:Bun v0.5 by nonethewiser on Thursday January 19, 2023 @12:38AM (#34437079)
This is a great question, hope he answers.
Re:Bun v0.5 by culi on Thursday January 19, 2023 @01:16AM (#34437276)
Those benchmarks may not actually hold up to independent analysis:

https://medium.com/deno-the-complete-reference/node-js-vs-de...

Re:Bun v0.5 by Jarred on Thursday January 19, 2023 @01:57AM (#34437470)
Two things about the linked benchmark:

1) That benchmark appears to be bottlenecked by the HTTP client — that’s why the numbers are so close for each runtime. Effectively, it is benchmarking the http client and not the http server.

The benchmarking tool has to be at least as fast the server and it needs to support HTTP keep alive. That means popular Node.js-based benchmarking tools like autocannon don’t produce useful results in benchmarks like these

Instead, a tool like oha or wrk or bombardier is better

2) That benchmark is not using the ReactDOM server build for Bun's runtime, which is used in Bun's benchmark and is part of the next release of react-dom.

PR: https://github.com/facebook/react/pull/25597#issuecomment-13...

Source of Bun's homepage benchmark: https://github.com/oven-sh/bun/blob/9ef33312b1b199931c29c182...

Re:Bun v0.5 by culi on Thursday January 19, 2023 @11:55AM (#34442526)
Thanks for the response. If you haven't already, I'd hit up the author as they've done and continue to regularly do similar benchmarks
Re:Bun v0.5 by hiccuphippo on Thursday January 19, 2023 @10:08AM (#34441077)
He has an answer in this talk around the 11:30 mark: https://youtu.be/eF48Ar-JjT8&t=690
Re:Bun v0.5 by toastal on Wednesday January 18, 2023 @11:19PM (#34436655)
Will Bun ever open up to non-proprietary communications? Since inception, there has only been Discord (and I suppose GitHub issues, but that's also proprietary). There is a whole host of reason from FOSS philosophy, to privacy/security, to moderation to not be locked into such a platform. Will future Bun include a IRC server/room on an existing platform like Liberal.Chat, a Matrix server/room, an XMPP server/room, Zulip, RocketChat, or Discourse?
Re:Bun v0.5 by thatoneguytoo on Thursday January 19, 2023 @12:01AM (#34436878)
C'mon dude.
Re:Bun v0.5 by toastal on Thursday January 19, 2023 @03:59AM (#34438184)
Yeah, come on and label at least one unofficial, FOSS, non-corporate-owned option for users. Discord will be the next Slack; folks will want out after the hype dies down and more interest in protecting one's person data continues to rise.
Re:Bun v0.5 by icemelt8 on Thursday January 19, 2023 @02:39AM (#34437720)
haha
Re:Bun v0.5 by aitchnyu on Thursday January 19, 2023 @04:50AM (#34438486)
Whats the plan for wasm build? We are using quickjs-emscripten for running sandboxed scripts and we would love top level async and crypto.
Re:Bun v0.5 by junon on Thursday January 19, 2023 @07:48AM (#34439732)
Hi, why use a language (Zig) that is not yet ready for production? Even Andrew himself has stated that the standard library is not ready until v1. As of writing, the current release is 0.10.1.
Re:Bun v0.5 by ptrwis on Thursday January 19, 2023 @01:23PM (#34443647)
Do you plan to support http3 in the (near) future?