---
key: pl/io
kind: plang
name: "Io"
url: https://plangs.page/io
---

# Io

> A pure object-oriented language with a prototype-based model, inspired by Smalltalk, Self, and others, emphasizing simplicity, flexibility, and concurrency.

A pure object-oriented programming language inspired by Smalltalk, Self, Lua, Lisp, Act1, and NewtonScript. Io has a prototype-based object model similar to those in Self and NewtonScript, eliminating the distinction between instance and class. Like Smalltalk, everything is an object and it uses dynamic typing. Like Lisp, programs are just data trees. Io uses actors for concurrency. It emphasizes simplicity and flexibility with features such as coroutines, actor-based concurrency, and incremental garbage collection.

## Facts

- Appeared: 2002
- Homepage: https://iolanguage.org/
- GitHub: https://github.com/IoLanguage/io
- Languish ranking: #319

## Relationships

### Paradigms

- [Concurrent](https://plangs.page/paradigm/concurrent)
- [General-Purpose](https://plangs.page/paradigm/general-purpose)
- [Object-Oriented](https://plangs.page/paradigm/oop)
- [Prototype-Based](https://plangs.page/paradigm/prototype)
- [Scripting](https://plangs.page/paradigm/scripting)

### Platforms

- [Cross-Platform](https://plangs.page/platform/cross)
- [Linux](https://plangs.page/platform/linux)
- [Windows](https://plangs.page/platform/windows)

### Type Systems

- [Dynamic](https://plangs.page/type-system/dynamic)
- [Strong](https://plangs.page/type-system/strong)

### Influenced By

- [Lisp](https://plangs.page/lisp)
- [Lua](https://plangs.page/lua)
- [Self](https://plangs.page/self)

### Written With

- [C](https://plangs.page/c)
- [Python](https://plangs.page/python)

### Licenses

- [BSD](https://plangs.page/license/bsd)

### Tags

- [Interpreter](https://plangs.page/tag/interpreters)
- [Scripting](https://plangs.page/tag/scripting)
