About Jam

Concept

Jam is an attempt to bridge the gap between dynamic, interpreted languages and static, compiles ones.

Effectively most useful language constructs from languages such as Ruby and Python can be statically verified and compiled to something as natively efficient as if the equivalent were written in languages such as C++ or D.

Because of this, it is possible to combine a lot of the type safety and other neat features from static compiled languages with the dynamic nature common to interpreted ones. This includes types as values, monkey-patching and effective duck-typing.

Design Goals

  • Easy to read, understand and reason about.
  • A tight set of complimentary language features that expand to more powerful concepts.
  • Good, large set of standardised tools/libraries.
  • Efficiently compile-able to fast native code.

Syntax

Jam syntax is inspired by Ruby with a hint of Python and D, designed with readability and writeability in mind.