Est. 1994 Intermediate

Pike

A dynamic, C-like general-purpose programming language with a powerful type system, garbage collection, and first-class functions, born from the LPC MUD-driver lineage and used to build the Roxen web server.

Created by Fredrik Hübinette (with Per Hedbor and the Roxen team)

Paradigm Multi-paradigm: object-oriented, procedural, and functional
Typing Combines static (manifest) and dynamic typing; strong
First Appeared 1994 (as µLPC; renamed Pike in 1996)
Latest Version Pike 8.0 release 16 (build 8.0.1956, February 2025); Pike 9.0 in beta as of 2026

Pike is a dynamic, general-purpose programming language with a familiar C-like syntax, automatic garbage collection, a rich set of high-level built-in data types, and first-class anonymous functions. It blends static (manifest) and dynamic typing in a single, flexible type system, and supports object-oriented, procedural, and functional styles of programming. Though it has always been a niche language, Pike has a serious pedigree: it was forged in the world of multi-user text games, matured into the implementation language of a commercial web server, and has been continuously maintained for three decades.

History & Origins

Pike’s story begins not with Pike at all, but with LPC — “Lars Pensjö C” — a small, memory-efficient, C-like language created around the late 1980s by Lars Pensjö at Chalmers University in Gothenburg, Sweden. LPC was designed to let people write the rooms, objects, and behaviors of MUDs (multi-user dungeons), the text-based multiplayer adventure games that flourished on early networks.

At the Lysator academic computer society in Linköping, programmers — most prominently Fredrik Hübinette — became interested in LPC not just as a game language but as a general tool. They separated the language and its virtual machine from the rest of the MUD driver and evolved a dialect known as LPC4, increasingly using it as a rapid-prototyping language for ordinary applications.

There was a problem, though: LPC’s original license did not allow commercial use. So in 1994, with financial backing from Signum Support AB, Hübinette set out to write a clean, independent implementation under the GNU GPL, which he called µLPC (“micro LPC”). When the company InformationsVävarna AB — later renamed Roxen Internet Software (Roxen AB) — adopted µLPC to build its web server (replacing an earlier LPC4-based server), the language got a new, more marketable name: in 1996, µLPC became Pike.

At Roxen, Pike was developed by Hübinette together with a talented group that included Per Hedbor, Henrik Grubbström, Martin Stjernholm, Pontus Hagland, and Marcus Comstedt. Roxen funded Pike’s development through its early years and continues to contribute. In 2002, Roxen handed primary maintenance to the Programming Environment Laboratory (PELAB) at Linköping University, where the language’s stewardship has remained.

Design Philosophy

Pike was conceived as a language that feels comfortable to a C or C++ programmer while removing the drudgery and danger of manual memory management. Its guiding ideas include:

  • Familiar surface, high-level core. The syntax deliberately resembles C, so braces, semicolons, and control structures look the way many programmers expect — but underneath sits a garbage-collected runtime with dynamic, high-level data types.
  • A type system that meets you in the middle. Pike lets you write loosely typed, dynamically checked code for quick prototyping, or add explicit type declarations where you want the compiler’s help. The result combines some of the safety of static typing with the flexibility of dynamic typing.
  • Batteries included for the network era. Because Pike grew up building a commercial web server, it has long shipped with strong support for strings, networking, data formats, and other facilities needed for server-side and Internet programming.
  • Open and free. Pike is distributed under a choice of free-software licenses (GPL, LGPL, and MPL), reflecting its origins as a deliberately unencumbered alternative to the commercially restricted LPC.

Key Features

  • Garbage collection. Memory is managed automatically, including the collection of cyclic data structures.
  • Rich built-in data types. Beyond the usual integers and floats, Pike offers built-in strings, arrays, mappings (associative arrays/dictionaries), and multisets, among others, as native, high-level types.
  • First-class and anonymous functions. Functions are values that can be passed around and created inline, enabling a functional style alongside object-oriented and procedural code.
  • Object orientation. Pike supports classes, objects, inheritance, and program-as-object semantics drawn from its LPC heritage.
  • Flexible typing. Static (manifest) type declarations and dynamic typing coexist, letting code range from script-like to strongly typed.
  • Arbitrary-precision and high-level math, plus broad library support for things like networking, image processing, cryptography, and data serialization, reflecting decades of use in production server software.

A flavour of the syntax

int main()
{
    write("Hello, World!\n");

    array(string) names = ({ "Ada", "Grace", "Alan" });
    foreach (names, string name)
        write("Hello, %s!\n", name);

    mapping(string:int) ages = ([ "Ada": 36, "Grace": 85 ]);
    write("Grace is %d\n", ages["Grace"]);

    return 0;
}

The C-like int main() entry point and braces sit alongside Pike-specific literals: ({ ... }) for arrays and ([ key:value ]) for mappings, plus the foreach iteration construct and printf-style write.

Evolution

Over its lifetime Pike progressed through a series of major lines — the 7.x series under Roxen and the university, and the long-lived 8.0 series that has received many point releases (identified by build numbers such as 8.0.1738 and 8.0.1956). Development has continued into the 9.0 series, whose betas began appearing around 2024 and are intended to become the next stable line.

MilestoneApprox. date
LPC created by Lars Pensjölate 1980s
LPC4 dialect at Lysatorearly 1990s
µLPC implementation begun1994
Renamed Pike; Roxen development1996
Maintenance moves to Linköping University2002
Pike 8.0 series begins~2016
Pike 8.0 release 15 (8.0.1738)March 2022
Pike 8.0 release 16 (8.0.1956); Pike 9.0 betas2024–2025

The two defining arcs of Pike’s evolution are independence — the move from a license-restricted MUD language to a free, commercially usable implementation — and endurance: a small but steady community has kept the language maintained and shipping cross-platform binaries (macOS, Linux, and Windows) decades after its debut.

Current Relevance

Pike today is a niche but actively maintained language. It does not have the mindshare of mainstream scripting languages, and most of its visibility comes from its association with the Roxen web server and its academic home at Linköping University. Yet it remains under genuine development: the stable 8.0 series continues to receive releases, and a 9.0 series is in beta as of 2026. Official binaries are provided for macOS, Linux, and Windows.

For a working programmer, Pike’s appeal is that of a comfortable, C-flavored scripting language with grown-up facilities for networking and server work — a quieter cousin of the dynamic languages that became famous in the same era.

Why It Matters

Pike is a fascinating case of a language that escaped its origins. Born inside the MUD subculture as a way to script text adventures, it was deliberately re-implemented to break free of license restrictions, then pressed into service as the foundation of a commercial web server at the dawn of the web. Its careful blend of C-like familiarity with garbage collection, high-level data types, and a hybrid static/dynamic type system anticipated design choices that many later languages would popularize. And its long, low-key survival — maintained by a Swedish academic lab and a dedicated community for thirty years — makes it a quietly instructive example of how a language can find purpose, earn its independence, and simply keep going.

Timeline

around 1989
Lars Pensjö at Chalmers University in Gothenburg, Sweden creates LPC (Lars Pensjö C), a memory-efficient, C-like language for writing multi-player text adventure games (MUDs).
early 1990s
Programmers at Lysator in Linköping — most notably Fredrik Hübinette — separate the LPC language and virtual machine from the MUD driver and evolve a dialect called LPC4, repurposing it as a general rapid-prototyping language.
1994
With financial backing from Signum Support AB, Fredrik Hübinette begins writing µLPC (micro LPC), a fresh GNU GPL implementation created specifically because the original LPC license did not permit commercial use.
1996
After InformationsVävarna AB (later Roxen Internet Software / Roxen AB) adopts the language for its web server, µLPC is renamed Pike to give it a more commercially viable name. Hübinette and colleagues including Per Hedbor, Henrik Grubbström, Martin Stjernholm, Pontus Hagland, and Marcus Comstedt continue its development.
2002
Roxen seeks a new maintainer, and the Programming Environment Laboratory (PELAB) at Linköping University takes over stewardship of Pike, while Roxen continues to contribute.
2016
Pike 8.0 is released (around February 2016), beginning the long-lived 8.0 stable series that receives many subsequent point releases.
2022
Pike 8.0 release 15 (build 8.0.1738) ships in March 2022, continuing maintenance of the 8.0 series.
2024–2025
The first betas of the Pike 9.0 series appear (starting around mid-2024), intended to become the next stable series, while Pike 8.0 release 16 (build 8.0.1956) is announced as a stable release in February 2025 with binaries for macOS, Linux, and Windows.

Notable Uses & Legacy

Roxen WebServer

Roxen Internet Software's flagship web server and its accompanying content-management platform are written in Pike; building Roxen was the original commercial motivation for turning µLPC into Pike.

Opera Software

Pike was reported to be used in the server-side infrastructure behind services such as Opera Mini, where the transcoding/proxy servers reformatted web pages for mobile devices.

Lysator and the LPC/MUD community

Pike grew directly out of the LPC MUD-driver lineage at the Lysator academic computer society in Linköping, and the language and its toolchain remain hosted and maintained within that academic community.

Linköping University (PELAB)

The Programming Environment Laboratory at Linköping University has maintained Pike since 2002, using and developing it as a research and teaching vehicle as well as a production scripting language.

Rosetta Code and programming-task communities

Pike has a substantial catalogue of solutions on Rosetta Code, where it is used to demonstrate idiomatic answers to a wide range of programming tasks alongside dozens of other languages.

Language Influence

Influenced By

Running Today

Run examples using the official Docker image:

docker pull
Last updated: