HomeVideos

Why Did They Build This?

Now Playing

Why Did They Build This?

Transcript

383 segments

0:00

You know, I've always loved programming

0:01

languages. I have looked into many and

0:04

I've found love in so many different

0:06

flavors. And so when today I saw a brand

0:09

new one dropping from Vercel, you could

0:12

imagine I was a bit curious. I was

0:14

piqued, okay? My hams, they were salted.

0:17

I was ready. Introducing Zero, the

0:19

programming language for agents. Now,

0:22

I'm not going to lie to you. I

0:24

immediately don't know what that means.

0:26

I always thought English was the new

0:27

programming language for 2026. AM I

0:30

RIGHT, BOYS? I wanted a system language

0:33

that was faster, smaller, and easier for

0:35

agents to use and repair. Explicit

0:38

capabilities, JSON diagnostics, type

0:41

safe fixes, made for agents on day zero.

0:46

I'm just going to be real with you guys.

0:48

I effectively don't know what any of

0:50

that means. Now, I've been programming a

0:52

long time and it's kind of embarrassing.

0:54

I I I I think I can understand what JSON

0:57

diagnostics mean, but explicit

1:00

capabilities? What doesn't that mean? I

1:02

I think a lot of programming languages

1:04

have explicit capabilities. Type safe

1:07

fixes? There's I assume that means you

1:09

have a type safe language. And no, this

1:12

is not some sort of April Fools' joke.

1:14

It's right here. There's an entire

1:15

repository filled with zero examples. I

1:19

looked a little bit at the compiler and

1:21

I'm not a compiler engineer, but yikes.

1:24

I was able to get this bad boy to

1:26

compile and I got a hello from zero. So,

1:29

we actually just have to talk about this

1:30

because honestly, this has to be one of

1:33

the times in my life in which I am just

1:36

utterly confused. I don't I I truly

1:38

don't understand the purpose of this at

1:40

all. But first,

1:42

the bag, of course. Hey, you. Do you

1:45

like getting something better for less

1:47

money? Well, let me tell you about

1:48

today's sponsor. Blacksmith is the

1:50

fastest way to run your GitHub actions.

1:53

Two x faster job runs, four x faster on

1:56

caches, and 40x faster on Docker builds,

2:00

slashing costs up to 75% like that is an

2:04

obvious win. Blacksmith is already

2:06

trusted by over 3,500 companies

2:08

including Ashby, Veed, Clerk, and

2:11

Mitrefinch. Check the link in the

2:13

description to see how you can save a

2:14

boatload of money and have an excellent

2:16

action runner. Okay, welcome back. What

2:19

Zero is aiming for? Agent-first

2:22

learnability. A small regular language

2:24

surface that agents can pick up quickly

2:27

from examples, docs, and compiler

2:29

feedback. Standard library depth. Common

2:31

capabilities should live in documented

2:33

coherent library APIs instead of

2:35

scattered dependency stacks. Okay, I I

2:37

like that. That sounds good.

2:40

Deterministic tooling. I have never

2:43

heard in my lifetime of undeterministic

2:46

tooling. I have to say, this is a first

2:48

for me. Direct developer experience.

2:51

Checking, running, formatting,

2:52

inspecting, and repairing code should be

2:54

fast, copyable, and scriptable. I

2:56

believe that is pretty much programming

2:59

in any language but Rust. Regularity

3:01

over syntax. Prefer one obvious way to

3:04

express most things even when that makes

3:06

code more explicit than a human might

3:08

choose in another language. You know

3:10

what? You know what all these mean,

3:12

right? You know you know what he's

3:13

saying, right? Call Go. Like bro's

3:16

describing Go almost word for word. A,

3:19

Go's extremely limited in what you can

3:22

do. B, there's pretty much just one way

3:24

to do anything. Three, it's extremely

3:27

explicit. It is very very simple. You

3:30

got an error? You got an if error does

3:32

not equal nil handling case. Oh, you

3:35

want a complete tool set in which the

3:37

standard library effectively covers most

3:39

uses of the language itself? Again,

3:42

that's Go. Deterministic tools. Bro,

3:45

still don't know what that means but Go

3:47

Go is just jam-packed with all of it,

3:49

okay? Okay, so this is the actual

3:51

language that they're doing. Notice that

3:52

there's no syntax highlighting. Hey, we

3:54

haven't got there yet. GitHub, come on.

3:56

Can you get with it? This is a new

3:57

language that's been out for days. I

3:58

kind of expect you to already have some

4:00

syntax highlighters on the server able

4:02

to do this. Also, no fallback syntax

4:05

highlighting?

4:06

You can see right here that it does some

4:08

sort of reading from the environment.

4:09

When you read from the environment or

4:11

you get something from an array, you

4:12

have like first.has, that meaning this

4:15

thing is not null, and then doing a

4:17

standard memory equal first value to

4:19

write that means it's doing a memory

4:21

compare, a mem compare. This is like

4:23

straight out of Zig's playbook. Second,

4:26

when you write out to a file for

4:28

whatever reason, this writing out to a

4:30

file just somehow works, but when you

4:33

print out, then you have to do a check.

4:36

Like, what I mean, writing to a file

4:40

definitely can fail, but writing out to

4:42

the CLI, I mean, that can also fail,

4:45

too, but I just

4:47

What is this language design? Also,

4:49

check. I assume this is just effectively

4:50

if you get an error, it returns it, and

4:53

you can kind of tell that it returns it

4:54

because raises must say, "Hey, this

4:56

function can raise." And then this must

4:58

be the return type, which means you

5:00

effectively have some sort of colored

5:01

function, meaning that when you call

5:03

something that can raise an error, you

5:06

yourself probably will end up raising an

5:08

error, and then you kind of have this

5:09

raises goes everywhere. When I look at

5:12

this language, you guys can see all of

5:14

this. There's nothing here that's

5:16

interesting. There's nothing here that I

5:17

see as being agent first. This just

5:19

looks like Zig, which seems a lot kind

5:22

of almost antithetical to what they're

5:24

saying right here. Like, if you want

5:26

something that always is more explicit,

5:29

then do pray tell why you're just

5:31

tossing errors all over the place. This

5:33

kind of feels like an if error does not

5:35

equal nil situation brewing, but that's

5:37

not happening. Like, for me, this is

5:39

where I genuinely struggle. I don't get

5:42

why this exists. I don't see how we got

5:46

anything better here. I was actually

5:48

super curious about what does this

5:50

language look like? What does it agents

5:52

first language look like? I don't really

5:55

get that. Maybe it has something to do

5:57

with how the language is really small,

5:59

so it saves on tokens. Well, that's not

6:01

the case.

6:02

Maybe there's something that I can't

6:04

conceive of because my human brain is

6:06

too small and pattern matching in some

6:08

higher dimension that I will just never

6:10

see because I can't see around corners.

6:13

Nope. It's just plain old Zig with a

6:16

little bit of extra and some renaming.

6:18

Now, one day it may finally actually get

6:19

to where it needs to be, which obviously

6:21

is Go. That's where it's heading at

6:23

least based on its description. But

6:25

until then, this is what it looks like.

6:27

Also, just as a short nitpick, void not

6:30

just being a keyword but instead a type,

6:32

I'm triggered. Like honestly, I'm I'm

6:34

triggered AF, okay? That is just Okay,

6:37

hey, this is a crime against humanity.

6:39

But enough about what I think, what do

6:41

people think? Language with zero

6:43

representation in the current training

6:45

data set, bold move. Wow, this might be

6:47

in the training data in 2 years. Then it

6:49

may be usable. I'm assuming the Arch 64

6:51

back end intentionally does nothing, but

6:53

what's the point of the project in

6:55

general? Is there a design doc available

6:57

anywhere to read? Many of the decisions

6:59

make absolutely zero sense to me.

7:01

Interesting, but how do you even know

7:04

it's better for agents? Any backing

7:05

results? Better than what? All existing

7:08

programming languages? How is it for

7:10

humans? How do agents deal with the

7:12

relatively tiny code example size for

7:14

zero? What about the ecosystem? A brand

7:17

new language that no LLM has ever heard

7:19

about or knows how to write. Brilliant.

7:22

Zero is amazing. I want to try this

7:25

programming language for agents. Bro

7:27

just called this amazing and then goes I

7:29

want to try. Like you can't

7:31

You can't call this amazing. Now, as far

7:34

as it actually goes and more of like my

7:36

opinion on the technical side, I was

7:38

pretty alarmed to see this tweet right

7:40

here. I don't know, I found it funny

7:41

that there's 15 basic identical vector

7:44

implementations. He is correct. You can

7:46

see right here length, capacity, and

7:49

then field type items. It does the same

7:51

thing right here with ex- expression.

7:53

And then there's a whole bunch of other

7:54

ones type args that go on. There's

7:57

literally the same code over and over

7:59

again handling the push logic, being

8:02

able to push into each one of these.

8:05

It's so good. Don't get me started on

8:07

the back end because they're each having

8:08

this nice different way in which it's

8:10

handling big endian and different

8:11

operations, but they're all

8:13

approximately named the same. If you

8:14

scroll down, you'll see something like

8:16

this one A64 diag in which it checks to

8:19

see if this pointer does exist. And then

8:21

in the next implementation when you go

8:23

down, the elf diag, oh that always

8:25

exists. This is truly kind of like an

8:28

alarming project for me in my personal

8:31

opinion. Now, I don't know what it takes

8:33

to build a programming language. I've

8:34

built some toy ones. I did, I built a

8:36

compiler in college as one of the most

8:38

informative times of my life. Uh but

8:40

when it comes down to actually building

8:42

your own that you're actually going to

8:43

support with lots of lots of people in

8:45

the really like strong think through

8:47

that you have to do on language

8:49

ergonomics and design goals, I've never

8:51

done that. And this seems well, it seems

8:54

very interesting. In fact, when I told

8:56

the Teeg about this, he said, "Oh yeah,

8:59

I read that earlier. I'm designing my

9:00

own language too right now." Which is

9:02

just even I

9:04

>> [laughter]

9:04

>> I didn't even know how to respond to

9:06

that. Of course, it was OCaml-based

9:07

classic Teeg OCaml. But nonetheless,

9:10

like I just don't understand the purpose

9:12

of this. The language doesn't offer

9:14

anything that at least appears to be

9:15

interesting. Is the value all in the

9:17

compiler output? If that was the case,

9:19

why not just do something for

9:20

TypeScript, an extremely well-understood

9:24

environment? If you're concerned about

9:26

dependencies, you could have like the

9:27

TypeScript toolkit in which bootstraps

9:30

your project with everything you need to

9:31

write a program. And then guess what?

9:33

You're at Versel, so it's just

9:34

automatically going to work anyways.

9:36

Like I just truly don't understand what

9:39

the heck is this thing even for? Here's

9:41

the thing, I'm not trying to make fun of

9:43

Chris Tate or anything. It's just that I

9:44

I truly don't get this. Now, let me

9:46

explain myself why I keep saying that.

9:48

One, there's nothing interesting at

9:50

least as far as I can tell from a

9:52

language perspective. It just looks like

9:53

another C clone with some basic errors

9:56

as values and some conveniences around

9:59

auto magically returning out like that's

10:01

in Odin, that's in Zig. I wish it was in

10:04

Go, but Go it's not in you. It's just

10:06

that dog ain't in you, Go. The thing

10:07

about the language is that as far as I

10:08

can tell there's nothing agent first

10:11

about it. The examples given are

10:13

extremely verbose and so a bunch of

10:16

tokens means context windows get

10:18

polluted faster. So, that can't be it.

10:20

Also, since it's a novel language, the

10:23

context again is going to be polluted

10:25

faster by giving it the kind of

10:26

pre-required information for it to even

10:28

generate correct output. So, in other

10:31

words, it's doesn't appear to be agent

10:34

friendly at all. And the thing is is

10:35

like

10:36

what makes TypeScript good for agents is

10:39

that there's 1 billion examples of

10:41

TypeScript. And so generally speaking,

10:44

it kind of knows what right looks like

10:46

even when it produces horribly ugly

10:48

code. Okay, whatever. I

10:50

at least it can produce things generally

10:51

that work. Lot of heavy lifting in the

10:54

word work there. And then there's Rust.

10:56

It also has a gazillion examples, but it

10:58

also has the borrow checker which tends

11:00

to make it so that it has to keep the

11:01

LLM even more honest because so much of

11:04

it is even more constrained. Like the

11:06

amount of programs you can write with

11:08

Rust is greatly reduced comparatively to

11:10

say something like TypeScript. And so

11:13

those both offer something unique. I

11:15

don't know what this thing offers. And

11:17

even more so, I was genuinely excited to

11:20

understand what is a programming

11:21

language for agents because hey, I could

11:23

be ignorant in some areas. I actually

11:24

wanted to see like is there a

11:26

fundamentally different take

11:29

on what it means to write a program that

11:31

is not optimized for say human input or

11:34

is there an entire different branch or

11:35

family of languages that just seem to be

11:38

better? I'm surprised it's not Lisp,

11:39

right? I thought Lisp was the greatest

11:41

language of all time. The data is the

11:43

program. But I instead it's it's just

11:46

well, it's pretty much just C that

11:47

borrows a lot of stuff from Zig and

11:50

raise is kind of looks like throws from

11:52

Java. Check is clearly try from uh

11:55

what's it called? Zig. The only thing

11:57

that I think I guess they're going for

11:59

that would be unique is better error

12:01

messaging, but I feel like that's

12:02

something you could contribute to or

12:04

fork off already existing tools to say

12:06

in TypeScript or in Rust, but Rust

12:08

already has pretty decent tools and

12:12

pretty decent output. So that can't be

12:14

it. TypeScript has pretty decent errors.

12:16

So that can be like I just don't

12:18

understand it. And by the way, JSON

12:21

isn't some sort of magical unlock to

12:23

make LLMs understand stuff better. Like

12:25

I can type barely coherent English and

12:28

the thing can understand what I'm

12:30

saying. It's not like typing it in JSON

12:33

somehow makes it that much better. I can

12:35

hand it crazy C++ template errors and

12:38

it's going to spit out for me where the

12:40

template has gone wrong. It's rather

12:42

impressive. It operates on languages.

12:45

It's not somehow confined to HTML or

12:47

JSON despite what you've heard. So I

12:49

truly don't get like I I just don't. I'm

12:53

so curious and I was so excited. Please,

12:55

if you understand, please just explain

12:57

to me, okay? I'm old, okay? My fossils

12:59

are creaking. I'm clearly not that

13:01

smart. I'm not a language enthusiast.

13:03

I'm just a language using enthusiast

13:05

that has programmed in many, many

13:06

languages. I think Ginger Bill said it

13:09

best, the creator of Odin of course. I

13:11

think people who are designing languages

13:13

for LLMs are doing the equivalent of

13:15

horoscopes. They have no idea what they

13:18

are optimizing for since they don't

13:20

actually understand how these models

13:21

work. Why would their new language fair

13:24

better than any existing language? And

13:27

right now I'm completely inclined to

13:28

believe him. I There is absolutely no

13:31

reason for us to think that somehow

13:34

there is a language out there that is

13:35

just dramatically better for agents than

13:38

what we currently have. And if there was

13:40

a language that was dramatically better,

13:42

I assume it would be dramatically

13:44

different from any language we have

13:46

today. Okay, that's it. That's all I had

13:48

to say. I know that was There was some

13:50

strong app in me. The name is the

13:52

Primagen.

Interactive Summary

The video features a critique of 'Zero', a new programming language introduced by Vercel, marketed as an 'agent-first' language. The host expresses significant skepticism, noting that the language appears to be an unoriginal clone of existing languages like Zig and C. He argues that the claimed benefits—such as being better for AI agents—lack evidence and that existing languages with massive ecosystems like TypeScript and Rust are inherently more useful for AI due to their vast amount of available training data and examples.

Suggested questions

3 ready-made prompts