How Does A4 Compare To Squeak/Pharo?


A4 is an entirely separate implementation of Smalltalk, so there is unlikely to be any shared code (although it's possible that there is a little common ancestry in the codebase itself).

Features & Performance

All three systems are based on Smalltalk, so they're reasonably compatible.

All three systems feel very fast, and they're all quite efficient in their own ways.

Generally speaking, Squeak and Pharo excel in terms of language/library features and "hot loop" performance, whereas A4 excels in terms of portability/embedding features and multi-threaded performance.

A4 might also end up being the better choice for object databases, since it makes it easier to manage a large number of VMs/images in parallel, but this remains to be seen.


I'd like to work with the existing Sqeak/Pharo community and integrate these features into a larger whole, but ultimately there are a few issues that might make A4 continue as a separate project:

Use Cases

Other Smalltalk implementations are suitable for many kinds of applications, and will probably remain more suitable than A4 in many cases (due to better "hot loop" performance, larger community, more stability, full/free code availability, etc.). However, there may still be some reasons to choose A4 over other Smaltalk implementations.

A4's main advantages are the ability to embed it's core VM (and also extensions/libraries) in a larger aplication and to use multiple VMs/images within a single application (with the option of using shared memory between them).

Some potential use cases for these features include:

In the future, A4 will probably be split into an expert build focusing on these kinds of use cases and one or more specialised builds focusing on specific use cases (e.g. education, indie gaming).

This will allow for a clearer "marketing message" behind each product.