Skip to content
Paolo Angeli edited this page Oct 20, 2019 · 20 revisions

What is it?

Jai is a high-level programming language developed by Jonathan Blow, creator of indie games Braid and The Witness, a language that allows the programmer "to reach the heaven keeping the feet on the ground" (cit.).

Language type

It is an imperative static/strongly typed procedural language similar to C, but with a variety of modern features that, C and especially C++ languages, are lacking or (accordingly with the creator) have implemented in an overcomplicated, inconsistent, overengineered way.

Project start

The development of the new language started in late September 2014 after the famous video on youtube Ideas about a new programming language for games.

Purpose

Jai is meant to be a language aimed to get the best performance with no compromises: a tool specifically designed for videogames and complex simulations that will allow making programs that will run on given hardware at the highest possible speed. But thanks to its flexibility, at the moment Jai might be considered a general-purpose programming language that could be used for any task, even embedded systems, especially by senior programmers "who know all the time what they are doing" (cit.).

Performance

The expected performances of the unoptimized resulting machine code will be "for sure better than equivalent C++ code and at least as good as the performances obtainable by hand made carefully crafted equivalent C code" (cit.).

Situation

The software industry has so many problems and it is time to have people "working seriously on tools that allow making the software more robust, more analyzable and more manipulatable as a solid object, instead than a super fragile thing that could fall apart any time you touch it" (cit.).

Development

As for now (09/2019) the language and its compiler are still in development and are under a strong proof-of-concept testing through the development of a commercial multiplatform videogame named Sokoban. So as of yet are unavailable to the general public.

Community

The creator interacts with the community, through the chat of his Twitch channel during the live sessions that in some periods he broadcasts, giving sometimes little notice on twitter. Or he replies to the comments to the videos on his Youtube channel. For further discussion, the creator has addressed to the community a dedicated email address [email protected].

Expectations

The expectations upon this programming language were very high because of the overall ambitiousness of the project. The creator had already spoken of it in public in many conferences all around the world getting extremely positive feedback. But the development time is getting longer and longer. Mr. Blow is famous for his harsh rantings on many arguments, and for the extreme attention to the details that he strives to give, for granting the quality of his productions. Accordingly, he stated many times that he wants to give to the community something already rock solid to use. Despite this, he announced at least a couple of times in the past, imminent restricted beta release. And since this hasn't happened yet for years, maybe the hype is cooling down.


Navigate

Types, constants and variables

  • Variables and assignments
  • Language data types
  • Simple user-defined data types
  • Expressions and operators
  • Type-casting
  • Pointers

Flow control

Procedures and functions

  • Declarations
  • Arguments / Parameters
  • Return values
  • Overloading / Polymorhism
  • Advanced features
  • Lambdas

Aggregated data types

  • Arrays
  • Strings
  • Composition of Structs

Advanced features

Clone this wiki locally