Hacker News new | ask | show | jobs
by TX81Z 1021 days ago
Shhh…Jeff Dean is a God who designed the Perfect System, protobuffs - despite not being used by anybody but Google - are the One True Way, and setting company priorities via how well middle-management can win political battles to get inflated headcount is innovation optimal.

Right?

That’s why everybody is raving over how awesome Bard is!

3 comments

Protobufs are pretty good.

Sure, there's things that can be improved, but years later they are still the most ubiquitous binary message format.

The only other binary message format I saw were flat files with fixed bytes length fields, dtp/sftp in legacy banking systems. And many moved to first csv, then json/xml wherever they could.

I feel there's no one trying to take that crown really.

BSON, Thrift, Avro, MessagePack, FlatBuffers, Capn Proto
ASN.1 wants to have a word with you!
Glad that someone else noticed that protobufs are very close to a carbon copy of ASN.1. If you don't have the .proto file you even see the .1.3.6.1.2.1 paths in protobuf files, just like you do without .mib files.

Even the integer encoding and tooling is very similar, just not quite identical.

Thanks, this was a nice rabbit hole to fall into.
Disturbingly, protobufs are seemingly used a whole boatload outside out of Google, despite me finding them personally meh :-)

Golang seems bigger outside of Google than inside, too.

(Like the nick, BTW. Wish i'd never sold off my TX81z)

Lately Bass is literally worth the $250 I spent for mine off eBay. It’s just flat out the beat techno bass like there is. It’s literally the only preset I’ll ever use because nothing can improve it, it’s just perfect.

A nontrivial fraction of all living people have heard this song at least once, and it’s 100% TX81Z at the heart: https://youtu.be/9EcjWd-O4jI?si=XgkC5avENfdTmlQF

(Also, yeah, to other replies, I now realize protobuffs are not to be joked about, I repent. Forgive me.)

Lately Bass (and "Solid Bass") sound perfect because you grew up with them :-) It's like the 303 or 808, deeply imprinted into the GenX psyche. I'm not sure there's anything intrinsic about it other than that they did a pretty good job (trying emulate a bass guitar is my understanding) and then everyone used it.

A long time ago I wrote a little FM synth in C++ and I went through some painstaking effort to copy Lately Bass and actually got pretty close. It's all about the envelopes. That code is lost to time though.

I think I still have a Yamaha TQ5 downstairs, which is basically a 4 op in the same vein as the TX81Z but in a form factor that looks like a 1980s alarm clock or something. Very ... shoulder pads and avocado bathtub era: https://yamahablackboxes.com/collection/yamaha-tq5-synthesiz...

It’s more how it sits in a mix so well, somehow it gives room for your bass drum, some pads, leads, and it doesn’t interfere with any of them. Usually that’s really hard to do perfectly and lately bass just magically stays in its own lane.

Also, if you can get your hands on Korg Opsix it is a lot of fun for FM. Does about as good a job at making FM closer to a subtractive synth in terms of ease of use. Of course, FM will always be way harder to deal with than subtractive, but it’s still the best attempt I’ve seen.

You might like this project that I have (but, uh, never finished): https://github.com/rdaum/sidebands_vst
Protobuf/ Thrift turn modules into basically legos by abstracting away the infra between functions to just data.
They're a bit of an over-used hammer and people go looking for matching nails wherever.

JSON is wildly imperfect, and lacks types and schema enforcement... but if I have a stream or file of it I can read it with my eyes. Protobufs are opaque blobs without the schema and a pile of code. And they use generated code which is on the whole rather annoying and of varying quality. The binary encoding of protobufs doesn't really give them much of an efficiency edge, either; in this day and age there are some very well tuned JSON etc parsers. And if you're looking for efficiency, there are other formats better than protobufs (or thrift) for that purpose.

At Google I saw it rammed into places where it really didn't belong. Embedded systems, even, causing months of delays while people struggled to get them to work acceptably on a microcontroller class machine. Dogma.

But at least there we had better tools inside Google to work with them than I've seen outside.

TLDR they're probably more good than harm, but I don't think they're a universal good and not the universal answer for how to send messages "between things"

I work in Rust and use binpack, flatbuffers, and json, or hand rolled binary layouts (often using the binary_layout crate), depending on the use case. I don't think there's a universal solution.

I’m pretty sure protobufs are used by more than just google. It’s become an industry standard. So your comment actually and quite ironically comes off as arrogant