Turns out I've been using tigerstyle for the past 5 years and didn't even know. It's always good to see something put in writing that you've long subconsciously practiced, because then you can focus on it and audit it. This is helpful.
Great talk. I found it interesting how a good part of this thinking is similar to what embedded systems programming is like at NASA- the emphasis on static memory, limits, assertions, design, thinking about the full system, etc.
Wow, thanks Roland. Rich Hickey was pretty influential on me when I was younger, honing my chops and doing the experiments that would years later become TigerBeetle.
Amazing talk! Lots of fantastic points here, but I especially love the concept of programming "the negative space" with assertions. What a fantastic way to put it. Also, I want that test environment. 🙂
Wow I think this is one of the best demos ever ahahah! The talk was great too. I think that assertion are an essential tool in a developer toolbox. You guys are amazing and I hope to see more projects developed with the rigor that you have.
always thought the same we have only 4 things to worry about cpu, disk, memory, & network, abstractions hide these but may be design should always start with these !
Glad to hear it! My way into this was reading “High Performance Browser Networking” a few years ago... optimizing the network requests made by a web application... and then realizing that the disk also benefitted from similar optimizations... and then realizing the same for memory... and CPU. With TigerBeetle, we try to really focus on the memory, to unblock the CPU and let the CPU go fast.
Elixir's pattern matching and guards are a perfect example of such assertions built into the language philosophy. And it doesn't have that problem of Go with assertion because servers don't crash at an exception, only single, isolated processes do.
If there is a limit to the loop then that will fix some issues and open a new path that must also be thought of. Its a good and interesting idea, but its also not without its new potential for issues.
I wish there were some examples of what he was talking about. Sometimes it just sounds like vague advice. "Do software good like an artist does"... Okay, but like what? Like when talking about naming things he just said: "Use the right nouns and make the names good and clear". Yes, I agree, probably, but what are some examples? How do I know what you mean by "use the right noun"? I think I do that, but I have no idea what you think that is, nor what Tiger Style says on the subject.