Avail Development and This Website
Avail development is very active, but we are are not actively updating this website. Our available time for Avail development is spent working on the code base and updating the project in Github. Much of the information on this website is out of date. We are nearing our release goals for our official IDE, Anvil, which will revolutionize and streamline every aspect of Avail development. Once that is complete, we'll be repurposing this website for promotion and we'll be moving almost all of the content to the wiki in the Github project. It is recommended that you stop here and go to the Avail Project on Github for up-to-date information on Avail.
Avail is a multi-paradigmatic general purpose programming language whose feature set emphasizes support for articulate programming. Avail is an open-source project that comprises a language virtual machine and a standard library. Both are released under the 3-clause BSD license.
The current release version of Avail is
1.4.1. This is a stable release, and recommended for production use.
|Download a binary or source
distribution of Avail here!
To whet your appetite for Avail, below is a snippet from our largest example,
Wump the Wumpus. This application is an homage to Gregory Yob's BASIC classic, Hunt the Wumpus, and can be found in its entirety (16 modules) in the
/examples module root.
(The parameters are dependency injected I/O functions, in case you were wondering.)
1.4.1 is out and recommended for all production use. This release addresses many long-term stability issues, as well as fixes for the dynamic translator that improve both performance and reliability.
1.4.0 is out and recommended for all production use. Avail has been rebuilt to use Gradle instead of Apache Ant. Interoperation with Java has received significant attention, and foreign function interfaces now work much more reliably and elegantly. Avail has received multitudinous improvements to its virtual machine and standard library, for correctness, performance, and ease of use. Despite the staleness of the website, Avail is evolving constantly — you can see this on GitHub. We hope to rebuild the website and commit more effort to it, but the active Avail team has shrunk to two developers. If you need to get in touch with anyone on the Avail team, send an email to
email@example.com and we will try to respond as quickly as possible. Thanks!
2018.05.25: The Avail team would like to thank JetBrains for supporting Avail development through a grant of open source licenses for IntelliJ Ultimate and related products. We hope to get proper tribute up on our acknowledgments page in the next few days, but the Avail team is wildly overcommitted to other non-Avail-related projects at the moment. The Avail team would also like to thank Jane Elizabeth of JAXenter.com for her positive article. We are aware of the discussion on Hacker News, and will try to participate if time allows. We have a new website in the works (no ETA, sorry), which we hope will address the many deficiencies of our current website. Unfortunately, the biggest deficiency is the team's (in)ability to keep the website up-to-date with accurate content. Avail has seen numerous colossal changes in the past year — e.g., we introduced custom lexical rules to support arbitrary, modular, incremental, backtracking tokenization of source files, we replaced the L2 interpreter with an optimizing dynamic translator for improved performance, etc. — but the team is just a few people, non-Avail-related projects are many, and documentation always ends up being a low priority for us until we start thinking hard about releasing. I apologize for the inadequacies of the site and the documentation, but please do not be deterred! If you need to get in touch with anyone on the Avail team, send an email to
firstname.lastname@example.org and we will try to respond as quickly as possible. Thanks!
2017.08.08: Avail now has modular lexers.
2016.11.21: Avail has a sparkly new compiler. While blogging is fun, creating Avail is even more fun, so surely you can forgive this hiatus…
2015.08.16: The Avail team belatedly welcomes another member, Jared Mehl, who has actually been working with us for several months already. (Obviously we need to work on our publicity skills…)
2015.01.12: The Avail team welcomes its newest member, Robbert van Dalen. This is an exciting occasion for Avail, as Robbert is the first team member who is neither 1) a resident of the United States or 2) already known to The Avail Foundation's founding members. We choose to take this as evidence that Avail's sphere of influence is expanding. :)
2014.12.19: File I/O is now stable. This also marks the first entry in Mark's blog.
2014.10.28: The Avail Retreat of 2014, the first installment of Todd's blog, is now available. Also, Avail now incorporates server-side WebSocket and can function as an app server. And it's 20% faster and uses 73% less memory.
2014.10.16: Avail Newsletters, Edition #7: File I/O. Mostly. is now available. The construction work on file I/O and iterators is still ongoing, but open again for read-bound traffic.
2014.05.28: In response to the bug described in ticket 83, new versions of the Avail workbench's Windows installer and Unix bash script have been uploaded to the website and repository, respectively. To download the new installer, visit the download page. To update your script, do a
git pull (as described on the Unix install instructions page).
2014.05.03: Fibonacci, the next installment of the Learning Avail tutorial series, is now available.
2014.05.01: The Avail team welcomes its newest members, Evan Beach and Peter Monks. There have also been minor fixes to the tutorials.
2014.04.30: The Avail FAQ is now available.
2014.04.28: Avail Newsletters, Edition #6: Hello, World! is now available. (Oh, and we also changed the entire website and added a download link.)
This site is under active development, and, like Avail itself, it is by no means "complete". It is, nonetheless, home to a significant volume of useful content. This content can be accessed from the side bar to the left.
- Introduction. This is a bird's eye view of Avail. It describes the rationale for Avail, some philosophy behind its development and usage, and its goals. It also enumerates the features of Avail at a high level and in a buzzword bingo fashion.
- History. This is a synopsis of Avail's history, by Mark van Gulik, the creator of Avail. It chronicles one programmer's journey through the space of programming languages, and describes the frustrations and revelations that inexorably steered him toward Avail.
- Download. Obtain Avail for yourself by downloading an installer or pulling it from our official Git repository.
- Learn. Learn how to write programs using Avail. This is the home of the official Learning Avail tutorial series.
- Documentation. This is a catalog of reference material related to Avail. It describes, in great detail, the many facets of Avail. Of greatest importance are the Stacks, the Avail standard library's machine-generated APIs.
- Glossary. This is a lexicon of Avail's many terms.
- Community. Find out how to get involved with the Avail community. Here you can read through the Avail newsletters, or contact the Avail team. Public discussion on 3rd-party technology discussion sites is encouraged.
- Team. Behold, the arrogant fools whose cynicism about the state of the art and wanton acts of hubris have joined forces to conjure Avail into being! (No, this characterization isn't a defacement by vandals. We actually said this about ourselves. Of course, that's exactly what the vandals would want you to think…)
- Blogs. These are blogs written by members of the Avail team. Sadly, we prefer coding to documenting, so these are infrequently updated.
- Acknowledgments. Though the Avail team is small, Avail is nonetheless the culmination of the labors of many. We rely heavily on many excellent tools. This is our salute to those products and the generous people behind them.