Prototype

/ˈproʊ.tə.taɪp/ · Noun · Development · Origin: 1552

Definitions

  1. Prototype is a preliminary version of a product, system, or feature built to test concepts, validate assumptions, and gather feedback before investing in full development. In software, prototypes range from low-fidelity wireframes and clickable mockups to functional code that demonstrates core features with simplified implementations. Prototyping is central to design thinking and agile methodologies because it makes ideas tangible and testable early, reducing the risk of building the wrong thing. In programming languages, prototype also has a specific technical meaning: JavaScript uses prototypal inheritance, where objects inherit directly from other objects through a prototype chain rather than from class definitions. The prototype pattern in object-oriented design creates new objects by cloning existing instances. In hardware, a prototype is a physical working model built before mass production to test form factor, components, and manufacturing feasibility.

    In plain English: A working model of an app or website that people can actually click around in, even though it's not the real thing yet. It helps teams figure out what works and what's confusing before they spend time coding.

    Example: "We built a Figma prototype of the onboarding flow and ran five user tests — turns out nobody found the skip button."

Etymology

1552
The word 'prototype' enters English from Greek 'prototypon,' meaning 'a primitive form.'
1970s
In software engineering, 'prototype' comes to mean an early working model used to test concepts before full development.
1986
David Ungar and Randall Smith create Self, a prototype-based programming language that influences JavaScript.
1995
JavaScript adopts prototype-based inheritance, making 'prototype' a core concept for millions of web developers.
2010s
Prototyping tools (Figma, InVision) extend the term to design. Rapid prototyping becomes a product development standard.

Origin Story

From Ancient Greek Clay to Silicon Valley Demos

The word 'prototype' comes from the Greek 'prototypon,' meaning 'a first or primitive form,' combining 'protos' (first) and 'typos' (impression, model). In English, the word appeared as early as 1552, referring to an original model from which copies are made. In software, the term took on its modern meaning in the 1970s and 1980s as the industry grappled with how to build systems that met user needs. Traditional 'waterfall' development required complete specifications before any code was written, but users often could not articulate their needs until they saw something working. Fred Brooks hinted at the problem in 'The Mythical Man-Month' (1975), writing that you should 'plan to throw one away; you will, anyhow.' Rapid prototyping became a formal methodology in the 1980s, advocating for quick, disposable implementations that let stakeholders interact with a working model before committing to full development. In JavaScript, 'prototype' has a second, technical meaning: the prototype-based inheritance system (inspired by the Self language) where objects inherit directly from other objects rather than from classes. This dual meaning, one cultural and one technical, makes 'prototype' one of the most context-dependent terms in software.

Context: Greek origin; software usage formalized in 1970s-1980s

Fun fact: The Self programming language (1987), which pioneered prototype-based inheritance, was created at Xerox PARC by David Ungar and Randall Smith. Its influence on JavaScript means that every web page in the world uses an object model inspired by a 1980s research project.

Related Terms