I wrote my own "proper" programming language (2020)
10 comments
·January 22, 2025pyrale
kubb
Serialized protocol buffers can be converted to the human friendly text format:
https://protobuf.dev/reference/protobuf/textformat-spec/
He most likely wants to have the type structure generated by protocol buffer as opposed to parsing JSON
The latter requires asserting in a million places that this key exists in this map with this type, which will require a million lines of crap code.
Not to mention packing and unpacking the serialized data and maintaining two separate sets of corresponding structures/records that have to be kept in sync.
rurban
Protobuf also needs to deserialized. Cap'n proto would have been the better option.
etyp
I've actually tried serializing languages into protobufs. The main reason was it made communication from X random programming language to Java in a consistent, structured way. Seems like it's just how they sent the IR from OCaml to C++. On either side you'll get the Bolt IR so I don't think debugging suffers too much. But the extra step for serializing and deserializing is a bit of a bummer
Timwi
I'm so excited to see that the idea of creating new programming languages is getting more popular. There is definitely a lot of space in which to explore more creativity; we haven't even remotely begun to scratch the surface of what's possible!
I just wish more tooling existed that was language-agnostic so that it's easier to get off the ground with something “serious”. I'm talking debuggers, parse-tree-aware diffs, autocompletion like Intellisense, etc.
chikere232
The lack of such tooling is kind of a feature. Writing your own language is a great way to learn, but almost all of them shouldn't be used for anything serious
TikTikFook
[dead]
atan2
I probably won't create a "proper" programming language but this topic fascinates me. As someone that never even took a compilers class in college I was really happy with the content I found at pikuma.com. The course really helped me understand how a simple programming language works. I'm sure others might benefit from it too.
gjadi
His progression is wild. Going from top Cambridge graduate in 2021 to Staff Eng at META in 3y. Nice!
null
I'd be interested to understand the design choices behind using protobuf as an interface with LLVM: in my reasoning, it may be more performant, but that serialization step is a very small part of compute, and the serialization format is unusable by humans. For debug purposes, it'd have been nice to have a more human-friendly format. Did the project have other constraints?