The Alore Programming Language

Alore is a new language that explores optional typing in a Python-like programming language.

Development is currently focused on the follow-up project mypy. Mypy shares a lot with Alore, but mypy will be mostly compatible with Python to make it easier to adopt. The development of Alore is on hiatus. See also the relevant news item.

Optional typing

Alore is special by having optional typing. Use Alore as a dynamic scripting language or a statically-typed language, as you prefer — or a mix of both. The type system retains the feel of dynamic typing, owing to features such as type inference.

One language for scripts and complex applications

Write your scripts quickly and maintain complex applications with ease. No need to complicate your projects by mixing different languages that do not integrate smoothly.

Clean and consistent

Alore has clean and consistent syntax and semantics that make Alore very easy to learn and makes Alore programs readable and easy to maintain. It also makes it easy to develop tooling for Alore.

Easy to get started

You can be productive almost immediately. Learning the type system is optional — everything is possible using only dynamic typing. You can extend statically-typed library classes and access all library functionality. As your projects grow, you can evolve them to static typing.

Expressive

Use powerful features such as tuples, maps, arbitrary-precision integers and anonymous functions that make Alore code concise and expressive.

Fast program startup

You can ignore static types for an almost immediate edit-test cycle. No need to wait for the compiler to finish. Alore is great for agile Test-Driven Development.

Native multithreading

Alore supports multithreading. Multicore is the future.

Portable

Alore works in Linux/Unix, Mac OS X and Windows.

Free

Alore is free to use, even for commercial purposes. Alore is distributed under the MIT License.

Download Alore or browse examples.

Development status

Alore is work in progress, but it is already fairly complete and the implementation is stable enough that we have developed complex programs (with more than 10,000 lines of code) smoothly using Alore.

Alore is still under development, and as long as it remains pre-1.0, non-backwards-compatible changes may be introduced occasionally.

We would like to hear your opinions on Alore.