Skip to content
HHackerTube.videoSurprise me

Scale By The Bay 2018: Bryan Cantrill, Rust and Other Interesting Things

Scale By The Bay 2018: Bryan Cantrill, Rust and Other Interesting Things on HackerTube: recommended by 5 Hacker News commenters across 5 separate months, 2021–2024.

FunctionalTV

talk · intermediate · evergreen

Open on YouTube

Bryan Cantrill argues that programming languages and platforms reflect core values, and compares languages through that lens, with Rust as a main example. He draws on his experience with Solaris, DTrace and ZFS.

Why Hacker News recommends it

Cited again and again as the framework for discussing languages in terms of values, and how organizational values shape software quality.

people recommended it
5
separate months
5
strong recommendations
1
discussed on HN
2021–2024
“Bryan Cantrill has an excellent talk on this”
— freemint, May 2022, in “Correctness and composability bugs in the Julia ecosystem”

What HN commenters said

10 Hacker News comments link this video. Each one links back to its thread.

freemintMay 2022Strongly recommends

As a huge fan of Julia i got to fully agree. Although i would probably not "no longer recommend Julia" but "give huge caveats when mentioning Julia". Organisations (that includes those who maintain programming language) have values Bryan Cantrill has an excellent talk on this ▶ this video and i got to agree with the author that correctness (especially correctness under arbitary composability) is not a value that Julia teaches and instills in its users. Some Julia users care about this, some core maintainers do to (as the Pkg3 demonstrates). However there are many invocations (SafeTestSets vs Test) and stumbling blocks. I am aware of no efforts to do formal verification on Julia code. There are no good ways to move certain Run-Time to compile errors. Correctness is not a value of the Julia language. Here is the good thing though, as Bryan demonstrates in his talk, you can hire for values.

in “Correctness and composability bugs in the Julia ecosystem” · View on HN

codetrotterAug 2024Recommends

There is sparsely little real “engineering” that goes on in the field of “software engineering”, industry wide, in terms of ensuring that our software is reliable and secure. Performance and development velocity seem to take the driver seat always, in a whole lot of software. See also this talk by Bryan Cantrill, “Scale by the Bay 2018: Rust and Other Interesting Things” ▶ this video where he talks about software platform values, in the sense of what different programming languages and other things focus on. He also touches on the fact that while higher level layers in the stack might value security it kind of falls apart when the very microcode in our CPUs sacrifices security for performance. This was in a period of time where Spectre [link] and Meltdown [link] had reared their ugly heads.

in “CrowdStrike accepting the PwnieAwards for "most epic fail" at defcon” · View on HN

jamincanJan 2022Recommends

Bryan Cantrill has an interesting talk that discusses various languages in terms of their values that you might finding interesting: ▶ this video

in “Rust in 2022” · View on HN

josephgAug 2021Recommends

No, I'm not. Or at least, not as I see it. How would you describe javascript's values, compared to other languages? This is a great chart / explanation of this kind of thinking from Bryan Cantrill: ▶ this video

in “Growing object-oriented software vs. what I would do” · View on HN

btschaeggMay 2021Recommends

Bryan Cantrill explains a very interesting thought about that here: ▶ this video I'm sure there are many other factors that play into this (just look at Gary Bernhardt's "WAT" talk), but essentially, I agree that this has to be a big part of the problem. If you've been developing backend systems and asked to hold up robustness and stability guarantees for multiple years and then run into Javascript, you will likely run into situations where you have to make up for its deficiencies in that regard. That doesn't make it a bad language per se -- that's the case with any language in some aspects -- but since JS will be a new language to you, you're much less likely to accept that situation as a given.

in “Modern Javascript: Everything you missed over the last 10 years (2020)” · View on HN

chalstMay 2022Cites it

I guess the Cantrill talk you are referring to must be 'Software as a reflection of values' from 2018: ▶ this video

in “Jax vs. Julia (Vs PyTorch)” · View on HN

Show 4 more comments
josephgJun 2021Cites it

The struggle here is that in software, sometimes hedgehog thinking is correct. The discernment challenge isn't in spotting hedgehog thinking and choosing fox thinking instead. The challenge is in figuring out in what domains hedgehogs are right and in which domains foxes are right. Unlike in the arena of politics, in software hedgehogs reap the benefits of deep expertise. When are hedgehogs right? In the "obvious" stuff: - You should always use correct indentation in your code - Document your architecture decisions. Have conversations in your team to get feedback and buy in. - When practical, try and keep down the number of languages and databases you use. It'll make onboarding easier and it allow the team to build deeper expertise And so on. The "relational database advocate" usually isn't making an argument that relational databases are better all the time. They're making an argument that relational databases are the right default, and this particular use case isn't weird enough to justify the cost of learning and deploying something else. They might be right - its extremely difficult to know without taking into account the task at hand and the skills of the team. My personal take is to think about the values of a piece of software before writing it. How much should your project care about maintainability, or scalability, or accessibility (ie onboarding)? Then make your technology choices with that in mind. If actually, short term team velocity is the most important thing,

in “Don't Feed the Thought Leaders” · View on HN

db48xMay 2021Cites it

The real cost to my client was that for months or years their system had been crashing, and they could do nothing about it. They just had to live with it, rerunning jobs that had crashed. Maybe the compile times would have been unfortunate, but I think they would have come out ahead. On the other hand, they probably wouldn’t have had to hire me. Speed isn’t everything: ▶ this video

in “Instant replay: Debugging C and C++ programs with rr” · View on HN

scuddMar 2021Cites it

I can't help but feel like if you want static typing, you're better off recognizing that python is not the right tool for the job. Admittedly I've never done serious work with mypy (or typescript), so I'm approaching the value proposition of dynamic typing at face value rather than experience. However, it seems like the primary benefit of these languages was ease and flexibility, ableit at the cost of structure. Or said differently, adding mypy feels like trying to get out of a trade-off decision. This situation reminds me of a talk Bryan Cantrill gave on platform core values, and as examples he gave his interpretation of the platform core values of languages like C, Awk, and Scala: ▶ this video For me, platform core values that stick out for python would be Approachability, Simplicity, and Velocity. I understand the posited value mypy brings to the table, but it feels in contention with the original core values that made python appealing to begin with.

in “I Want a New Duck (2020)” · View on HN

codesectionsJan 2021Cites it

> I can't recall which exact presentation it was, but Bryan Cantrill had a brilliant segment on this in one of them. Perhaps others around here can remember? I think that's his discussion of language values in "Rust and Other Interesting Things" at Scale By The Bay 2018. ▶ this video [edit: This talk is also titled "Platform values, Rust, and implications for systems software". I'm not sure which title is preferred.]

in “Haskell is a Bad Programming Language (2020)” · View on HN

Topics & tags

Programming language designC, C++, Rust, Go & systems languagesbryan cantrillrustplatform valueslanguage designsoftware culture