Talks to Watch

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

45K views · Dec 10, 2018 · 37:07 · 5 HN recommenders · 10 mentions · discussed 2021–2024

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 points people here: Cited again and again as the framework for discussing languages in terms of values, and how organizational values shape software quality.

“Bryan Cantrill has an excellent talk on this”HN comment, 2022

What Hacker News said 10

Strongly recommendsfreemintMay 2022

“Bryan Cantrill has an excellent talk on this”

Organizational values shape software correctness; hire for values

Full comment

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
RecommendsbtschaeggMay 2021

“Bryan Cantrill explains a very interesting thought about that here”

Cantrill's thought on how backend developers view JavaScript

Full comment

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
RecommendsjosephgAug 2021

“This is a great chart / explanation of this kind of thinking from Bryan Cantrill”

Chart and explanation of language values

Full comment

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
RecommendsjamincanJan 2022

“Bryan Cantrill has an interesting talk that discusses various languages in terms of their values”

Discusses programming languages in terms of their values

Full comment

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

RecommendscodetrotterAug 2024

“where he talks about software platform values, in the sense of what different programming languages and other things focus on”

Cantrill on platform values and security-versus-performance tradeoffs, including CPU microcode.

Full comment

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
Cites itcodesectionsJan 2021

“I think that's his discussion of language values in "Rust and Other Interesting Things" at Scale By The Bay 2018.”

Cantrill on programming language values

Full comment

> 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
Cites itscuddMar 2021

“a talk Bryan Cantrill gave on platform core values”

Cantrill on platform core values of languages

Full comment

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.

Cites itdb48xMay 2021
Full comment

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
Cites itjosephgJun 2021
Full comment

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
Cites itchalstMay 2022

“I guess the Cantrill talk you are referring to must be 'Software as a reflection of values' from 2018”

Cantrill's talk on software as a reflection of values

Full comment

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