# Mike Samuel - Temper

Source: https://www.youtube.com/watch?v=PsNo8LZkZEg
Recap page: https://rapidrecap.app/video/PsNo8LZkZEg
Generated: 2025-12-15T02:03:40.965+00:00

---
## Quick Overview

Mike Samuel, creator of the Temper programming language, explains that Temper aims to be a multi-language ecosystem that allows developers to write code once and deploy it across various runtimes, offering a balance between high-level functional features and low-level control, which he believes differentiates it from other languages like Scala, which he notes had a more complex ecosystem.

**Key Points:**
- Temper's goal is to support many language communities and libraries with an idiomatic interface, aiming to allow developers to write code once and deploy across multiple runtimes.
- The language was intentionally designed to avoid the perceived complexity and lack of widespread adoption of projects like Scala, particularly regarding its ecosystem and syntax.
- Temper is designed so that its core definitions translate well across different targets, such as JavaScript (via compilation to JS) and JVM languages like Java and Scala.
- A key feature discussed is that the compiler handles the complexity of translating high-level functional concepts (like tuples and ADTs) into lower-level paradigms like object-oriented code or imperative JavaScript.
- Samuel cites the need for a robust ecosystem that supports multiple languages and provides reliable security analysis/auditing as a major focus for Temper.
- The design prioritizes not just performance but also ease of reading and maintenance for programmers, even those unfamiliar with functional programming.
- The project began around 2009, predating many modern multi-language tooling efforts, and was motivated by the desire to solve the problem of language fragmentation across Google's internal systems.

![Screenshot at 00:01: 14:Mike Samuel introduces Temper's goal of supporting many language communities and libraries with an idiomatic interface, contrasting it with previous complex ecosystems.](https://ss.rapidrecap.app/screens/PsNo8LZkZEg/00-00-01.png)

**Context:** This interview segment features Mike Samuel, the creator of the Temper programming language, speaking with Andrew Lisowski on the DevTools.fm podcast. Samuel provides background on the motivation behind Temper, which was to create a unified, idiomatic programming ecosystem that could interoperate well between different target platforms (like JavaScript and JVM) and appeal to developers from various language backgrounds, including those familiar with both functional and object-oriented paradigms.

## Detailed Analysis

Mike Samuel discusses the philosophy and design goals of the Temper programming language, which he started developing around 2009. The primary goal was to create a unified ecosystem that supports many language communities and libraries through an idiomatic interface, allowing code to be written once and deployed across different runtimes (like JavaScript and JVM). Samuel contrasts Temper with Scala, noting that while Scala aimed for similar goals, it often resulted in a more complex ecosystem that didn't achieve the desired widespread adoption. Temper seeks to be less complex and more accessible, especially for security-focused work where formal verification and auditing are critical. He emphasizes that Temper's design allows complex functional concepts to be reliably translated into target languages like JavaScript while maintaining readability. He mentions that many of the core ideas were crystalized by looking at the limitations of existing systems, such as the lack of strong typing and module systems in early web development, and the need to bridge the gap between functional and object-oriented paradigms, particularly for ensuring security invariants across different platforms.

### Temper's Core Goal

- Allowing developers to support many language communities with libraries that have an idiomatic interface
- Code written once can run across multiple runtimes (e.g., JS, JVM).

### Comparison to Scala

- Temper was designed to avoid the perceived complexity and ecosystem fragmentation that plagued Scala's adoption, aiming for broader, more reliable use.

### Design Philosophy

- Focus on both performance and readability; translating functional constructs into object-oriented/imperative targets like JavaScript compilation is key.

### Security & Tooling

- The language aims to support robust security analysis, allowing developers to specify security invariants that the compiler enforces across different platforms.

### Historical Context

- The project started around 2009, driven by the need to solve problems related to language fragmentation at Google, especially concerning security and the differences between Java/Scala and JavaScript ecosystems.

### Key Technical Aspect

- Temper features strong type definitions and object capabilities that allow it to handle low-level concerns while maintaining high-level functional expression.

![Screenshot at 00:01: 09:Mike Samuel explaining the core goal of Temper: allowing developers to support many language communities with idiomatic interfaces.](https://ss.rapidrecap.app/screens/PsNo8LZkZEg/00-00-01.png)
![Screenshot at 00:09: 48:Andrew Lisowski reflecting on the difficulty of building a full-featured calendar application in the early web era.](https://ss.rapidrecap.app/screens/PsNo8LZkZEg/00-00-09.png)
![Screenshot at 00:15: 15:Mike Samuel gesturing about the need for robust security analysis and clear definitions in programming.](https://ss.rapidrecap.app/screens/PsNo8LZkZEg/00-00-15.png)
![Screenshot at 02:25: Andrew Lisowski commenting on how building a full-featured calendar in 2006 presented different challenges than today.](https://ss.rapidrecap.app/screens/PsNo8LZkZEg/00-02-25.png)
![Screenshot at 04:05: Mike Samuel visually demonstrating the concept of code being compiled from one language \(like Temper\) to another \(like JavaScript\).](https://ss.rapidrecap.app/screens/PsNo8LZkZEg/00-04-05.png)
