My experience of three days of exploring Io through Seven Languages in Seven Weeks.
It came as a bit of a shock moving from the friendly syntax of Ruby to Io. Reading Io code is definitely not as intuitive but I can see how this simple syntax is quick to learn.
In summary the strengths of Io are:
- It is very flexible, allowing you to create your own syntax by redefining symbols and operators. Being so dynamic affects its performance in a single thread.
- It has a small footprint so is perfect for embedded systems.
- It has a simple easy to learn syntax so you can start looking at more complex concepts like metaprogramming and concurrency quickly.
- Its strong concurrency libraries make it good for parallel processing. Its concurrency constructs are up to date making it easier to build multithreaded applications which are quicker and easier to test.
In summary the weaknesses of Io are
- A lack of syntactic sugar makes it harder to read and write things concisely and debug
- It has a small community making it hard to find people who programme in it and meaning there are fewer libraries available.
- Its dynamic nature impacts on Io’s single threaded execution speed.