Skip to content
0:00 / 0:00

#java#backwardcompatibility#languagedesign

Brian Goetz - Stewardship: the Sobering Parts

ClojureTV

111K subscribers • 136 videos on Hallway

YouTube
  • Recommended by 12 people: 10 on Hacker News, 1 in engineering communities and 1 curated list.
  • A classic. People kept recommending it from 2014 to 2023.
  • Presented by Brian Goetz, Java Language Architect
  • An opinion. It argues one side of a question engineers disagree on.

Intermediate. Assumes working knowledge.

38K views11 years ago12 recommendations

Programming languagesSoftware designLanguage design and type systemsJava and the JVMSoftware architecture

Brian Goetz discusses the challenges of evolving the Java language while maintaining strict backward compatibility for millions of developers.

Programming language design is not just about type theory and grammars. For evolving a mature programming language like Java, it is about finding ways to add capabilities while maintaining compatibility, both with existing code and with the expectations and mental models of 9 million or so Java developers. In this talk, Java Language Architect Brian Goetz looks at some of the challenges and lessons of steering Java through major evolutionary changes, and a sneak peek at where the Java platform is headed. Brian Goetz is one of the leading authorities on the Java platform. He is the author of the very successful 'Java Concurrency in Practice', and has published over 75 articles on software development. He was the specification lead for JSR-335 (Lambda Expressions for the Java Language) and has served on numerous other JCP Expert Groups. Brian is the Java Language Architect at Oracle.

Why it's here

12 people recommend this

What people say. Highly recommended as a masterclass on the trade-offs of programming language design and the immense value of backward compatibility.

u/__toshin r/Clojure • Recommends

Brian Goetz - Stewardship: the Sobering Parts

nickikon Hacker News • Recommends

On “Introducing .NET Core”

Watch this awesome keynote by Brian Goetz, he talks about valie types and generics. Brian Goetz - Stewardship: the Sobering Parts link to this video

elangocon Hacker News • Recommends

On “Contributing to Clojure”

To add on to that... Even though, I haven't been involved in the contributing process for Clojure, but I thought it was interesting that Brian Goetz's keynote at the Conj 6 months ago was about stewardship, in particular, stewardship of the Java language: link to this video It gave me a better appreciation for the differing concerns of someone using a language or contributing a patch vs. someone designing & maintaining a language. In my day-to-day, I use languages other than Clojure, and I sorely miss the cohesive and good design. Brian Goetz's talk nails it on the head why the languages in my day-to-day are sub-optimal, even if they're currently the "new hotness"... at least for now...

filereaperon Hacker News • Recommends

On “Oracle and the fall of Java EE”

On the topic of stewardship, I highly recommend this talk by Brian Goetz titled "Stewardship: the Sobering Parts" 1 Brian goes about how important compatibility is for the language, the concept not throwing customers code under the bus by bringing breaking incompatibilities. (ie Python 2 --> 3) Java has its warts and isn't "cool" but I respect their design decisions. 1 link to this video

filereaperon Hacker News • Recommends

On “Moving Java Forward Faster”

Brian Goetz the Java Language Architect addressed the very points you raised in a talk called "Stewardship: the Sobering Parts" 1 I highly recommend anyone with these very valid concerns to view it once. 1 link to this video

gwon Hacker News • Recommends

On “Chrome breaks the Web”

…very few exceptions, websites from the early 90s still work today. We didn't remove the `table` tag when we introduced flex boxes. We add new APIs while preserving existing functionality. If you want to see a fantastic talk on this exact subject, watch "Stewardship: The Sobering Parts" by Brian Goetz 2. It is well worth your time. 1 link 2 link to this video…

awesome-talkscurated list on GitHubRecommends

Under “Software Design”

Stewardship: The Sobering Parts by **Brian Goetz** (Clojure/Conj 2014) 1:03:30

serve_yayon Hacker News • Recommends

On “Java Doesn’t Suck”

It is only tangentially related, but I recommend this video from Brian Geotz, a Java language architect. He breaks down the challenges of adding features to the language, in a room full of Clojure devs no less. Worth a watch: link to this video

dlooseon Hacker News • Recommends

On “JEP 286: Local-Variable Type Inference”

See Brian Goetz's talk on language stewardship ( link to this video ). I'm sure nobody wants to add new and interesting features to Java more than the people who work on the language every damn day, but they've made a strong commitment to the community to not break existing code.

wgingon Hacker News • Recommends

On “Java 10 and beyond – a look at the potential language change”

As far as speed-of-evolution, it is worth understanding that the slower speed is at least partly a by-product of different goals. This talk, "Stewardship: The Sobering Parts" by Brian Goetz, is informative and well worth the watch: link to this video

devinon Hacker News • Recommends

On “Checked exceptions: Java’s biggest mistake (2014)”

I recommend Brian Goetz’ talk about language stewardship. I don’t think what you’ve said here is true, and it kind of bums me out because some of these features took years to develop so they wouldn’t break people on ancient versions. That deserves much respect and appreciation. link to this video

carimuraon Hacker News • Recommends

On “JDK 15”

Things are innovating faster than ever, but, the trick is always to address the challenges of both today and tomorrow, while staying true to compatibility and stability. Check out Brian's talk on Stewardship: link to this video

carimuraon Hacker News • Recommends

On “JDK 15”

And by telling I think you mean that over time Java has very thoughtfully evolved in a way that respects backwards compatibility, or that once a feature is in the language it'll very likely stay there for the next 25 years. Yes, innovation is very important (and happening faster than ever now with the 6-month release cadence), but a majority of the work isn't in deciding what goes in, it's deciding what stays out and if something does go in how does it satisfy both audiences of "move slow don't break" and "move faster we want features". A good video on this process: link to this video

dgb23on Hacker News • Recommends

On “Dart 3.1 and a retrospective on functional style programming in Dart”

Thank you for sharing this one! Also there are interesting talks published on YT where he discusses data/functional programming, OOP etc. Multiparadigm (including plain old procedural) seems to be the most pragmatic approach to me, because I don’t need to bend over backwards to express something in a particular way. Aside: It’s really fascinating how Java and the JVM manage to evolve while retaining reliability. He talks about that here: link to this video

pjmlpon Hacker News • Mentions

On “Java Doesn’t Suck”

> No tail calls support Due to the way JVM does bytecode verification. It will be fixed in future versions link to this video > no (optional and confined) unsafe pointer arithmetics www.docjar.com/docs/api/sun/misc/Unsafe.htm Will be replaced by an official API in Java 9. > no value types link > pathetic limit on a method size makes it an extremely shitty target for any language other than Java. Java Virtual Machine

_Codemonkeyismon Hacker News • Mentions

On “Entering the next phase of Project Valhalla”

Brian Goetz has been a role model on how to lead 0 a language for a long time now for me. Thanks for all the great work Brian. 0 "Brian Goetz - Stewardship: the Sobering Parts", link to this video