Pike (programming language)

Last updated
Pike
Pike Programming Language Logo.svg
Paradigm Multi-paradigm: object-oriented, functional, procedural
Designed by Fredrik Hübinette
Developer Pike development team supported by the Software and Systems division of the Department of Computer and Information Science (IDA) at Linköping University
First appeared1994;30 years ago (1994)
Stable release
8.0.1738 / January 30, 2022;2 years ago (2022-01-30)
Typing discipline Static, dynamic, manifest
OS Any Unix-like, Windows
License GPL/LGPL/MPL
Website pike.lysator.liu.se OOjs UI icon edit-ltr-progressive.svg
Major implementations
Pike
Influenced by
LPC, C, C++

Pike is an interpreted, general-purpose, high-level, cross-platform, dynamic programming language, with a syntax similar to that of C. Unlike many other dynamic languages, Pike is both statically and dynamically typed, and requires explicit type definitions. It features a flexible type system that allows the rapid development and flexible code of dynamically typed languages, while still providing some of the benefits of a statically typed language.

Contents

Pike features garbage collection, advanced data types, and first-class anonymous functions, with support for many programming paradigms, including object-oriented, functional and imperative programming. Pike is free software, released under the GPL, LGPL and MPL licenses.

History

Pike has its roots in LPC, which was a language developed for MUDs. Programmers at Lysator in Linköping, Sweden, most notably Fredrik Hübinette and Per Hedbor, [1] separated the language and virtual machine from the rest of the MUD driver, and used it as a rapid prototyping language for various applications, calling it LPC4.

LPC's license did not allow use for commercial purposes, and so a new GPL implementation was written in 1994, called μLPC (micro LPC).

In 1996, μLPC was renamed to Pike in order to provide a more commercially viable name. Although the name of the company has changed over the years, the company now known as Roxen Internet Software employed many Pike developers, and provided resources for Pike's development. Roxen is also the name of a web server developed by the company in Pike. In 2002, the programming environment laboratory at Linköping University took over maintenance of Pike from Roxen. Several Pike programmers have found their way to the Linköping office of Opera Software, where the language plays a central role in the server/gateway parts of the Opera Mini application. [2] [3]

Example

intmain(){write("Hi there! What's your name?\n");stringname=Stdio.stdin->gets();write("Nice to meet you, "+name+"!\n");return0;}

See also

Related Research Articles

<span class="mw-page-title-main">GNU Lesser General Public License</span> Free-software license

The GNU Lesser General Public License (LGPL) is a free-software license published by the Free Software Foundation (FSF). The license allows developers and companies to use and integrate a software component released under the LGPL into their own software without being required by the terms of a strong copyleft license to release the source code of their own components. However, any developer who modifies an LGPL-covered component is required to make their modified version available under the same LGPL license. For proprietary software, code under the LGPL is usually used in the form of a shared library, so that there is a clear separation between the proprietary and LGPL components. The LGPL is primarily used for software libraries, although it is also used by some stand-alone applications.

<span class="mw-page-title-main">Java (programming language)</span> Object-oriented programming language

Java is a high-level, class-based, object-oriented programming language that is designed to have as few implementation dependencies as possible. It is a general-purpose programming language intended to let programmers write once, run anywhere (WORA), meaning that compiled Java code can run on all platforms that support Java without the need to recompile. Java applications are typically compiled to bytecode that can run on any Java virtual machine (JVM) regardless of the underlying computer architecture. The syntax of Java is similar to C and C++, but has fewer low-level facilities than either of them. The Java runtime provides dynamic capabilities that are typically not available in traditional compiled languages.

SuperCollider is an environment and programming language originally released in 1996 by James McCartney for real-time audio synthesis and algorithmic composition.

A GPL linking exception modifies the GNU General Public License (GPL) in a way that enables software projects which provide library code to be "linked to" the programs that use them, without applying the full terms of the GPL to the using program. Linking is the technical process of connecting code in a library to the using code, to produce a single executable file. It is performed either at compile time or run-time in order to produce functional machine-readable code. The Free Software Foundation states that, without applying the linking exception, a program linked to GPL library code may only be distributed under a GPL-compatible license. This has not been explicitly tested in court, but linking violations have resulted in settlement. The license of the GNU Classpath project explicitly includes a statement to that effect.

<span class="mw-page-title-main">Inferno (operating system)</span> Distributed operating system

Inferno is a distributed operating system started at Bell Labs and now developed and maintained by Vita Nuova Holdings as free software under the MIT License. Inferno was based on the experience gained with Plan 9 from Bell Labs, and the further research of Bell Labs into operating systems, languages, on-the-fly compilers, graphics, security, networking and portability. The name of the operating system, many of its associated programs, and that of the current company, were inspired by Dante Alighieri's Divine Comedy. In Italian, Inferno means "hell", of which there are nine circles in Dante's Divine Comedy.

Caudium is an open source web server. It was originally created as a fork of the Roxen Challenger server. The server is written in C and Pike, and Pike is also used to create extensions to the server.

In computer software, a general-purpose programming language (GPL) is a programming language for building software in a wide variety of application domains. Conversely, a domain-specific programming language (DSL) is used within a specific area. For example, Python is a GPL, while SQL is a DSL for querying relational databases.

LPMud, abbreviated LP, is a family of multi-user dungeon (MUD) server software. Its first instance, the original LPMud game driver, was developed in 1989 by Lars Pensjö. LPMud was innovative in its separation of the MUD infrastructure into a virtual machine and a development framework written in the programming language LPC.

Hard coding is the software development practice of embedding data directly into the source code of a program or other executable object, as opposed to obtaining the data from external sources or generating it at runtime.

<span class="mw-page-title-main">OpenLaszlo</span> Discontinued open-source platform

OpenLaszlo is a discontinued open-source platform for the development and delivery of rich web applications. It is released under the Open Source Initiative certified Common Public License (CPL).

<span class="mw-page-title-main">Lazarus (software)</span> Free cross-platform integrated development environment for Free Pascal

Lazarus is a cross-platform, integrated development environment (IDE) for rapid application development (RAD) using the Free Pascal compiler. Its goal is to provide an easy-to-use development environment for developing with the Object Pascal language, which is as close as possible to Delphi. It is free and open-source software with different parts released under different software licenses.

<span class="mw-page-title-main">LAMP (software bundle)</span> Acronym for a common web hosting solution

LAMP is an acronym denoting one of the most common software stacks for the web's most popular applications. Its generic software stack model has largely interchangeable components.

Haxe is a high-level cross-platform programming language and compiler that can produce applications and source code for many different computing platforms from one code-base. It is free and open-source software, released under the MIT License. The compiler, written in OCaml, is released under the GNU General Public License (GPL) version 2.

<span class="mw-page-title-main">GNU General Public License</span> Series of free software licenses

The GNU General Public License is a series of widely used free software licenses, or copyleft, that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general use, and was originally written by Richard Stallman, the founder of the Free Software Foundation (FSF), for the GNU Project. The license grants the recipients of a computer program the rights of the Free Software Definition. The licenses in the GPL series are all copyleft licenses, which means that any derivative work must be distributed under the same or equivalent license terms. It is more restrictive than the Lesser General Public License, and even further distinct from the more widely-used permissive software licenses BSD, MIT, and Apache.

<span class="mw-page-title-main">Go (programming language)</span> Programming language

Go is a statically typed, compiled high-level programming language designed at Google by Robert Griesemer, Rob Pike, and Ken Thompson. It is syntactically similar to C, but also has memory safety, garbage collection, structural typing, and CSP-style concurrency. It is often referred to as Golang because of its former domain name, golang.org, but its proper name is Go.

DGD, Dworkin's Game Driver, is an LPMud server written by Felix A. "Dworkin" Croes. DGD pioneered important technical innovations in MUDs, particularly disk-based object storage, full world persistence, separation of concerns between driver and mudlib, runtime morphism, automatic garbage collection, lightweight objects and LPC-to-C compilation.

<span class="mw-page-title-main">Opa (programming language)</span>

Opa is an open-source programming language for developing scalable web applications.

Roxen is a free software web server produced by Roxen Internet Software, a company based in Linköping, Sweden and named after the nearby lake Roxen. It is released under the GNU General Public License. Roxen originally appeared as Spinner in the mid-1990s and is written in uLPC or Pike. During its heyday, Roxen was used by large companies such as RealNetworks, Granada Media, Xmission and MCI.

<span class="mw-page-title-main">Yate (telephony engine)</span> Open source telephony engine

Yate is free and open source communications software with support for video, voice and instant messaging. It is an extensible PBX under the GPL 2.0–only license. It is written in C++ with a modular design, allowing the use of scripting languages like Perl, Python and PHP to create external functionality.

The following outline is provided as an overview of and topical guide to the Perl programming language:

References

  1. "The history of pike".
  2. Lextrait, Vincent (January 2010). "The Programming Languages Beacon, v10.0". Archived from the original on 30 May 2012. Retrieved 14 March 2010.
  3. "Hacker News - Pike Programming Language - Discussion - We built the Opera Mini server infrastructure based on Pike, starting back in 20..." news.ycombinator.com. Retrieved 1 August 2023.