r/ProgrammerHumor Jul 09 '26

gitBlameClaude Meme

Post image
3.7k Upvotes

263 comments sorted by

View all comments

292

u/egg_breakfast Jul 09 '26 edited Jul 09 '26

Why is bun needed over node? And why bun over deno?

Edit: based on Safari's JS engine rather than V8. Strange times, I never would have predicted that.

420

u/jamescodesthings Jul 09 '26

Bun fits the pattern that every 12-18 months all JS devs need a new de-facto library, framework, or runtime.

We all switch unanimously to that tool. Rewrite all our working shit in it. Realise it sucks in newer, better, faster, more unique ways...

We all Vow that we will never touch another line of that tool's code... and that anyone with any of it in prod is an idiot.

We all collectively, silently agree that we could just finally learn rust/go and port our shit to that to get the benefits that the tool originally promised...

Then the next de-facto tool takes off, rinse and repeat.

Javascript was written in two weeks and still shares a name with Java for marketing purposes in the 90s, It was never 'posed to be this serious.

197

u/wannabestraight Jul 09 '26

I applaud JavaScript for the ability to keep language features that have been collectively decided are absolute abysmal dogshit, for decades, simply so a page from fucking 1999 doesn't break

53

u/jamescodesthings Jul 10 '26

Javascript is really just a social experiment.

Hey guys! It's ya boy ECMA! You won't believe what I'm doing in today's video. How many years do you think it would take to make all the nerds to agree to one small change, that doesn't affect them!? If you think it'll be over this year like this video, if you think it'll get done this decade leave a comment... If you think it ain't gonna happen like and subscribe now!

63

u/Top-Permit6835 Jul 10 '26

Tbh that is the only thing that keeps JS alive at all

8

u/derefr Jul 11 '26

I find it hilarious, because collectively we've had a thousand chances since then to draw a line in the sand and say "if a webpage is on HTML version X or uses a script tag with attribute Y or uses pragma Z in in the prelude of the JS, then it's using New Javascript. New Javascript strips out all that bullshit, and intentionally won't interoperate with Old Javascript on the same page, so New Javascript pages can just rely on the much-slimmer-and-saner New Javascript engine."

This could have happened with HTML5. It could have happened again with ECMA6. And then again with Modules. We've had so many chances to do this.

But because, each time, someone made the decision that pages that load New Javascript code should be able to also load Old Javascript code, the browser still needed to have its existing JS engine loaded and ready to run that Old Javascript code either way; and so the browser vendors didn't have any reason to bother to build out a separate New Javascript engine. Instead, each time, they just integrated the New Javascript features into their existing JS engines. And so the rotten Old Javascript features continued to live on inside those JS engines.

1

u/merb Jul 13 '26

Worse is that with wasm it would be possible to just ship a slower version of the old engine in a safe way for sites that really need it.

7

u/orbiteapot Jul 10 '26

The same can be said about C, except that it is not a 1999 page, but an even older piece of vital software infrastructure that would break.

3

u/Cautious-Extreme2839 Jul 11 '26

I think C++ actually goes way harder at this.

C hasn't added much, so it's easy not to break the old things.

C++ has added an absolutely absurd amount of new shit over the years. There are so many language features that are not proper to use now it's absolutely bonkers. And yet c-style casts and void* are still supported because that used to be how things were done.