Stefan Baumgartner

Eternal Sunshine of the Spotless Programming Language

What if one concept could define everything from error handling to async/await? Learn how Rust’s design avoids the complexity of older languages.

Eternal Sunshine of the Spotless Programming Language
#1about 2 minutes

Understanding the original design goals and evolution of C++

C++ was created to improve upon C with better static type checking and support for large-scale programming through user-defined types.

#2about 4 minutes

How Java and Go emerged to address C++ limitations

Successor languages like Java and Go were created to solve specific C++ frustrations like manual memory management and slow build times.

#3about 8 minutes

Modern C++ evolution and the burden of backward compatibility

While modern C++ has adopted features similar to Rust, its commitment to backward compatibility creates significant technical debt that prevents removing outdated features.

#4about 4 minutes

Defining shared behavior across types with Rust traits

Rust traits provide a powerful way to define shared behavior, similar to interfaces, but can also be implemented for types you don't own.

#5about 6 minutes

Extending core language syntax and features with traits

Traits are the mechanism for implementing core language features like operator overloading, allowing custom types to integrate seamlessly with Rust's syntax.

#6about 6 minutes

Achieving composition over inheritance with the newtype pattern

By wrapping an existing type in a new struct (the newtype pattern), you can implement custom trait behavior to favor composition over complex inheritance hierarchies.

#7about 5 minutes

Simplifying error handling with custom error types and traits

Creating custom error enums and implementing conversion traits like `From` allows for clean, centralized error handling using the question mark operator.

#8about 9 minutes

A practical example of refactoring code using custom types

A web handler is refactored by creating custom response types and implementing conversion traits, making the code more readable, reusable, and type-safe.

#9about 1 minute

How the Future trait enables a flexible async ecosystem

Rust's `async/await` syntax is built upon the `Future` trait, which allows different third-party runtimes to provide the execution logic.

#10about 15 minutes

The power and limitations of using traits for language design

Traits are the central construct for evolving Rust by adding new features without introducing breaking changes, though they can lead to complex error messages.

Related jobs
Jobs that call for the skills explored in this talk.

Featured Partners

Related Articles

View all articles
DC
Daniel Cranney
What Developers Really Need to Create Great Code Demos
Every developer on earth has, at some point, had another developer to thank for a breakthrough, a success, an aha moment they wouldn’t have had without coming across that blog post, that open-source contribution, that reply on socials or that humble ...
What Developers Really Need to Create Great Code Demos
LM
Luis Minvielle
The Best Upcoming IT Webinars
Now that you already know what IT webinars are and how they can help you level up your professional appeal, you might want actually to get into one. Live tech webinars are one of the best ways to stay on top of the latest trends and tools because eit...
The Best Upcoming IT Webinars
DC
Daniel Cranney
Building AI Solutions with Rust and Docker
In recent years, artificial intelligence has surged in popularity in the world of development. While Python remains a popular choice in the realm of AI, Rust - often known as Rust Lang - is quickly emerging as a formidable alternative.Rust programmin...
Building AI Solutions with Rust and Docker

From learning to earning

Jobs that call for the skills explored in this talk.

Rust and GoLang

Rust and GoLang

NHe4a GmbH
Karlsruhe, Germany

Remote
55-65K
Intermediate
Senior
Go
Rust
Rust Developer

Rust Developer

Pythonthis
Towcester, United Kingdom

Linux
Python