Video není dostupné.
Omlouváme se.
Bun 1.0 Release | Prime Reacts
Vložit
- čas přidán 27. 08. 2024
- Recorded live on twitch, GET IN
/ theprimeagen
Reviewed article: bun.sh/blog/bu...
Authors: Jarred Sumner - / jarredsumner
Ashcon Partovi - / ashconpartovi
Colin McDonnell - / colinhacks
MY MAIN YT CHANNEL: Has well edited engineering videos
/ theprimeagen
Discord
/ discord
Have something for me to read or react to?: / theprimeagenreact
Hey I am sponsored by Turso, an edge database. I think they are pretty neet. Give them a try for free and if you want you can get a decent amount off (the free tier is the best (better than planetscale or any other))
turso.tech/dee...
I've been waiting for this. Bun's video got me excited despite having literally 0 impact on my work.
but.... you never know!
time to start shilling bun at my work
@@henriquemarques6196cult with rust ended. Now bun is my new deity
@@ThePrimeTimeagen bun... you never know!
@@TheDanVailwhy not both? There is already a rust plugin for bun ;)
The good thing about bun is that it can be entirely funded by selling plushies of their mascot
based
even food
Rug pull coming
Should be called Manju for package manager
The "good thing"? Bun's got many good things. That's just the best one.
I did try clean bun install on a local project against clean npm install
bun: 5.5s
npm: 1.25min
Difference on a bigger project is even bigger
bun: 8.2s
npm: 3.12min
Honsetly, I think Bun will be huge.
Lol my work project can take like 5 minutes installing my node modules using npm.
For real. It's kind of sad that he immediately dismissed the bun install speed. That insane speed difference IS a clean install. Bun finishes installing packages from the time I switch from the terminal to my code.
@@dhkatz_ exactly.. that's why I had to comment..
@@dhkatz_ youre acting like no other installments have done that
2010s: Separation of concerns
2020s: Reunion of concerns
We should all be stop being concerned is what I take away from that.
there's a difference between tooling and code architecture, but still funny
2030: Separation of reunionized concerns
The components of Bun are separated into different packages. What's different is that all these packages are governed under a single body and you don't need to convene the whole European parliament each time you want to do anything.
It took pnpm years to get the ecosystem to replace incorrect node resolve algorithms so its symlinking of dependencies would work with all build tools. This problem doesn't exist if you control the whole tooling landscape.
Nice one. It would be fun to watch a detailed performance test video on bun.
Coming soon!
Have you discovered Hyperfine yet?@@ThePrimeTimeagen
@@ThePrimeTimeagen excited for this moment!
Go vs Rust vs TS (Bun)!
For those wondering if that 'import x from y with { type: 'z' }' syntax is some weird Bun-ism, it's not. That's something that's being added to JS known as Import Assertations and it's currently sitting at Stage 3, about to be moved to Stage 4. This means that it's going to be added to JS itself immanently.
That RFC does use the word 'assert' instead of 'with', but they settled on using 'with' this March. Bun's just conforming to an upcoming standard which should help aid in importing non-JS things (CSS Modules could use 'import styles from 'component.css' with { type: 'css-module'}' and the bundler/runtime could throw a big fat wobbler if the file happens to contain JS or binary data instead, for example).
I try not yo read comments while watching video but couldn’t help myself and found yours oddly enough right at the point where that syntax was presented.
Strange coincidence or fate?
Is it only file type checking?
TypeScript also added features that were "already in Stage Whatever" like private fields and Decorators only to then have to adopt #fields anyway and decorators are a mess. Keep to the standards. Big nope from me. Sooner or later this will end in JavaScript and BunScript.
@@dixztube "Strange coincidence or fate?" Neither. Just selection bias. You didn't count all the times you read a comment and it wasn't a reference to that part of the video you were watching because it was unnotable. Lots of other people also read a comment during the video and didn't find the first one to be related to some specific part of the video. The minute quantity of people who did likely left a comment just like yours.
Hence forth I shall be using the BASED stack:
Bun, Astro, SQLite, Edge Deployment
Respect.
😂😂😂
Bun Alpine SQLite Elysia Drizzle
you know it's frontend when prime is in a white shirt
white t out, front ends out... pause
@@ThePrimeTimeagenAYOOOO
I think it's similar to the Go approach to provide all the tooling you need right from the box. And I like it very much!
The only additional API it needs is a built-in postgres driver imho.
@@BosonCollider it's actually on the roadmap
I've been trying Bun for the past few days and I'm actually loving it. I really hope this project gets adopted by the community and becomes the new standard for JS runtime
We were spitballing it in a meeting at my job today. I think in the coming months we're going to pilot it for a project or two since we all seemed pretty excited about it
It honestly seems too good to be true! I never in my life imagined myself saying this, but I think I'm ready to spread the bun.
Is JavaScript production ready now?
no
works on my machine
Bun build does come with a built in minifier by the way.
“used by billions of devices every day”. This is how you know a lawsuit is underway. Bun Virtual Machine.
chrome actually used it before 2013 and later fork it renamed it to blinker which what today still being used, its open source
After all, bun is a JRE
@@eyondev what? how?
@@celiacasanovas4164well it is, technically, a Javascript Runtime Environment
I like the longer version of "......"-gen ending. 😄 Bun might be the first killer app for Zig, even before Zig reach 1.0 in probably 2025. Among the newish language, Zig/Rust/Mojo outlooks sounds promising.
not entirely language related, to achieve current speed depends on engine, bun uses JavaScriptCore whereas nodejs/deno uses v8
@@0.Maidenthat is wrong. V8 is actually faster than JSC.
Its not the execution of JS thats at play here, its the syscalls and memory usage of the underlying native implementations.
V8 isolates (CF workers, Vercel edge) are already way faster than Node.
Bun for instance overrides the Node protocol for import resolution so fs and node:fs will resolve to fast native implementations.
Their JS implementations make GC more efficient as well.
I tried both cached and clean install. Bun always wins big at the "install" part. Like yea, 2000+ deps in 1.1s for my project. Ppl say install time doesnt matter until they see how fast it is
Hoolly sh*t that's impressive
Deno is also compatible with Node built-in modules btw, as long as you import it as "node:name-of-module" instead of "name-of-module"
"See? Blazingly fast!" Bun said proudly
Theo tried out the package install speeds and bun is still quite a bit faster than pnpm when running cached installs.
no offense to theo, but i don't trust his or anyone else "install" perf tests. i'll see for myself
@@ThePrimeTimeagenroasted
@@ThePrimeTimeagen pls upload a short video (not yt shorts) where you test it
BASED@@ThePrimeTimeagen
@@ThePrimeTimeagenthe chadagen
7:50 This was so confusing and frustrating to me when I started using JavaScript. The hours it took before I learned that I needed to use a library (Babel) to use different libraries together. Really poor DX.
6:50 As of 2023, there are over 1.46 billion active iPhone users worldwide, constituting approximately 21.67% of the total global smartphone user population. 97.7 million iPhone units were shipped in the first two quarters of 2023, while 225.3 million units were shipped in 2022.
“JavaScript tooling has become slow and complex” -> proceeds to introduce new JavaScript tooling. I feel like there’s an XKCD about this
I agree on the hooligans argument haha 0:41. But on a serious note, this is very exciting because it brings structure to the ecosystem of JS while not limiting the chaos and creativity of JS itself.
i'm an engineer, tons of respect and love for prime! that's a really good engineering mindset
🎯 Key Takeaways for quick navigation:
00:13 🛠️ Bun 1.0 is stable, production-ready, and eliminates the need for a version manager.
00:28 🌐 The toolkit is designed for JavaScript and TypeScript, aiming to simplify the developer experience.
00:58 🚀 Bun's goal is to eliminate the slowness and complexity of JavaScript tooling.
01:12 🔄 Bun serves as a drop-in replacement for Node.js.
01:54 🤓 Supports various file types including JavaScript, TypeScript, JSX, and TSX.
02:22 📦 Acts as an all-in-one package manager, eliminating the need for other tools.
03:02 🤝 Compatible with existing Node.js applications and npm packages.
04:13 🚄 Boasts 4x faster startup than Node.js, especially beneficial for TypeScript files.
06:58 📜 Built-in JavaScript transpiler, allowing you to run multiple file types with no dependencies.
09:10 🔌 Highly customizable through plugins.
12:26 🏎️ Package installation is faster compared to npm.
13:56 🧪 Includes a test runner with fast native code matchers.
16:03 🖥️ Windows build is still experimental and not fully optimized.
Made with HARPA AI
⚠️🫵Found a ☕📃 Javascript 📚 library 🧑💻 developer⚠️
Unicode was a mistake...
Zig is still in beta and Bun is written in Zig
CMake is part of the reason that I switched from C to Rust. It's still the best that C and C++ has.
when doing C, meson and make are ur friends :)
Cmake sucks balls
sinner
Just compile with zig build lul
@@ErikOnNoobTubeIf compiling were all that you want to do, you could just use `make`, but what actually must happen is that every platform that you want to support will have a different extensiom for the static library, dynamic library, just plain object (single compiled module) file, and executable file, then each has a different mechinism for getting a termination signal (Ctrl+C, etc.), each has a different way to say that you want that 1 struct packed a certain way without padding... CMake helps with all of that, and generates project files for IDEs when you want a debugger, as well as Build Ninja, when you want your CI/CD to build as fast as possible.
@@rushyscoper1651For using CMake or switching to Rust? Both have kept my head above water. I rewrote many build systems of the the dependencies that I used in CMake so that I could generate build scripts for Windows, Mac OS X (at the time), and Linux. I rewrote some parts of one of my code base that was frequently modifed with lots of threads accessing things through atomics and I was able to pass it off to a junor dev without having to stop what I was doing and go back and fix everything behind them. What part of my pragmatics is a sin?
dude I love your energy!
Bun still has a ton of issues, especially with their package installer. Its not quite a "drop-in replacement" yet unfortunately. But i'm cautiously optimistic they will fix a ton of issues.
In the days of 1.0 release popularity exploded as people try bun on their existing large projects to speed things up. This has also resulted in an explosion of github issues because it just isn't an NPM replacement, sometimes even by design (looking at you trustedDependencies blocking any and all pre/post installation)
yea i just tried to migrate my project. issue after issue
@@sonofong and when you get it to work, the performance gains aren't what they make it out to be either. On building frontend projects I've gotten maybe 20-25% improvement. Respectable and promising, but not worth the hoops you need to jump through imo.
This launch is mediocre at best, they should've held off on 1.0 if you ask me
> A gif exists
Primeagen: Is This Realtime?
definantly gonna use bun and htmx
for my next website with many permissions and server side logic. if it ever happens
i usually make apps as spa.
for context, i code as a hobby
Why defiantly?
@@Kanra951 it looked refreshing
and i did a project with it already
it was really fun, and fast to code, really liked it
Ohhh man! I had to check that I had my playback in 1x, because I felt that listening to this video in 2x 😅 Bun is as faster as you reading.
Correction: bun is much faster than pnpm on a clean install with no cache (the graph there reflects a real world test I saw on a real project), and MUCH faster with a cache. The drawback is that for MacOS it does a file copy because linking in MacOS is slow.
And yes, they are soing their own transpilation. Bun started as Jared writing esbuild in zig.
Prime you're wrong, bun is obscenely fast on clean installs. In my app, yarn takes over 200s, bun does it under 10s. Bun package manager is on a tier of its own.
Can I use Bun and Power Peg together? Seems like a good match.
Power Buns
Power Peg plug-in for Bun
@@ThePrimeTimeagenor would it be Bun Peg?
Bun stays pegged
Tested Bun with my stack. TypeScript, Express, MariaDB, ZOD, Prisma, Apollo-Server, Nexus. The problems are widely present with TypeScript. Lots of hacking around in order to start the project. Cold start using npm is about 15 seconds, with bun i used "bun src/index" startt was in 100ms which is amazing. After i deleted my node_modules and package lock, i installed the packages using "bun install" and that was done in 5 seconds. Using the npm, install process is about 30-60 seconds. However. They need to fix TS craps. Generally, TS configuration are pain in the ass, and you need to fight in it a lot. In order to start the entire think, TS complained about missing "performance" from prisma and things i never seen using npm. Also, complain about "Right hand side of instanceof is not an object" errors everywhere inside node_modules. Something is not supported. But, if they fix the bun to work good. Definetelly will be more pleasurable working with bun. Plain JS with no TS works awesome fast and good. Yes, i hate TS too, but we need them.
Not even close to billions: There are more than 1.46 billion active iPhone users worldwide as of 2023.
16:20 yeah Deno kinda went their own way as you mentioned and to me it seems they realized they will never win enough market share like that and kinda backtracked on that idea and went all in on npm/node support to make it easier for people to migrate and bring over their Node projects.
yeah i just was converting my personal projects from node or deno respectively to both node and deno support, but now the question is, do i keep it that way and use bun with compatibility or do i say f it i might aswell go spread the bun all the way lmao
Definitely.. if it was there from day 0, it might have been a more compelling option to switch.
I'm glad they did it at least. I really like Deno and the whole ecosystem around it. It's also a big plus that it's so easy to deploy code to Deno Deploy, which thankfully now also has npm support. Bun seems really great, but I think for new projects I'll stick with Deno for now, while older projects built on Node could maybe be converted to using Bun.
Prime reacting to those bun's 👀
spread 'em buns, spread 'em good
It is cool of Jarred Sumner to publish a build for a niche OS used for gaming that most people might not have even heard about along side optimizing for macOS and Linux.
Windows is literally stopping the progress of the human species
After years, this makes me want to write typescript code again 🤣
its weird to see prime without his hoodie! 😂
The numbers on their website don't lie. Cold install of packages on yarn in a large project (no cache): 220 seconds, on bun (no cache): 2 seconds. My internet speed is giga fast, bottleneck was the package manager. Bun seems great
Everyone and their dog is coming up with a new Javascript framework everyday.
Definitelly a improvment to Node, but still have some bugs specially with some React-likes (React, Svelte, etc...) and the create command
Any known ones? I'm about to convert my vite project from npm to bun
@@kamehameha38 Didnt test without using the interactable version yet, but even if it doesnt work, i think bun is worth it just because of the speed for the dev server.
I can't pretend I know much about the specifics of V8 vs JSC/Webkit (or if it even matters in the slightest in 2023) but I really question the choice of targeting an engine built for 1 browser and ecosystem vs the engine that pretty much every browser made in the last 15 years is built around, and then touting that as a feature.
nothing like learning to program with Freddy Mercury as a teacher
Yesterday, I used Bun to install over 1400 dependencies in under 6 seconds. They were Microsoft libraries. I cried.
If it’s bs benchmarks, Do a benchmark video comparing bun node yarn pnpm please!!
I've only fiddled with Node, and thought "why 5 seconds to strip types off and run tests?" Bun is reasonable though.
As of February, there are over 2 billion active Apple devices. Almost all iOS devices, which can only run Webkit
Centralized planning makes everything better!
Seems Bun make a huge change in js environment!! I will try, thanks Buneagen
It’s 2040, JavaScript somehow became the fastest runtime. Rust compiles down to js for max perf.
if you thought that pnpm vs bun was without cache, you should have done it live! Both with cache how it compares.
Glad you shown us those exclusive pics in this video.
Good summary!
Having everything in one place is long overdue.. why use 10 different tools & have to deal with version compatibility & upgrades, when you can just run ‘bun upgrade’ 👏🏼 #blazinglyfast
Computer people adage: “a tool should do one thing and it should do it well”?
Bun: 🖕 (middle finger emoji)
6:47 Apple's Tim Cook claimed 2 billion active devices in February 2023.
I don't care about js for now but this is nice news for zig.
That Bun in a nutshell @14:20 ( I agree and honestly think this is ALL we need to have )
it just came to my attention that I haven't seen prime in white in a loooong time
The hot reloading that saves state seems like a nice way to lock up your browser tab with unintentional infinite loops.
You can already do that by adding DOM nodes in a loop.
Maybe some day web app speed can actually be the speed it's supposed to be
impossicant
a positive video about JS tooling wow maybe 2023 isn't so bad after all
Yea why support the operating system most used by developers? That would be a really bad strategy for adoption.
"Continuously peg your version" Gonna alias this as "powerpeg" in bash 🤔
ah yes, the cargo of javascript
Should have called it Buntime, let the buntimes begin!
DHH will not live this down
ciesindhh
Bun is my new personality 🎉
This is the kick in the ass the JavaScript ecosystem really needed, and more.
What happened to WebAssembly?
Don't be too quick to hate on the macros. It's just a way of doing logic at bundle-time rather than runtime. Probably real useful for CI/CD testing considerations so that specific checks can be made in the bundle step prior to the testing phase and communicated to the devs with error messages before they make asses of themselves. Seems useful in the JS ecosystem where you otherwise can't really know if there are problems until staging or production in a lot of cases.
They don't do all the things. They don't do code splitting or tree shaking. They don't have a dev server.
"Do not use Zig in production" - Andrew Kelly. Hahahaha, I smell C replacement in next decade.
That comment was ignored because no one reads the comments
@@BlazingMagpie This was his Twitter page back in 2019/2020? I don't remember correctly. He even did fun of it on one of his presentations when financial database TigerBeetle was disscussed on.
I tried bun this past weekend. It's super fast. My only concern is unit testing. Their replacement for all jest runner functions might screw things up. I wasn't able to run a few unit tests that asserts DOM manipulation.
I was also disappointed at my job when I realized it didn't work with vue-cli-service to run unit tests. For whatever reason jsdom doesn't spin up when run through bun
@@David-gj6dc bun still has a ton of issues, both with their runtime and installer. A lot of widely used packages don't work yet. It's a really promising project but it's just not quite the drop-in replacement they've made it out to be. I hope they work on getting it over the line.
@@moon_bandage Yeah, really feels like they went full on marketing mode for their 1.0. It still needs a lot of work before it can be a drop in replacement.
I won't be surprised if bun shipped a few frontend frameworks of it's own that work 10 times faster than react and svelte.
BunKit will change the js ecosystem forever, from it's release on we will say x years before/after release of BunKit
Do you have a video about why you wouldn't want to use JavaScript on the server?
As a non-web dev that doesn't want to touch JS/TS with a 2m stick. The more crap it removes, the less bugs and better quality as an end-user for me :)
i want to be pegged to the latest version too
"It just works!" Gives me bad flashbacks to Bethesda... lol! But thank god for Bun if it works.
*Watch out: 9 billion devices are running Safari*
Sounds like Todd Howard had something to do with it, as it "just works"
“Apple users are not in the billions” with iPhone and Mac, i don’t know man
I think This is the first time I see you without a hoodie
That es module import and commonjs requre in one file is my favorite part of this announcement. I would have preferred to wait 5 more years to have node implement the interop that way instead of what they did with package.json configs and new file extensions. There's so many module resolution algorithms now, it's impossible to understand what you are doing
Haven't tried bun for a new project, but I have explored using Bun 1.0 dropped into a legacy project. Wasn't able to get it working, unfortunately, neither as a replacement to the Node processes and not even to install the packages (I think because of how Bun handles lifecyclels).
Prime, i have a question?
If you start learning programming in 2023 which language would you like to choose?
Choose in sense: which languages would be great choice for future 🔮, im sure as developer, after spending hours and years you got experience and ideas.
LEARN C YOU COWARD
It depends on what you're interested in and frankly doesn't matter that much because once you've got the concepts down you can learn other languages easily.
If you can give a programming 1 year then start with c, then start learning HTML, CSS, JS, and then react
C, Assembly, Python/Javascript and FPGA
Data Structures, SOLID, Design Patterns, DDD
I feel vibrant and passionate about the computer language I use.
14:00
Vitest is not a stupid name and it 's not pronounced like in the video.
Vite is the french word for fast, so nothing stupid here.
Does bun support jQuery?
More than 1.46 billion active iPhone users worldwide as of 2023
why u dont wanna use javascript for server side? what else you would use?
The name, is the Bun-a-gen. 🐰
Node modules is a more complex problem than you think prime
I don't think you can release a software as 1.0 if the most used desktop os is not production-ready.
Maybe an RC or beta version is fine.
but i dont know why developer keep using windows 😂
@@harunalrd That's because modern developer also play games.
Bun will never be the glue that binds rust together. Like python is for c++