More Software Engineering Daily episodes

Prettier and Opinionated Code Formatting with James Long thumbnail

Prettier and Opinionated Code Formatting with James Long

Published 19 Mar 2026

Duration: 50:35

Developer tooling shapes software workflows by streamlining code formatting with opinionated tools like Prettier, addressing formatting inefficiencies, differentiating from ESLint through dynamic code structure analysis, and confronting adoption hurdles, open-source sustainability challenges, ecosystem fragmentation, and the trade-offs between flexibility, usability, and developer needs in JavaScript tooling.

Episode Description

Developer tooling shapes how software gets written day to day, but the best tools often disappear into the background once they succeed. Formatting, l...

Overview

The podcast discusses the role of developer tooling in shaping software workflows, emphasizing how tools like formatting, linting, and build systems can either streamline processes or create friction. It highlights the JavaScript ecosystems historical struggles with tooling complexity and debates, using Prettier as a case study. Prettier, an opinionated JavaScript code formatter, emerged to eliminate time-consuming formatting disputes by enforcing deterministic, consistent code styles through minimal configuration, such as the print width parameter. While initially met with resistance, its adoption grew as developers recognized its benefits in reducing friction during code reviews and enabling focus on functionality. The conversation also explores Prettiers technical approach compared to tools like ESLint, which struggled with managing hundreds of formatting rules, and emphasizes Prettiers ability to handle JavaScript-specific complexities, such as nested functions. Challenges in tooling development include ensuring compatibility across languages, frameworks, and standards, as well as the difficulties of maintaining open-source projects, where financial sustainability and balancing community contributions with feature development remain pressing issues. The discussion also touches on broader trends in JavaScript tooling, including the rise of tools like TypeScript ESLint and the ongoing debate between fragmentation and usability in the ecosystem. Philosophically, Prettier advocates for minimal formatting control, suggesting that most code formatting can be automated, and that readability and maintainability should take precedence over stylistic preferences.

The podcast also delves into the evolution of JavaScript tooling, noting the shift from callback-heavy code to modern syntax, which made formatting tools like Prettier more acceptable. It addresses the challenges of open-source sustainability, contrasting Prettiers reliance on donations with structured business models like Tailwinds. While Prettier is framed as a completed project by its creator, who prefers manual control in certain contexts, the discussion acknowledges the trade-offs between exploratory innovation and maintenance in open-source projects. Technical aspects of Prettiers implementation are explored, including its use of abstract syntax trees (ASTs) and intermediate representations to achieve deterministic formatting. Additionally, the conversation touches on performance challenges in tooling, such as the overhead of using ESLint to invoke Prettier, and the potential of unified toolchains like Biome to reduce redundant parsing. The dialogue concludes with reflections on the evolving landscape of web development tooling, emphasizing the need for better automation, clearer standards, and a balance between flexibility and usability in future tooling solutions.

Recent Episodes of Software Engineering Daily

18 Jun 2026 Biome and the Future of JavaScript Tooling

Biome is a Rust-built, minimal-config tool for formatting and linting web projects, emphasizing cross-environment consistency, type-aware linting without TypeScript, and serving as a drop-in replacement for Prettier/ESLint, while addressing tooling evolution through performance-focused design, semantic analysis, LSP integration, and community-driven features.

16 Jun 2026 Preparing for Q-Day

Quantum computing threatens public-key cryptography, necessitating a shift to post-quantum alternatives by 2029, with lattice-based methods leading despite implementation challenges, as quantum advancements accelerate the urgency for infrastructure updates and secure cryptographic transitions.

11 Jun 2026 Developing Multiplayer Games in Godot

Domekeeper, a minimalist tower defense game evolved from a Ludum Dare jam, faces significant multiplayer development challenges including latency, cheating prevention, server costs, and synchronization issues, with developers addressing these through Godot 4, custom network state management, and community-driven multiplayer design over public lobbies.

4 Jun 2026 Web Native Game Development

The evolution from Flash to WebAssembly/WebGPU in web game development highlights performance gains and engine challenges, while contrasting with traditional platforms through shorter development cycles, mobile focus, and hurdles like file size, browser compatibility, and engagement.

2 Jun 2026 The Hardware Bottleneck AI Cant Fix

The text highlights the challenges hardware engineering faces with sensor data, real-time monitoring, and post-test analysis due to limited tooling compared to software, emphasizing solutions like data supply chain platforms, the need for agile hardware innovation, and addressing constraints such as multimodal data processing, latency, and safety-critical system requirements.

More Software Engineering Daily episodes