Inko is a gradually-typed, object-oriented programming language designed for writing concurrent programs.
Created by Yorick Peterse, the development of Inko was influenced by Erlang, Ruby, Rust, and Smalltalk, and the language shares features with a number of other languages, but it is also unique.
As compared to Go, a statically-typed language developed by Google, Go is a compiled language while Inko is interpreted. Go is a multi-paradigm language, while Inko is an object-oriented language, using message passing rather than directly invoking functions. Go uses lightweight tasks, known as goroutines, while Inko uses lightweight processes that are more similar to operating system processes. Goroutines use shared memory, while Inko processes have their own heaps.
Erlang and Elixir are distinct languages, but both run on BEAM, the virtual machine at the core of Erlang. Both are functional programming languages, while Inko is object-oriented. Erlang, Elixir, and Inko use similar, lightweight, multitasking processes, and all three use a similar scheduling setup.
Ruby is an interpreted, object-oriented programming language, as is Inko. However, Ruby does not persist the bytecode after compilation, as it is directly executed. Every time a Ruby program runs, the bytecode has to be compiled from scratch. On the other hand, Inko's compiler is a separate program, so the bytecode is saved to disk. While both Ruby and Inko are object-oriented, Ruby uses message passing for almost everything, including if and while statements. The chief Ruby implementation, MRI (CRuby), uses a Global Interpreter Lock that prevents ruby threads from running in parallel, while Inko has no such lock, allowing Inko to run several processes in parallel. Ruby uses shared memory, while Inko processs all have their own heap. Ruby uses OS threads for multitasking, which relies on the OS thread scheduler. Thus, it is possible for a few OS threads to consume all of the CPU time, preventing other threads from functioning. Inko uses its own preemptive scheduler, guaranteeing each process a fair share of the execution time.
The Inko programming language and associated files are available under the Mozilla Public License, and may be freely downloaded, modified, and redistributed. Inko supports Linux and macOS, as well as Windows, when it is compiled with a MingW toolchain. Other Unix-type platforms should work, but are not yet officially supported. Only x86-64 platforms are officially supported at this time.
The focus of this category is on the Inko programming language. Topics related to the language itself, any of its implementations, or any editors, IDEs, or tools designed to facilitate programming in Inko, as well as Inko user groups, forums, tutorials, guides, or informational sites are appropriate.
 
 
Recommended Resources
Hosted by GitLab, this is a repository of source code and files related to the free and open-source programming language known as Inko, available under the Mozilla Public License version 2.0. Packages may be freely downloaded from the site, and contributors are acknowledged. An overview of the language is presented, along with its most significant features, requirements, installation instructions, and licensure information. Links to the official site are given.
https://gitlab.com/inko-lang/inko
Supporting Linux, macOS, and recent versions of Windows, Inko is an object-oriented programming language for writing concurrent programs. The official language website presents an overview of the language, lists its most significant features, supported platforms, and sponsors, including sponsorship opportunities. Other resources include a user manual, which covers its syntax, common patterns, compiler internals, and virtual machine internals, as well as offering tutorials.
https://inko-lang.org/
Open Collective: The Inko Programming Language
As a means of raising funds for the development and continued maintenance of the language, the OC will accept either one-time or recurring financial contributions, offering perks or benefits at different levels. Supporters may make a donation to the project, become a backer, or a sponsor, with links available for the backer and sponsor levels. Budget information is presented, contributors are acknowledged, and a general description of the programming language is included.
https://opencollective.com/inko-lang
The Inko Programming Language Forum
Registered members of the community discussion forum may read, post, or participate in announcements of projects using the language, requests for help in solving particular coding problems or other tasks related to the language, topics related to the development of the language, including new features and announcements, and other topics related to the community, if not directly related to the language. While anyone may read, participation requires registration.
https://discourse.inko-lang.org/
Yorick Peterse: Inko: a Brief Introduction
An introduction to the Inko programming language is presented by its primary author. Includes is a profile of the language, including its origins, design goals and primary features, with examples and tutorials describing its object model, message passing, type system, Booleans and nil, error handling, concurrency, memory management, portable bytecode, and code examples for checking if a string starts with another string, loops, and tail call elimination, and so on.
https://yorickpeterse.com/articles/inko-a-brief-introduction/