Learn IO with Real Code Examples

Updated Nov 20, 2025

Explain

Io is purely object-oriented and prototype-based, with no classes.

It uses message passing as the core mechanism for object interaction.

Often used for scripting, automation, embedded systems, and distributed computing.

Core Features

Everything is an object, including numbers and functions

Dynamic typing and runtime evaluation

Coroutines and lightweight concurrency

Small footprint interpreter

Reflection and metaprogramming support

Basic Concepts Overview

Objects and prototypes

Message passing syntax

Methods and slots

Coroutines for concurrency

Dynamic typing and evaluation

Project Structure

src/ - main Io scripts

lib/ - reusable modules and objects

data/ - input/output files

tests/ - sample scripts for validation

docs/ - documentation for objects and APIs

Building Workflow

Write Io scripts (.io files)

Test interactively in Io REPL

Define objects and messages

Run scripts via Io interpreter

Integrate with external systems if required

Difficulty Use Cases

Beginner: simple object definitions and message sending

Intermediate: coroutines and concurrent scripts

Advanced: embedding Io in other applications

Expert: prototype-based DSL creation

Distributed scripting and networking

Comparisons

Lighter than Python or Ruby

Prototype-based, unlike class-based OOP languages

Better for experimentation than enterprise apps

Supports lightweight concurrency

Smaller ecosystem than mainstream languages

Versioning Timeline

2002 – Io created by Steve Dekorte

2003 – Early development versions

2004–2007 – Stabilized interpreter and REPL

2010s – Community forks and experimental extensions

2020s – Ongoing maintenance and niche adoption

Glossary

Prototype: base object for cloning

Slot: named property in an object

Message: method call or operation

Coroutine: lightweight concurrent task

Clone: create new object from prototype