Developer tooling
Developer tooling is the software that sits directly in an individual developer’s write, build, and debug loop: the languages code is written in, the environments it’s written with, and the tools used to inspect and understand it when something goes wrong. It is narrower than software delivery and operations, which covers what happens to code after it leaves a developer’s machine.
Languages and runtimes
JavaScript and its standardized specification, ECMAScript, are the language of the web browser and, via runtimes built on the same engines, much of the server as well. TypeScript adds a static type system on top of JavaScript, checked before the code runs rather than only at runtime. Bash and Shell are the languages of the command line itself: the interface most other tooling on this page is invoked through. POSIX is the standard that keeps Unix-like systems, including Linux, compatible with each other at the level shell scripts and system calls depend on. Unix philosophy is the design sensibility that shaped that ecosystem: small, composable tools that each do one thing well.
Environments and interfaces
An integrated development environment (IDE) bundles an editor, a compiler or interpreter, and debugging tools into one application. The Language Server Protocol standardizes how an editor talks to the tooling that understands a specific language, so that features like autocomplete and go-to-definition can be implemented once per language rather than once per editor. Computer-Aided Software Engineering (CASE) is the older, broader term for tools that support the analysis, design, and construction of software, of which the modern IDE is a direct descendant. Protocol Buffers and an interface definition language (IDL) more generally let a data structure or an API contract be defined once and generate code for multiple languages from that single definition.
Understanding and shaping code
A debugger lets a developer pause a running program and inspect its state directly, rather than inferring it from output. Profiling measures where a program actually spends its time and memory, which is often a different answer than intuition suggests. Linting analyzes source code for likely defects and style violations without running it. Rubber ducking is the practice of explaining a problem aloud, often to an inanimate object, as a way of forcing the explanation to be precise enough to reveal the bug. Scaffolding generates the initial, boilerplate structure of a new project or component so a developer starts from a working skeleton rather than a blank file.
Booch method appears here as a historical footnote: an early object-oriented design notation and process, mostly superseded by the Unified Modeling Language it helped inspire, but its author’s name survives in the diagrams and technique. Leetspeak, by contrast, has no design pretensions at all: an informal substitution of letters for similar-looking numbers and symbols, part of the vernacular culture around early developer and hacker communities.
See also
- Bash
- Booch method
- Code conventions
- Computer-Aided Software Engineering (CASE)
- Debugger
- Developer experience (DX)
- ECMAScript
- Integrated development environments
- Interface definition language (IDL)
- JavaScript
- L3375p34k
- Language Server Protocol
- Linting
- Linux
- POSIX
- Profiling
- Protocol Buffers
- Rubber ducking
- Scaffolding
- Shell
- Spring Framework
- TypeScript
- Unix
- Unix philosophy
- Version control