Basic premises

the goal » a new language—to replace the current defacto standard of C++—that is not a ‘big agenda’ language, but a working person’s language. 1

Guiding principles 2

  • Quality of life
  • Simplicity
  • Expressive Power

Considered alternatives

  • go - generally good, but GC’d, and concurrency model is too restrictive 3
  • D - buys too much into C++’s ideas 4
  • rust - cares too much about safety, probably high friction 5

Feasability

Making a AAA game is probably more complicated than making a compiler 6, and it doesn’t make programming better for everyone. Also, because this language will be simpler than C++, it will be less work to develop. 7

Why a new language? Why now?

  • C++ has reached critical complexity 8 9, and other new languages prevent you from being efficient 10
  • LLVM exists and takes care of the hard parts of compiler building: optimizing and generating competent machine code for multiple target platforms 11
  • Moore’s law is not holding up anymore, so we need a way to make software faster instead of relying on better hardware 12

What’s in it for the game programming community?

  • if using the language is even 10% simpler, the impact to the industry will be large 13
  • efficiency improvements of 20% 14 and more 15 are expected, including compiling 1,000,000 lines of code per second 16
  • most importantly, increasing the joy of programming will actually make programmer’s lives better 17

  1. If you’re going to go to game developers and say, “You should switch to a new language.”, it can’t be a big agenda language. It has to be more like a working person’s language that understands the kind of stuff we do every day.
    “Ideas about a new programming language for games.” YouTube, uploaded by Jonathan Blow, Sep 19, 2014, https://youtu.be/TH9VCN6UkyQ?t=292 

  2. What should we care about? Quality of life of the programmer…simplicity…expressive power.
    “#Gamelab2018 - Jon Blow’s Design decisions on creating Jai, a new language for game programmers.” YouTube, uploaded by Social Gamelab, Jul 13, 2018, https://youtu.be/uZgbKrDEzAs?t=854 

  3. Go does a lot right! But, GC’d = non-starter, and [the] concurrency model probably won’t work for us.
    “Ideas about a new programming language for games.” YouTube, uploaded by Jonathan Blow, Sep 19, 2014, https://youtu.be/TH9VCN6UkyQ?t=378 

  4. [D] does feel like a better, cleaner, smarter C++, but I don’t really want C++ ultimately.
    “Ideas about a new programming language for games.” YouTube, uploaded by Jonathan Blow, Sep 19, 2014, https://youtu.be/TH9VCN6UkyQ?t=514 

  5. Rust is very, very concerned about never letting you do unsafe things to the point of being a big idea language. And because it’s a big idea language, it creates a lot of friction.
    “Ideas about a new programming language for games.” YouTube, uploaded by Jonathan Blow, Sep 19, 2014, https://youtu.be/TH9VCN6UkyQ?t=600 

  6. I think a compiler is much easier than a AAA game.
    “Ideas about a new programming language for games.” YouTube, uploaded by Jonathan Blow, Sep 19, 2014, https://youtu.be/TH9VCN6UkyQ?t=782 

  7. If we design a simpler language than something like C++, it’s going to be a lot less work to make it happen.
    “Ideas about a new programming language for games.” YouTube, uploaded by Jonathan Blow, Sep 19, 2014, https://youtu.be/TH9VCN6UkyQ?t=926 

  8. I like C++ now more than before, but also feel it’s reached critical complexity, and its ship is done sailing.
    “Ideas about a new programming language for games.” YouTube, uploaded by Jonathan Blow, Sep 19, 2014, https://youtu.be/TH9VCN6UkyQ?t=124 

  9. C++ is a really terrible, terrible language, so it would really help us to get off it as quickly as we can.
    “#Gamelab2018 - Jon Blow’s Design decisions on creating Jai, a new language for game programmers.” YouTube, uploaded by Social Gamelab, Jul 13, 2018, https://youtu.be/uZgbKrDEzAs?t=24 

  10. Other languages buy into assumptions that prevent you from writing programs that run efficiently, are clear, and are brief, concise, and easy to understand.
    “#Gamelab2018 - Jon Blow’s Design decisions on creating Jai, a new language for game programmers.” YouTube, uploaded by Social Gamelab, Jul 13, 2018, https://youtu.be/uZgbKrDEzAs?t=1157 

  11. Another reason why now is better than ever before is we have this thing called LLVM, which is a compiler system that over the past several years has gotten really robust and into common use.
    “Ideas about a new programming language for games.” YouTube, uploaded by Jonathan Blow, Sep 19, 2014, https://youtu.be/TH9VCN6UkyQ?t=845 

  12. Software today feels slower and slower, despite significant continuous hardware advances for the last several decades (“andy giveth, and bill taketh away”). But now, computers are not getting much faster.. will software stop getting slower? [We] need to dislodge ourselves [from the growth curve plateau] by…getting rid of some of the bottlenecks we have. So if our tools are constraining our productivity, and we do a good job of revising those tools, this might buy us more slope on one of these curves.
    “Reboot Develop 2017 - Jonathan Blow, Thekla Inc. / Making Game Programming Less Terrible.” YouTube, uploaded by Reboot Develop, May 22, 2017, https://youtu.be/De0Am_QcZiQ?t=906 

  13. Imagine that every single programmer in the entire industry saved 10% of their time.
    “#Gamelab2018 - Jon Blow’s Design decisions on creating Jai, a new language for game programmers.” YouTube, uploaded by Social Gamelab, Jul 13, 2018, https://youtu.be/uZgbKrDEzAs?t=1015 

  14. I think in pure process improvements, we could get at least 20%.
    “Ideas about a new programming language for games.” YouTube, uploaded by Jonathan Blow, Sep 19, 2014, https://youtu.be/TH9VCN6UkyQ?t=1026 

  15. 50% is possible; 80% may be possible.
    “#Gamelab2018 - Jon Blow’s Design decisions on creating Jai, a new language for game programmers.” YouTube, uploaded by Social Gamelab, Jul 13, 2018, https://youtu.be/uZgbKrDEzAs?t=1028 

  16. The target rate after we do those speed-ups is about a million lines a second.
    “#Gamelab2018 - Jon Blow’s Design decisions on creating Jai, a new language for game programmers.” YouTube, uploaded by Social Gamelab, Jul 13, 2018, https://youtu.be/uZgbKrDEzAs?t=1522 

  17. There’s something that’s worth far more than 20%, and that’s the joy of programming.
    “Ideas about a new programming language for games.” YouTube, uploaded by Jonathan Blow, Sep 19, 2014, https://youtu.be/TH9VCN6UkyQ?t=1041 

jailang 2019 pixeldroid
https://github.com/pixeldroid/jailang
programming pages theme v0.5.21 (https://github.com/pixeldroid/programming-pages)