Making a programming language - BAML. @boundaryml, 🦄 aitw podcast: https://xitter.cf/t.co/g4CJWgP0gR prev YC, google, msft, deshaw, and other things

Seattle, WA
Joined September 2012
Vaibhav Gupta retweeted
Everyone in AI is building for everyone else in AI. We're building for your group chat. Introducing Charming ✨ Personal apps for us normies. Make an app for your book club, a meal planner for your family, go wild (it's free!) Build in Claude/ChatGPT, share like a Google Doc
132
66
96
396
519,149
Vaibhav Gupta retweeted
if only someone were building a programming language for this new era
DHH is fundamentally right about Rust. For context, Vercel has been undergoing a Rust-ification (carcinization, technically 🦀) for a while. One of the first projects we migrated was Turborepo, from Go to Rust¹. The migration completed, but the RoI was actually quite controversial internally. While Rust was in our eyes better for low-level OS access, something crucial for a build system like Turbo, the human migration costs were very sustantive. Go is very fast. It's beautifully designed. It's easy to iterate on. We were very conflicted about the migration, because it was *humans* writing the code, *even if we knew Rust was a better choice*. The calculus has now changed. What's "best for humans" is no longer necessarily "best for business". FWIW, it's also quite unlikely that Rust is the end-all-be-all toolchain. I'm quite certain there's greener pasture ahead, because Rust itself was designed before the 'supersonic tsunami' of agents hit. ¹ https​://vercel.com/blog/how-turborepo-is-porting-from-go-to-rust
1
1
6
1,226
Vaibhav Gupta retweeted
bullish ‘bout baml honestly
Vaibhav Gupta
@vaibcodeSep 26
Sounds like we need a new language 🤔 Boundaryml.com
1
9
2,323
Vaibhav Gupta retweeted
Had great fun talking with @vaibcode and Kai from BAML about how performance engineering is total kryptonite for freestyle coding agents! youtube.com/watch?v=WHLXRZi8…
1
9
519
Vaibhav Gupta retweeted
If you didn't know, this is the ultimate win. Jev is a fantastic model for a number of use-cases. BAML is agentic programming superpowers Together they will be MAGIC!
Vaibhav Gupta
@vaibcodeSep 17
we're also fans! jev as an AI function coming to BAML in tonights release! github.com/BoundaryML/baml/p…
1
1
291
Vaibhav Gupta retweeted
I messed up. I accidentally deleted our launch X post for Kitaru that went viral last week. Hope this answers the question for some of you wondering. It was just a silly mistake, nothing deeper :D. 20K views, 100s of bookmarks, 400 likes, all gone in a moment of madness tbh. Oh well it lives on on LinkedIn! But you know what I learned? Sometimes, your biggest mistakes can be opportunities hidden in disguise. So I'll take this opportunity to reintroduce Kitaru again 😀 If anything, hopefully it gets people to check out our latest releases: We're even better today then we were last week on our mission from creating a self improving loop from your existing agent traces. Ingest traces from langfuse, braintrust, arize etc, get interviewed by Kitaru with targetted annotations, and get evaluator functions individualized for you. Replay against baselines of what happened in prod. Export to harbor datasets when you're ready to go beyond the harness layer and finetune/RL your OSS models for your agent. Try it now, free and OSS: kitaru.ai/
1
4
2
25
2,115
Vaibhav Gupta retweeted
Replying to @mattpocockuk
@boundaryML invented a language for agents, called BAML. It's awesome and I love using it so far You should talk to @vaibcode
1
2
111
Vaibhav Gupta retweeted
One of the best features of Rust which I wish every other language had is match. When we designed BAML, we wanted the syntax to be as similar as possible to TypeScript, so instead of enums that carry values like in Rust we went with union types. I think I like this even more than enums with values, for example now I don't even have to name variants when not needed. What in Rust would be: enum Parse { String(String), Int(i64), Bool(bool) } in Baml becomes simply: type Parse = string | int | bool and you can match directly on the types. Destructuring is just as powerful as Rust, you can get nested values out and bind them to different variables, bind individual elements of lists... And all of this is exhaustive and the compiler complains about unhandled cases. I think we cooked with this one 🐑🔥
5
4
77
4,442
Vaibhav Gupta retweeted
read the data structures especially if you're not reading any of the implementation code bad data structures lead to verbose and fragile code
what are your favorite de-slop skills / eng best practice guidelines
19
27
2
771
68,138
Vaibhav Gupta retweeted
or use BAML, where we propagate exceptions to your function's type automatically
PLEASE stop modeling "errors as values" in TypeScript after the "Result" enum from Rust. It is unnecessarily verbose and you're paying for an object instantiation for every value you return, everywhere, even if the error path never happens in the entire lifetime of your application. Instead, use unions: Simply return T | Error, and TypeScript automatically narrows the type for you once you check (x instanceof Error). instanceof checks are trivial, and if you never return errors at runtime, V8's JIT will optimize out the error case entirely and performance will be identical to if you didn't handle errors at all. You'll only pay for the deopt when you do hit the error case, but that's fine.
4
4
50
7,934
Vaibhav Gupta retweeted
there is no JS test framework that can actually run tests in the same file in parallel
2
1
2
1,046
Vaibhav Gupta retweeted
1
2
47
2,243
Vaibhav Gupta retweeted
We had an EC2 service that had to compute the health of all ec2 instances in < 60 seconds. It was taking 55. If this service went over 60 seconds, all ec2 instance checks would say INSUFFICIENT_DATA, and all hell would break lose (potentially triggering autoscaling policies, and disrupting billing). Every day I'd see the graph creep up +.05 seconds per run. "can you make it faster?" "sir, we're already on the largest ec2 instance. We have only 2 months left" Since noone understood the pre-AI slop Scala code of this monolith service, and we were just an army of SDE1 and 2, we started converting every for loop to parfor, causing some race conditions in some cases, but the time dropped to 45 seconds. There were no senior engineers that wanted to work on what was essentially the engine room of the titanic. After months of getting 40 sev2 pages per week, we decided to scale it out horizontally, at gunpoint. Here I was 2-3 yrs out of college scaling out one of the largest and most critical services in EC2. I wrote code for breakfast and dinner. I typed out every line, until it finally worked. What's funny is that with AI this might've been resolved in a month, but I spent 12 months in my life glued to the graph. This is not even the wildest thing that happened. In another case our service reported all instances as UNHEALTHY due to some randomass bug. This gave everyone a heart attack, but I'll save that for another time.
"They showed me a graph." he said, "It was a graph of disk utilization on the NYC database. It was growing at an alarming rate. When the disks on the NYC database were full, Uber would stop working in NY and we'd have basically no way to fix it short of deleting everyone's entire trip history. So they never gave me an actual date we had to be done by, but that graph dominated my life. Sometimes I would just stare at it, watching it tick up slowly. We managed to get the migration done, but we cut it pretty close."
9
18
5
517
78,670
Vaibhav Gupta retweeted
this is what a good codebase will look like in 2027
1
4
19
2,553
Vaibhav Gupta retweeted
i do miss writing commit messages by hand sometimes
4
5
59
3,154
Vaibhav Gupta retweeted
77
603
59
10,908
274,563
Vaibhav Gupta retweeted
Introducing Magnitude: your actually local agent 100% private and offline. No token costs, no API keys. Open source. Today's agents are local. The model isn't. Every prompt, every file, every secret gets sent straight to Anthropic and OpenAI. Magnitude is built around local models and runs the whole stack itself. The inference engine is part of the agent, so the models run inside it, right on your computer. It lives in your terminal, and setup is one command. Magnitude profiles your hardware and shows you which models fit, with the trade-offs between quality, speed, and memory. Pick one and start working. No painful config or server to babysit. Out of the box, it can use your shell, edit files, and run scripts. Add skills and it can work with Excel, PowerPoint, PDFs or Chrome. Use it for everyday work: - Analyze sensitive data - Manage private notes - Review code and logs - Search and organize files - Build docs or slides npm i -g @magnitudedev/cli GitHub: github.com/magnitudedev/magn…
130
260
47
2,299
398,127
Vaibhav Gupta retweeted
Reflection so hard we're starting to unreflect lol
3
2
1
87
7,636