The Io Programming Language

Welcome to this comprehensive guide to the Io programming language—a journey into prototype-based programming that will challenge and expand your understanding of object-oriented design.

Why Io? #

In a world dominated by class-based languages, Io offers a refreshingly different perspective. Everything is an object. Everything is a message. And everything can be changed at runtime.

What You’ll Learn #

Through detailed comparisons with JavaScript, Python, Ruby, and Java, you’ll discover:

  • How prototype-based inheritance creates more flexible designs
  • Why message passing is more powerful than method calls
  • How to think in objects without classes
  • The elegance of homoiconic languages

Start Your Journey #

Begin with the Preface to understand Io’s philosophy, or jump directly to Getting Started to write your first Io program.


“Io’s purpose is to refocus attention on expressiveness by exploring higher level dynamic programming features with greater levels of runtime flexibility.”
— Steve Dekorte, Creator of Io