Skip to content
Paolo Angeli edited this page Nov 3, 2019 · 6 revisions

Why No?

Adoption issues

A compelling argument for not writing an entirely new language for games is that the momentum and volume of C and C++ code in current game engines are too high, and the OOP mainstream culture is too radicated.

Against this, the author argues that engines periodically rewrite their codebase anyway, and since Jai and C produce interoperative machine code they can live side by side while the rewrites, that would normally happen anyway, take place.

In fact, Jai uses C Obj code to use some external libraries like OpenGL and stb_image. So, replacing C and C++ can be done with almost none added cost to development. Meanwhile, the benefits of using Jai could make programmers more productive.

Use one of the other ones instead C/C++ like C#/Rust/D/Go/Haskell/etc.

None of them contain the right combination of features that game programmers need. Automatic memory management is a non-starter for game programmers who need direct control over their memory layouts. Any interpreted language will be too slow. Functional-only languages are pointlessly restricting. Object-oriented-only languages are overly complex.

The idea behind Jai is to develop a new language with the qualities that game programmers need, and without the qualities, they don’t.

Why Yes?

It's worthwhile

Its time for the braves to engage an ambitious endeavor (cit.), if it will produce only a 10% improvement in the quality of life of the author, this will be worthwhile alone.


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