Live data from Hacker News

Cap’n Proto

capnproto.org

81–90 of 194 posts

Re: Cap’n Proto

#81

How do you pronounce the name? If libreoffice is bad.. This name is absolutely impossible. Is it captain? Is it cap+n+proto? A lot of collaboration is verbal - people sit around and talk about stuff. I don't know if it is a fun take on an American word... But it is impossible to use in the rest of the world. I really wish you would call it something else... Unless it is personal for you :(

So yeah, in the states, we have this cereal called Cap'n Crunch that some people love. I think he was making a pun out of that. The pronunciation would thus be "cap [the sound the letter 'n' makes] crunch".

Gee, all this time I thought he was hitching his wagon to the right honorable, dapper, charismatic, articulately spoken, upstanding guru of phone phreaking culture.

Re: Cap’n Proto

#82

How do you pronounce the name? If libreoffice is bad.. This name is absolutely impossible. Is it captain? Is it cap+n+proto? A lot of collaboration is verbal - people sit around and talk about stuff. I don't know if it is a fun take on an American word... But it is impossible to use in the rest of the world. I really wish you would call it something else... Unless it is personal for you :(

[deleted]

Re: Cap’n Proto

#83
post #77
post #47

Earlier quoted context omitted.

I haven't looked at Ion before, but it appears to be similar to BSON or Msgpack in that it's a binary format that encodes field names as textual identifiers, to be "self-describing" and avoid the need for an external schema. I generally like schemas, because I like static typing. Of course, static types vs. dynamic types are another ancient flamewar and I'm unlikely to cover any new ground by stating arguments here.…

Schemas are IMO the only way to go when you are transferring between heterogenous languages, even when all languages involved are untyped. Consider javascript talking to common lisp. Of course JSON has a canonical mapping to javascript, but it does not for common lisp. Should a JS array be a lisp list or vector? Should lisp's NIL be false or null? Should a JS object decode to an alist, plist, or hash-table? &ct.

Nitpick: I think you meant "&c". The t is superfluous.

Re: Cap’n Proto

#84
post #51
post #42

Earlier quoted context omitted.

Why did you leave Google?

Well, I could write a lot about this, but... In general, because I felt there was too much resistance to me pursuing ideas that I wanted to pursue. Google has become increasingly top-down, whereas it was fairly bottom-up when I started in 2005. That's not necessarily a bad thing, but I felt that I personally would be happier running a startup where I could call the shots. FWIW, if you just want to write code, be comf…

> and you don't care if you're implementing someone else's ideas and working for an advertising company

FTFY

Re: Cap’n Proto

#85
post #52

Earlier quoted context omitted.

Writing software that is safely and gracefully cross-platform is a pain in the neck :-/

Except in this case you have flatbuffers which is a perfectly reasonable replacement and works across a wide array of platforms. We rejected Cap'n Proto for the same reasons. I don't see a need to use bleeding edge C++ features when the same(or better) results can be achieved with code generation. Kudos on the effort but if you're looking for wide adoption you've missed the mark.

I heard the exact same thing said about templates 15 years ago.

Re: Cap’n Proto

#86
post #58

How do you pronounce the name? If libreoffice is bad.. This name is absolutely impossible. Is it captain? Is it cap+n+proto? A lot of collaboration is verbal - people sit around and talk about stuff. I don't know if it is a fun take on an American word... But it is impossible to use in the rest of the world. I really wish you would call it something else... Unless it is personal for you :(

CAP-ən PRO-to But "Captain Proto" is acceptable if you have trouble with the contraction. Or you can also think of it as "Cap-and-Proto". Which is an intentional pun ("capabilities and protocols", or something). Googling either of these will get you to the right place, so I think it gets the job done.

>Or you can also think of it as "Cap-and-Proto". Which is an intentional pun ("capabilities and protocols", or something).

I never realized that! I like the name much more now.

Re: Cap’n Proto

#87
post #30
post #5

For some reason, the banner (infinitely faster?), name, and introductory FAQ-style responses made me think the whole thing is a joke - similar to Vanilla JS [1]. Anyways, it seems like a cool project, so I'll be sure to follow its development closely. [1]: http://vanilla-js.com/

The best jokes in software usually have running code. The best of the best are practical.

Like X-Windows: The world's first fully modular software disaster. [1]

[1] http://www.art.net/~hopkins/Don/unix-haters/x-windows/danger...

Re: Cap’n Proto

#88

Earlier quoted context omitted.

> Eh, I'd rather pay the cost of serialisation once and deserialisation once, and then access my data for as close to free as possible, rather than relying on a compiler to actually inline calls properly. The thing is, as close to free as possible is surprisingly expensive. Protobuf's varint encoding is extremely branchy, and hurts performance in a datacenter environment (where bandwidth is free, and CPU is expensive…

ARM is bi-endian but my understanding is almost everybody is running it little-endian these days.

The MIPS is bi-endian, and it's referred to as SPIM when driving backwards.

For some reason, Sun never got around to making a bi-endian version of SPARC called CRAPS.

Speaking of Sun, I have a confession to make: I'm bi-stellar. I love both Star Wars and Star Trek.

[1] https://chortle.ccsu.edu/AssemblyTutorial/Chapter-15/ass15_4...

Re: Cap’n Proto

#89
post #76
post #37

Earlier quoted context omitted.

Big-endian vs. little-endian is an ancient flamewar that isn't going to go away any time soon, but sure, let's argue. Once you've spent as much time twiddling bits as I have (as the author of proto2 and Cap'n Proto), you start to realize that little endian is much easier to work with than big-endian. For example: - To reinterpret a 64-bit number as 32-bit in BE, you have to add 4 bytes to your pointer. In LE, the poi…

I've just began learning about endianness and I'm sorry if this comes off as pedantic, but doesn't the last example refer to bit numbering rather than (byte) endianness? https://en.wikipedia.org/wiki/Bit_numbering

Endianness applies to both! Or, it should, if you're being consistent. It makes no sense to say that the first byte is the most-significant byte, but that bit zero is the least significant bit of the byte.

Because all modern computer architectures assign addresses to bytes, not bits, it's up to us to decide which way to number the bits. But we should always number the bits the same way we number the bytes.

Re: Cap’n Proto

#90
post #77

Earlier quoted context omitted.

Schemas are IMO the only way to go when you are transferring between heterogenous languages, even when all languages involved are untyped. Consider javascript talking to common lisp. Of course JSON has a canonical mapping to javascript, but it does not for common lisp. Should a JS array be a lisp list or vector? Should lisp's NIL be false or null? Should a JS object decode to an alist, plist, or hash-table? &ct.

Nitpick: I think you meant "&c". The t is superfluous.

Interesting; I've always written &ct, which wikipedia informs me is considered "archaic" Thanks for that note, it will save me one character of typing 3 years from now when I've finally broken the muscle memory of the old way :)
Post reply on HN