Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

A lot of people seem confused about this acquisition because they think of Bun as a node.js compatible bundler / runtime and just compare it to Deno / npm. But I think its a really smart move if you think of where Bun has been pushing into lately which is a kind of cloud-native self contained runtime (S3 API, SQL, streaming, etc). For an agent like Claude Code this trajectory is really interesting as you are creating a runtime where your agent can work inside of cloud services as fluently as it currently does with a local filesystem. Claude will be able to leverage these capabilities to extend its reach across the cloud and add more value in enterprise use cases




Yea, they just posted this a few days ago:

https://www.anthropic.com/engineering/advanced-tool-use

They discussed how running generated code is better for context management in many cases. The AI can generate code to retrieve, process, and filter the data it needs rather than doing it in-context, thus reducing context needs. Furthermore, if you can run the code right next to the server where the data is, it's all that much faster.

I see Bun like a Skynet: if it can run anywhere, the AI can run anywhere.


Java can run anywhere too

Java is owned by Oracle. And you sure don't want to do business with that company. There's a reason why postgresql is slowly eating their cake.

This is FUD. Java has many open source implementations and nobody needs to deal with Oracle.

Even if we postulate that he fear is unwarranted and irrational, the fear is still real, based on Oracles history of lawsuits, and so the explanation still holds.

It explains nothing.

Java is possibly the safest bet on the future, it's open source both in spec and in the most common implementation (OpenJDK), and is so widely used that there are multiple FAANG companies critically dependent on Java working that alone could continue the development of the platform were anything happen.

Besides, Oracle has been a surprisingly good steward of the language.


https://en.wikipedia.org/wiki/Google_LLC_v._Oracle_America,_.... is not what I would call “good stewardship”

What relevance does it have at the topic at hand? Can you give an example of what could happen that would make sense to worry about?

It's a lawsuit by Oracle against a FAANG company that relates in some (even tangential) way to the FAANG company's use of Java.

That's all that's needed to create a sense of caution for would-be adopters.


Running Java is not remotely the same as copying the API interface of the whole standard library and providing an alternative implementation, just to avoid paying Sun, who specifically intended on getting money from mobile usage.

Oracle lost the lawsuit and I do agree with the decision in that APIs should be freely replicated, but let's not pretend that Google was some saint good guy here fighting the good fight, they were just cheap and aggressively capitalistic.


Doesn’t every open source implementation just “copying the API interface of the whole standard library and providing an alternative implementation”?

But Google did NOT copy the open source implementation. Google copied parts of the closed-source proprietary Java SE API specifications in order to have compatibility and without taking a license. Kindly remember that Android started using OpenJDK very late - around 2015–2016.

Legally the case was about copying declaring code from a proprietary product, not an open source one.


And they lost, because it was fair use, which was obvious to most people in the field. The fact that the lawsuit happened in the first place is why I will never trust Oracle.

It was not all that obvious from a legal point of view. Google vs Oracle was the first US Supreme Court case directly testing whether copying API declarations can violate copyright. It was also decided later in the EU as well in that SAS vs WPL case where the EU Court of Justice finally ruled that software functionality, programming languages, and file formats are not copyrightable.

These famous cases set the legal tone for the entire world actually.


Yes - this.

The implications of a judgment in favor of Oracle were staggering. Any codebase that is extensively dependent on a proprietary API is legally locked in to using that company's proprietary implementation as long as that company asserts copyright on its API. Anyone who implements the same API to offer a drop-in alternative to the proprietary product is infringing -- even if a someone privately reimplements the API without distributing the reimplementation.

Which immediately implicates WINE (Windows), Mono (.NET), ReactOS (Windows), Darling (macOS/Darwin), GNUStep (Cocoa/OpenStep), Anbox (Android), Ruffle (flash), GNU Octave (MATLAB), Mesa 3D (Direct3D), ZLUDA (CUDA), and DXVK (Direct3D 9/10/11), to name a few of the most popular...


But they didn't copy code. Because the code was proprietary and they didn't have access to it.

Reimplementing an interface != stealing code.


We could also postulate based on left-pad that npm and javascript in general shouldn't be used.

It has similar bases on facts.


"npm and javascript in general shouldn't be used" — stipulated

Immediately read this as "prostate" and proceeded to spit out my coffee. Carry on

Well except Google that got sued for US$8.8 Billion because they decided to use specific API signatures but provide their own implementation...?!

What Google did was similar what Microsoft did back in the days. Marketing something as Java, but wasn't Java.

It incredible how far the "Do not evil" marketing won the hearts of computing nerds, Google only got positive karma for doing with Android exactly what Microsoft did with J++.

To this day Android Java is not fully compatible with Java proper, and Kotlin became Google's version of C#.


Come on, that's a completely different story, Google made their own independent SDK using but incompatible with Java. Nobody's arguing you should do that.

Plus last time I checked Oracle lost that lawsuit.


... and Oracle lost

And the lesson is not to trust Oracle.

Anywhere where the correct Java version is installed correctly, important caveat

You can just supply a minimized runtime for your program, which is the primary way to ship Java programs for quite some time now.

Are you a Java dev by any chance?

I'm a dev. I don't know, I'm using a bunch of different languages, Java being one of them and I find it a very good fit for typical backend requirements.

Java’s cardinal sin was not owning the OS like Microsoft’s C# to force end-users to update the framework. Oracle really didn’t understand what they were sitting on with their Ubuntu competitor Solaris.

This has no longer been the case for C# for 10 years since the release of .NET Core and (now) .NET. The runtime is no longer bundled with the OS.

This is only true for older .NET Framework applications.


Isn’t it post installation still updated via Windows Update as they said (force end-users to update the framework)?

Only patches, it doesn't automatically install new major versions

It’s relevant enough that I feel I can roll out this bash.org classic…

<Alanna> Saying that Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders

EDIT: someone has (much to my joy) made an archive of bash.org so here is a link[1], but I must say I’m quite jealous of today’s potential 1/10,000[2] who will discover bash.org from my comment!

[1] https://bash-org-archive.com/?338364

[2] https://xkcd.com/1053


Perhaps my biggest claim to fame is being #11 on the bash.org top 100.

Hah, found it: https://bash-org-archive.com/?207373

So how did it work back in the day, people would just submit text and it would get upvoted? I always assumed like half of them were just made up.


Yep, exactly that. I recall that the voting was interesting because it was just ranked on absolute number of votes, no time decay or anything, so it would take quite some time for a new contender to accumulate votes to "compete" on the leaderboard. I don't remember if there were even accounts or if anyone could just vote repeatedly, modulo some IP or cookie-based limits.

As far provenance, I assume a lot of them were made up too, but this one was real.


Not discovered from scratch, but was a big fan when it was alive and kicking. Went there from time to time to get some mood boosters. So was very sad when found that it's gone (original one). Thanks a lot for sharing that bash-org-archive.com exists, what a great fun going down this memory lane.

I’ve been browsing the archive since I left that comment, they really were the good old days weren’t they. IRC was my introduction to geekdom, and I don’t think it would be unreasonable to say it shaped my life. Here I am 30-ish years later, an old man yelling at clouds — and I wouldn’t change much!

If anyone ever requested/used an eggdrop(?) bot from #farmbots or #wildbots on quakenet then thanks to you too; that was certainly one of the next steps down the path I took. A (probably very injectable) PHP blog and a bunch of TCL scripts powering bots, man I wish I could review that code now.


As one of the lucky 1/10000, holy shit that was amazing. Thank you.

To everyone else: I acknowlege that this post is not adding value but if you were one of the lucky 1/10000 you would understand that I have no choice.


That's hilarious. My comment is mostly a joke, but also trying to say that "runs everywhere" isn't that impressive anymore.

Yeah everyone proclaims to IANAL nowadays.

wait - how do you search the quotes??

https://www.google.com/search?q=site%3Abash-org-archive.com+...

seems to work. relies on that individual quote being indexed, and google SERPs feeling like returning full results at the moment, of course. when the latter fails, I've found success with site: queries on Bing (of all places.)


I don’t think there is a search function, I got the exact wording from a web search (I think “bash Java anal”, arguably a dangerous search!) and then after submitting I wondered if there is an archive of the quotes.

I found another appropriate XKCD: https://xkcd.com/1682/

I ain’t hot a horse in this race I just put 2 and 2 together to get 4. I’m sure Java is fine but they didn’t buy Java.

Not in the browser, and no – webassembly doesn't count, otherwise you can say the same about Go and others.

Wasm does count, and you can say the same about Go and others.

Sure, they run, but they can't touch the DOM or do much that's very interesting without JavaScript.

Js just runs as is. Atwood's Law and all that.

I remember a time ...

Why doesn’t wasm count?

Compile step makes things more complicated.

As opposed to minimized JS.

You don’t need to minimize JS to be able to run it.

why would the tool minify the script it generated?

Same problem, different orders of magnitude.

May I ask, what is this obsession with targeting the browser? I've also noticed a hatred of k8s here, and while I truly understand it, I'd take the complication of managing infrastructure over frontend fads any day.

HN has a hatred of K8s? That’s new to me

K8s is used in many situations it shouldn't be, and a lot of HNers (including me) are bitter about having to deal with the resulting messes

This is a site for startups. They have no business running k8s, in fact, many of the lessons learned get passed on from graybeards to the younger generation along those lines. Perhaps I'm wrong! I'd love to talk shop somewhere.

java did run in the browser once.... it was embedded directly on the browser there was also nsapi

you could also run java with js if you are brave enough https://kreijstal.github.io/java-tools/


Java runs in the browser currently, after a transpilation step (same as .ts):

https://teavm.org/


Also CheerpJ (with support for Swing UIs even), Closure compiler, and now GraalVM also has an experimental WasmGC target.

On 3 billion devices

Java is not for sale.

Java can be depended on without buying anything.

Oracle lawyers want you to think so.

Ahem, Temurin/OpenJDK disagree

You mean the company that 100% open-sourced Java and made the open-source (same license as Linux) OpenJDK the reference implementation?

Java's price is your time which you will need tons of as Java is highly verbose. The ultimate enterprise language

try java 25, and update your priors :)

Can't exactly write Java 25 without updating your legacy application, can you? And it tends to be the oldest applications that are the hardest to update for some painful reason. Would be nice if we all could live on the bleeding edge all the time

Developers that don't care are to blame.

Lipstick on a pig.

No amount of updates will wash away the stink of Oracle from Java.

This is hn, where unless something is written in rust or zig usually, people will hate on it. They would rather pump a cli tool than any software of sizable scale.

I love Rust. I love Haskell even more. I’m a big fan of Scheme. But anyone who “hates” on Java is just revealing a lack of understanding of what’s important in professional software development.

Again, Temurin/OpenJDK disagree

This is such a crappy point. People say it's better now but even in java 8 it's just BS. Oh boo hoo I have to write a few extra words here and there. Woe is me. The IDE will autogenerate the boilerplate for you, you don't even have to write it yourself. And once it's there it's actually useful, there's a reason it exists.

Seriously. I don’t get all the over concern over the verbosity. At least in java you can tell what the hell is going on. And the tools…so good. Right now I am in python typescript world. And let me tell you, the productivity and ease of java and c# are sorely missed!

run code anywhere hamstrung by 90s syntax and hidden code indirections

Haven’t checked in on Java in a while?

From what I gather everyone is still stuck on Java 8 so no need to check?

Even stuck on Java 8 it's less verbose than Go, which everyone seems to love.

But the majority of projects are on a newer JDK than 8 for quite some years now.


Not even latest Java is less verbose than Go.

Are we talking about the language that has a couple extra lines after every statement, disguising as error handling?

Go only looks like that in toy examples where you have one method calling a bunch of libraries and services. If you are writing actual logic, the error handling is preferable to exceptions IMO, because no project even uses them correctly.

Now if you complain about slice handling, I'm with you.


go's error handling is very poor and too verbose, but go is still way less verbose than Java overall. Like any other language.

Java is the running joke of verbosity, and you are too if you seriously argue that it's not.


Coding repetitive for-loops for everything and mind-numbing error handling put everywhere makes line count bloat up like crazy. Go is one of the most verbose languages I have seen and I say this as a guy coding in Go in my daily work.

Evidence is easy - think of a problem and ask LLM to generate idiomatic examples (leverage Java streams, with functional decomposition, etc) in Go and Java and with error handling. You will find that more often than not, the Java line count is far smaller.


I also code go daily for work, and while what you say is true, it's still far less than what I remember from working with Java, which was constantly wrapping mundane crap in classes and other stuff.

Yeah, well you can write "enterprise 10k patterns crap" in any language. Java projects suffered from the craze of those initial years where every "architect" and their grandmother insisted on patterns.

Idiomatic, Modern Java is written quite differently. Today, Go has a lot of arcane, noisy, complex code too. Ex: many, many k8s Go projects.


What is an example of a modern Java open source codebase, so I can have a look?

Feel free to provide some evidence. Like really, I would be interested in examples e.g. from the Java stdlib that are significantly more verbose than another generic purpose language.

But I do know that you are meaning stuff like AbstractFactoryFactory, but you do realize that there is zero need to write anything like that and you can (and people do) write bad code in any language?


Why is the quality of discourse in this thread so low?

You started it, where's your evidence?

I can guarantee you that 9/10 times any similar Go snippet will be more verbose than Java.

Before go had generics it was pretty common to have multiple implementations of the same thing just for different datatypes.

Where do you gather this from? We are a startup, on Java and on 25.

Why didn't you choose something more modern/sensible. go/kotlin/anything else on the planet?

Go is more verbose than Java though, in what way would it be more sensible?

Also, Java's ecosystem is unparalleled (top 3 in size, depending on domain it usually has the best packages (e.g. typical backend-related functionality)), has stellar performance, a huge developer base, best-in-class IDE support, even LLMs understand it exceptionally well (given how widely represented it is in the training corpus, plus has a decent type system) if that's your thing.

For a typical backend system, you really have to have a good reason to choose something else at this point.


Java is ok for typical backend stuff, but Go doesn't hide things the way Java does. With Go, you actually learn what's going on, while with Java, you just learn your way around the various frameworks. As a programmer, I don't want that That said, my current company uses Spring Boot. It does its job, but it wouldn't be my top choice.

It is the programmer's job to learn what is going on. Java itself doesn't hide anything from you. You are free to write a servlet from scratch, or use a framework like Spring to hide everything. Your (company's) choice really.

People end up choosing something that has batteries included so they can focus on solving business problems. A programmer who will superficially understand SpringBoot without understanding how it works. Really, there is no magic there - its a few core concepts - annotations, bytecode enhancement and dynamic proxies. Maybe Im missing one or two. Everything else is built on top of this.

This is regardless of language/ecosystem. If I do not understand the fundamental concepts, I will never be successful in that ecosystem.


The layer in Go is much thinner, if I want to learn about a new concept or technology. Of course there is no magic, if you are willing to put the time in. The question is how much time is required.

The layer is thinner because you can't create abstractions as well in that language.

But that's like saying that a bicycle is better than a car, because the first is simpler to understand. (At the same time, nothing prevents you from assembling a bicycle in Java if that's indeed what you need. But for general long distance travel you are better off starting with a car frame, aren't you?)


Except for Kotlin, which is a much nicer language to deal with.

A nicer language which is much slower to compile compared to Java.

Little nicer for sure

While kotlin is somewhat nicer, it is not making a huge difference compared to java25. Like the sibling said, go is as verbose , the JVM is unparalleled still.

Why wouldn't I choose java


Golang has a way smaller memory footprint on average.

I left a place using Java to run edge apps and the footprint was a major issue.


Kotlin sensible? It plays catchup game with newest JDKs.

No, everyone isn’t. You really should check.

This is absolutely untrue. Code from JDK 8 runs fine on JDK 25 (just released LTS). It is true that if you did something silly that locks you into certain dependency versions, you may be stuck, but this is not the majority of applications.

I tried to check in on Java recently but got a NullPointerException when using the AbstractSingletonProxyFactoryBean !

R/ProgrammerHumor quality comment here.

I'll never understand people making fun of verbosity. So you really prefer short, ambiguous, opaque and unpronounceable abbreviations? Really?!

For me at least, I find it easier to see the shape of algorithms, control flow, and expressions when the variable names are concise. But this also might be because I have found Go to fit my use-cases and thinking style well, and Go programs tend to follow this naming convention.

For example, if I have a struct `PageEntity` with a field `Id`, and I am iterating over a slice of such IDs, I would prefer using `pid` instead of `pageEntityId` as the variable name. But Java APIs and conventions tend to use these longer names, so I find it takes more thinking to remember the different names instead of quickly seeing the behavior of code at a glance.

Java also tends to have a lot of inheritance which results in these long glued-together names and makes it harder to follow program flow because behaviors get introduced in multiple different places (i.e., it has the opposite of locality of behavior).

But those are just my opinions and experiences! I know many people love Java, and it is a versatile and powerful language.


That's really funny that you complain about complexity and then use Go which is a significantly more verbose language...

i haven't. do people still use the "class" keyword?

Is that the issue people have with Java?

and JavaScript even anywherer!

AI tools value simplicity, fast bootstrapping and iterations, this rules out the JVM which has the worst build system and package repositories I've ever had the displeasure of needing to use. Check in gradle binaries in 2025? Having to wait days for packages to sync? Windows/Linux gradle wrappers for every project? Broken builds and churn after every major upgrade. It's broken beyond repair.

By contrast `bun install` is about as good as it gets.


Gradle is something that only Android devs should be using, and because of Google imposes its use. Had not been for Google and Android Gradle plugin, almost no one would care.

Please give me Java tools over C, C++, JavaScript or Python ones, any day of the week.

Only .NET and Rust compare equally in quality of DX.

AI tools value simplicity?!?

Check in the Python dependency management chaos, what it is the proposal this month, from what AI startup doing Python tools in Rust?


Apples and oranges. Maven is leagues beyond npm. Screw Gradle.

How many mass security incidents have there been with npm just the last few weeks?


Maven is excellent! Once you understand it, you can work with almost any Maven project without needing to learn the specifics. I’d take Maven or Cargo any day over anything in the JavaScript or Python ecosystem.

It's just too bad bun is based on literally the worst programming language that's in actual use.

TypeScript's one of the best, and bun runs it natively.

Typescript is a band aid on the gaping gushing wound that is JavaScript. It attempts to fix one problem JS has and it doesn't really succeed.

Sounds like cope. Great Type System, Language Server, IDE Integration, compiler feedback, tooling ecosystem, DX Hot Reload - all things that made it the most used programming language on GitHub.

Overcomplicated type system. Language server seems redundant to mention, everything has a language server. Everything has ide integration. Everything has decent compiler feedback. Everything has hot reloading.

yes some languages have them, no they're not as good.

Pretty much all major languages have all of those features save hot-reloading, but that only even makes sense for UI written in an interpreted language.

There's hot reloading in .NET and Java

What is the use case for either of those two languages?

By using Gradle you certainly didn't make yourself a favor.

I am unsure why people feel the need to say this about Gradle. If you aren't doing anything fancy, the most you will touch is the repositories and dependencies block of your build script, perhaps add publishing or shadow plugins and configure them accordingly but that has never been simpler than it is now. Gradle breaks when you feel the need to unnecessarily update things like the wrapper version or plugins without considering the implications that has. Wrapper is bundled in so you don't have to try and make a build script work with whatever version you might have installed on your system if you have any, toolchain resolution makes it so you don't even need to install an appropriate JDK version as it does that for you.

If the build script being a DSL is the issue, they're even experimenting around declarative gradle scripts [0], which is going to be nice for people used to something like maven.

0: https://declarative.gradle.org/


So now there will be Kotlin DSL, Groovy DSL and declarative DSL, spread out over up to five files in the project root. Gradle is like C++, trying to climb out of it's complexity hole by digging deeper every new version.

The problem with Gradle is that it never had a clear philosophy to begin with. It's trying to be everything to everybody, changes best practices every year and has enough features that the project at hand could entirely be built out of Gradle scripts itself.

And oh, it still requires an update to run everytime a new JDK is released even though the SDK is the most backward compatible thing ever written.


And yet. None of these issues exist in Maven to begin with.

At the same time, only Maven requires doing a clean install from time to time as it fails to properly track what needs updating.

Gradle is better from this perspective, and hopefully with its "kotlinization" we will see some stability, which was the biggest issue it had before.


I personally never had to do a clean install, and thought this is being perpetuted due to a mixture of habit and paranoia.

In any case, what are the proposed benefits of the "kotilization"? I tried it about a year ago but realized that it's just a syntax level-wrapper around the same old DSL underneath. In the end, I still viewed it as an ill-described DSL with a massive learning curve outside of happy-paths.


What do you mean by "context" here?

Under "Programmatic Tool Calling"

> The challenge

> Traditional tool calling creates two fundamental problems as workflows become more complex:

> Context pollution from intermediate results: When Claude analyzes a 10MB log file for error patterns, the entire file enters its context window, even though Claude only needs a summary of error frequencies. When fetching customer data across multiple tables, every record accumulates in context regardless of relevance. These intermediate results consume massive token budgets and can push important information out of the context window entirely.

> Inference overhead and manual synthesis: Each tool call requires a full model inference pass. After receiving results, Claude must "eyeball" the data to extract relevant information, reason about how pieces fit together, and decide what to do next—all through natural language processing. A five tool workflow means five inference passes plus Claude parsing each result, comparing values, and synthesizing conclusions. This is both slow and error-prone.

Basically, instead of Claude trying to, e.g., process data by using inference from its own context, it would offload to some program it specifically writes. Up until today we've seen Claude running user-written programs. This new paradigm allows it the freedom to create a program it finds suitable in order to perform the task, and then run it (within confines of a sandbox) and retrieve the result it needs.


Claude Code moved to partial file reads over the summer.

Super premature optimization. It’ll hallucinate what lines it needs to read, it’ll continuously miss critical context in favor of trimming tokens.

Luckily we can now hook and force the agent to read full files at least once.


I've had it happen almost every time I try to give them another shot. It presents a snippet of my code, claims there's a bug due to an unhandled edge case, and completely miss the (literally) very next line that specifically handles the edge-case it mentioned.

Thanks for the reply.

Jesus wept, for the nerds joyfully want skyney

Yea - if you want a paranoidly-sandboxed, instant-start, high-concurrency environment, not just on beefy servers but on resource-constrained/client devices as well, you need experts in V8 integration shenanigans.

Cloudflare Workers had Kenton Varda, who had been looking at lightweight serverless architecture at Sandstorm years ago. Anthropic needs this too, for all the reasons above. Makes all the sense in the world.


Bun isn't based on V8, it's JavaScriptCore, but your point still stands.

Who would have predicted KDE could become the foundation of both AI and gaming

Also the worlds most popular web browsers

Gaming = talking about the Steam Deck?

you left out the best part...what happened to Kenton? He looked at lightweight serverless architecture..and then what?

I built Cloudflare Workers?

This is going to be a HN Classic.

This is how I found out about HN Classic! https://news.ycombinator.com/classic

“It's the same algorithm as the regular front page, with the difference that the votes are those by users before Feb 13, 2008.“

Clever!

- https://news.ycombinator.com/item?id=24401292


Comment of the year

Boom

mic drop

You single handedly built all of Cloudfare workers? Impressive, most of us would have required a team or a “we”.

> Yea - if you want a paranoidly-sandboxed, instant-start, high-concurrency environment, not just on beefy servers but on resource-constrained/client devices as well, you need experts in V8 integration shenanigans.

To be honest, that sounds more like a pitch for deno than for bun, especially the “paranoidly sandboxed” part.


It's fine but why is Js a good language for agents? I mean sure its faster than python but wouldn't something that compiles to native be much better?

JS has the fastest, most robust and widely deployed sandboxing engines (V8, followed closely by JavaScriptCore which is what Bun uses). It also has TypeScript which pairs well with agentic coding loops, and compiles to the aforementioned JavaScript which can run pretty much anywhere.

Note that "sandboxing" in this case is strictly runtime sandboxing - it's basically like having a separate process per event loop (as if you ran separate Node processes). It does not sandbox the machine context in which it runs (i.e. it's not VM-level containment).

When you say runtime sandboxing, are you referring to JavaScript agents? I haven't worked all that much with JavaScript execution environments outside of the browser so I'm not sure about what sandboxing mechanics are available.

https://nodejs.org/api/vm.html

Bun claims this feature is for running untrusted code (https://bun.com/reference/node/vm), while Node says "The node:vm module is not a security mechanism. Do not use it to run untrusted code." I'm not sure whom to believe.


It's interesting to see the difference in how both treat the module. It feels similar to a realm which makes me lean by default to not trusting it for untrusted code execution.

It looks like Bun also supports Shadow Realms which from my understanding was more intended for sandboxing (although I have no idea how resources are shared between a host environment and Shadow Realms, and how that might potentially differ from the node VM module).


Doesn’t Bun use JavaScriptCore though? Perhaps their emulation, rather implementation, leans more towards security.

The reference docs are auto generated from node’s TypeScript types. node:vm is better than using the same global object to run untrusted code, but it’s not really a sandbox

Running it in a chroot or a scoped down namespace is all your need most of the time anyways.

Not to mention the saturation of training data

> It also has TypeScript which pairs well with agentic coding loops, (...)

I've heard that TypeScript is pretty rough on agentic coding loops because the idiomatic static type assertion code ends up requiring huge amounts of context to handle in a meaningful way. Is there any truth to it?


Not sure where you heard this but general sentiment is the opposite.

There was recently a conference which was themed around the idea that typescript monorepos are the best way to build with AI


> Not sure where you heard this but general sentiment is the opposite.

My personal experience and anecdotal evidence is in line with this hypothesis. Using the likes of Microsoft's own Copilot with small simple greenfield TypeScript 5 projects results in surprisingly poor results the minute you start leaning heavily on type safety and idiomatic techniques such as branded types.

> There was recently a conference which was themed around the idea that typescript monorepos are the best way to build with AI

There are also flat earth conferences.


It's especially tricky since monorepos are an obvious antipattern to begin with. They're a de-separation of concerns: an encouragement to blur the unit boundaries, not write docs, create unstable APIs (updating all usages at once when they change), and generally to let complexity spread unchecked.

Hate to say it but this sounds like a skill issue. The reason Typescript monorepos are gaining popularity for building with AI is because of how powerful TS's inference system is. If you are writing lots of types you are doing it wrong.

You declare your schema with a good TS ORM then use something like TRPC to get type inference from your schemas in your route handlers and your front end.

You get an enforced single source of truth that keeps the AI on track with a very small amount of code compared to something like Java.

This really only applies to full stack SAAS apps though.


I think this is contingent on the skill of the human reviewing the AI's code.

> It also has TypeScript which pairs well with agentic coding loops

The language syntax has nothing to do with it pairing well with agentic coding loops.

Considering how close Typescript and C# are syntactically, and C#'s speed advantage over JS among many other things would make C# the main language for building Agents. It is not and that's because the early SDKs were JS and Python.


Typescript is probably generally a good LLM language because - static types - tons and tons of training data

Kind of tangent but I used to think static types were a must-have for LLM generated code. But the most magical and impressively awesome thing I’ve seen for LLM code generation is “calva backseat driver”, a vscode extension that lets copilot evaluate clojure expressions and generally do REPL stuff.

It can write MUCH cleaner and more capable code, using all sorts of libraries that it’s unfamiliar with, because it can mess around and try stuff just like a human would. It’s mind blowingly cool!!


Clojure is such an underrated language for vibe coding for this very reason.

Makes me wonder what a theoretical “best possible language for vibe coding” would look like


whoa, instant upgrade. thanks!

> C#'s speed advantage over JS among many other things would make C# the main language

Nobody cares about this, JS is plenty fast for LLM needs. If maximum performance was necessary, you're better off using Go because of fast compiler and better performance.


>If maximum performance was necessary, you're better off using Go because of fast compiler and better performance.

That's not true, if anything, C# is faster and also compiles fast enough.

https://benchmarksgame-team.pages.debian.net/benchmarksgame/...


C# AOT "compiles fast enough" compared to Go or are you looking at C# JIT ?

https://benchmarksgame-team.pages.debian.net/benchmarksgame/...


> Nobody cares about this

And that was my point. The choice of using JS/TS for LLM stuff was made for us based on initial wave of SDK availabilities. Nothing to do with language merits.


This has always been the case. The Java and C# ecosystems prioritise stability and scale. They wait for ideas to prove themselves in other languages like Erlang, Python, Go, Scala, and so on, and then adopt the successful ones. Last-mover advantage. That said, there are some caveats. Java is still missing value types, while C# has moved quickly with async/await rather than adopting models like goroutines or virtual threads, which can sometimes limit concurrency ergonomics for the developer.

It's widespread and good enough. The language just doesn't matter that much in most cases

This is one of those, "in theory, there's no difference between theory and practice. In practice, there is" issues.

In their, quality software can be written in any programming language.

In practice, folks who use Python or JavaScript as their application programming language start from a position of just not carrying very much about correctness or performance. Folks who use languages like Java or C#, do. And you can see the downstream effects of this in the difference in the production-grade developer experience and the quality of packages on offer in PIP and NPM versus Maven and NuGet.


As a developer that switches between java, python and typescript every day I think this is fairly myopic opinion. Being siloed to one lang for long enough tends to brings out our tribalistic tendencies, tread carefully.

I've seen codebases of varying quality in nearly every language, "enterprise" and otherwise. I've worked at a C# shop and it was no better or worse than the java/kotlin/typescript ones I've worked at.

You can blame the "average" developer in a language for "not caring ", but more likely than not you're just observing the friction imposed by older packaging systems. Modern languages are usually coupled with package managers that make it trivial to publish language artifacts to package hubs, whereas gradle for example is it's own brand of hell just to get your code to build.


That's not a fair comparison. In your example, you're talking about the average of developers in a language. In this situation, it's specific developers choosing between languages. Having the developers you already have choose language A or B makes no difference to their code quality (assuming they're proficient with both)

These are statements these developers will make themselves. They will say they don't like more strictly typed languages because they feel constrained and slowed down in development. They will argue that the performance hit is worth the trade offs.

perhaps many of those 'Folks who use languages like Java or C#'

do so because a boss told them 'thats the way we deal with correctness and performance around here'

the fact that their boss made that one decision for them does not somehow transmit the values behind the one decision.


[flagged]


Exactly! In the Java ecosystem, your intelligence is measured by how elaborate an interface hell you can conjure just to do CRUD.

    > Nonsense. Average Java/C# is an enterprise monkey who barely knows outside of their grotesque codebase.
Netflix is Java. Amazon is mostly Java. Some of the biggest open source projects in the world are Java. Unity and Godot both use C# for scripting.

I don't know where you're getting the impression that Java and C# are somehow only for "enterprise monkey who barely knows outside of their grotesque codebase"


> Netflix is Java. Amazon is mostly Java. Some of the biggest open source projects in the world are Java. Unity and Godot both use C# for scripting.

You can add Meta, Google and Palantir to your list and it won’t change that average Java dev is from an Eastern hemisphere and knows nothing about Java outside of JavaEE/Spring.

See how generalizations work?


Chill out buddy. You're going to pop a vein here.

A typical backend developer using C#/Java is likely solving more complicated problems and having all the concerns of an enterprise system to worry about and maintain.

Dismissing a dev or a system because it is enterprisy is a weak argument to make against a language. A language being used a lot in an enterprise to carry the weight of the business is a sign the language is actually great and reliable enough.


I’m not dismissing Java, I’ve spent decades writing it and know what it is capable of, but it is laughable to hear that average Java dev cares more about performance or correctness than Python/JS dev.

All of them explicitly don’t have to care about performance from the start because of VMs + GC, only when scale starts to matter you start to optimize.

Tooling argument is especially funny to me, given how shit tooling ecosystem is. Sure it is ol’ reliable, but average Java dev is so stuck in their ways that they’ve never even tried to dwell out of their Java cave to see what’s out there.

IntelliJ consuming ALL of RAM, literally as much as it can get hands on. Gradle taking what’s left, rebuilds taking minutes to complete or requiring elaborate setup to have proper hot reload. Both TS and Python have far more expressive and powerful type systems than even modern Java. “Production grade tooling” my ass.

Funny to see Java shmucks looking down at JS/Python folks, as if Java at the time wasn’t picked for literally same reasons as Python/JS nowadays.


TS is enormous, has endless training data, and can interact with virtually anything on the Internet these days. Also, strong typing is very very useful for AI coding context.

> strong typing is very very useful for AI coding context

what makes you think so?

I believe strong typing is very very useful for human coding,

I'm not convinced its so 'very very' for agents.


When I've use agents with TS, failing tests due to typing seems to help the agent get to the correct solution. Maybe it's not required though.

What do you mean by "failing tests", are you talking about runtime code? TypeScript erases all types at compile so these wouldn't affect tests. Unless you meant "compile errors" instead.

I've noticed LLMs just slap on "as any" to solve compile errors in TypeScript code, maybe this is common in the training data. I frequently have to call this out in code review, in many cases it wasn't even a necessary assertion, but it's now turned a variable into "any" which can cause downstream problems or future problems


My code has tests and the LLM wrote more tests.

I tell the LLM to include typing on any new code.

The agent is running the test harness and checking results.


The answer is typescript is a much simpler and more pleasant developer experience than any other language. These are products they need to, and often originate from, fast churn of code/features.

Otherwise they’d be building these types of things in Rust.


Surely you jest

I wrote the comment while waiting on a 50min rust build pipeline

And I wrote mine waiting for my shuttle back from the moon to Earth

Isn't what you're describing just a set of APIs with native bindings that the LLM can call?

I'm not sure I understand why it's necessary to even couple this to a runtime, let alone own the runtime?

Can't you just do it as a library and train/instruct the LLM to prefer using that library?


Mostly, just Jarred Sumner makes it worth it for Anthropic.

Why?

The whole point every CEO with a toe in the AI pool can't stop bleating on about is that software engineering is dead and replaced by AI.

bun is MIT licensed, they could take bun free of charge and use their Phd level software engineer god machine to iterate on it.


I'm not confused about the acquisition but about the investment. What were the investors thinking? This is an open source development tool with (to date), 0$ of revenue and not even the beginnings of a plan for getting such a thing.

The acquisition makes more sense. A few observations:

- no acquisition amount was announced. That indicates some kind of share swap where the investors change shares for one company into another. Presumably the founder now has some shares in Anthropic and a nice salary and vesting structure that will keep him on board for a while.

- The main investor was Kleiner Perkins. They are also an investor in Anthropic. 100M in the last round, apparently.

Everything else is a loosely buzzword compatible thingy for Anthropic's AI coding thingy and some fresh talent for their team. All good. But it's beside the point. This was an investor bailout. They put in quite a bit of money in Bun with exactly 0 remaining chance of that turning into the next unicorn. Whatever flaky plan there once might have been for revenue that caused them to invest, clearly wasn't happening. So, they liquidated their investment through an acquihire via one of their other investments.

Kind of shocking how easy it was to raise that kind of money with essentially no plan whatsoever for revenue. Where I live (Berlin), you get laughed away by investors (in a quite smug way typically) unless you have a solid plan for making them money. This wouldn't survive initial contact with due diligence. Apparently money still grows on trees in Silicon Valley.

I like Bun and have used it but from where I'm sitting there was no unicorn lurking there, ever.


They don't need Bun to make revenue, but they need Bun to continue existing and growing for their products to make revenue. Now they can ensure its survival, push for growth, and provide resources so that Bun can build the best product rather than focus on making money.

Investors are really bad at predicting up front what can become a unicorn and what can’t.

Could also be a way to expand the customer for Claude Code from coding assistant to vibe coding, a la Replit creating a hosted app. CC working more closely with Bun could make all that happen much faster:

> Our default answer was always some version of "we'll eventually build a cloud hosting product.", vertically integrated with Bun’s runtime & bundler.


The writeup makes it sound like an acquihire, especially the "what changes" part.

ChatGPT is feeling the pressure of Gemini [0]. So it's a bit strange for Anthropic to be focusing hard on its javascript game. Perhaps they see that as part of their advantage right now.

[0] https://timesofindia.indiatimes.com/technology/tech-news/goo...


>Claude will be able to leverage these capabilities to extend its reach across the cloud and add more value in enterprise use cases

100%. even more robust if paired with an overlay network which provides identity based s3 access (rather than ip address/network based). else server may not have access to s3/cloud resource, at least for many enterprises with s3 behind vpn/direct connect.

ditto for cases when want agent/client side to hit s3 directly, bypassing the server, and agent/client may not have permitted IP in FW ACL, or be on vpn/wan.


Java was doing "cloud-native, stripped down (jlink) image, self-contained runtime with batteries included" long before Bun existed. There's also GraalVM for one executable binary if one's ambitious.

I don't get the whole 'cloud' thing for AI agents. It feels forced. Who is actually using these services?

Non-developers usually prefer them to IDE or terminal based tools.

Non-developers shouldn't be trying to maintain code. Developing products as if they can is very disingenuous.

Agreed, how dare they break the law like that!

if I would guess Anthropic is (rightly) frustrated with the state of the js ecosystem and is taking the best attempt so far to make the js experience much more streamlined for their developers. Convention over configuration might finally be coming to the js ecosystem?

That's a really cool use case and seems super helpful. working cloud native is a chore sometimes. having to fiddle with internal apis, acl/permissions issues.

I'm also confused.. Why does a generic AI company that helps coding as one of main offering get deeply in bed with one tech stack

I mean would it have made sense to acquire golang if it were on sale?


They want to make sure the runtime they depend on continues to be maintained. It's still niche and new, so its continued existence isn't as sure as something like Go.

[flagged]


This matches some previous comments around LLMs driving adoption of programming languages or frameworks. If you ask Claude to write a web app, why not have it use your own framework, that it was trained on, by default?

Users are far more likely to ask it about shadcn, or material, than about node/deno/bun. So, what is this about?

Currently Claude etc. can interact with services (including AWS) via MCPs.

What the user you're replying to is saying the Bun acquisition looks silly as a dev tool for Node. However if you look at their binding work for services like s3[0], the LLM will be able to interact directly with cloud services directly (lower latency, tighter integration, simplified deployment).

0: https://bun.com/docs/runtime/s3


That doesn't make sense either. Agents already have access to MCPs and Tools. Your example is solved by having an S3 wrapper as a set of tools.

I bet you didn't click that link. A wrapper and an API that is built-in to the runtime and optimized for those use cases are different things.

Being able to remove a layer of abstraction to get the thing done is usually good right?

An AI company scoops up frontend tech. Do you really think it was because of s3?

JavaScript ≠ frontend

bun ≠ front end development tool

hasn't been like that for many years


Bun is not really frontend tech

This is an insanely good take I never thought of.

As a commandline end user who prefers to retreive data from the www as text-only, I see deno and bun as potential replacements (for me, not necessarily for anyone else) for the so-called "modern" browser in those rare cases where I need to interpret Javascript^1

At present the browser monstrosity is used to (automatically, indiscriminantly) download into memory and run Javascripts from around the web. At least with a commandline web-capable JS runtime monstrosity the user could in theory exercise more control over what scripts are downloaded and if and when to run them. Perhaps more user control over permissions to access system resources as well (cf. corporate control)

1. One can already see an approach something like this being used in the case of

https://github.com/yt-dlp/yt-dlp/wiki/EJS

where a commandline JS runtime is used without the need for any graphics layer (advertising display layer)


Why do Apple, Microsoft, Google, Meta, OpenAI, AWS and other so-called "tech" companies advertise on TV

What about people who do not own a TV


Is this something I’d have to own a tv to understand?



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: