JaiPrimer VS StructArrays.jl

Compare JaiPrimer vs StructArrays.jl and see what are their differences.

JaiPrimer

A description of Jonathan Blow's programming language, Jai (by BSVino)

StructArrays.jl

Efficient implementation of struct arrays in Julia (by JuliaArrays)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
JaiPrimer StructArrays.jl
10 4
1,781 313
- 2.6%
0.0 7.1
almost 3 years ago 21 days ago
Julia
- GNU General Public License v3.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

JaiPrimer

Posts with mentions or reviews of JaiPrimer. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-03-27.
  • Explorative Programming
    2 projects | news.ycombinator.com | 27 Mar 2024
    The first and most important step is having a language without statements and only expressions.

    But, as Jai needs a `return` in functions, it already failed the trivial test.

    https://github.com/BSVino/JaiPrimer/blob/master/JaiPrimer.md

  • Focus: A simple and fast text editor written in Jai
    7 projects | news.ycombinator.com | 2 Sep 2023
    Thanks, and yes, I didn't think about closures.

    Talking about closures, I also don't know why Jai needs explicit capture lists. In C++ and Rust I understand the need for them, because you have various ways to pass them into the lambda, but Jai doesn't seem to care, at least in the examples at https://github.com/BSVino/JaiPrimer/blob/master/JaiPrimer.md....

  • 7 years later... Anything new about the next big project of Jonathan?
    1 project | /r/TheWitness | 20 Jun 2023
    Jonathan Blow & co will probably be busy enough trying to release Braid: Anniversary Edition this year (it will be Braid's 15th anniversary this August), and this will push the release of untitled-Sokoban-game until 2024 or later. Note also that the sokoban game is intended to promote the new programming language he is creating (https://github.com/BSVino/JaiPrimer/blob/master/JaiPrimer.md), so that might slow development / delay the release of the game beyond what would be expected for a normal videogame. (Ie, it's not just the sokoban game that needs to be ready for release, but also perhaps other features of the new language.)
  • Porting 58000 lines of D and C++ to jai, Part 0: Why and How
    12 projects | news.ycombinator.com | 23 Nov 2022
    There's quite a lot of information, just not very accessible.

    https://www.twitch.tv/j_blow/videos?filter=archives&sort=tim... : this is jai's author livestreaming language development, most up-to-date

    https://www.youtube.com/playlist?list=PLmV5I2fxaiCKfxMBrNsU1... : a cureated subset of twitch videos, possibly outdated info

    https://github.com/BSVino/JaiPrimer/blob/master/JaiPrimer.md : a summary of jai based on the above curated videos, possibly outdated

  • What's the advantages of Rust over C/C++ today ? Is it possible to create the best 3d engine (Unreal/Frostbite/Crysis) in Rust or a AAA game like Elden Ring, FF7 remake, GTA etc with it ? If it's possible why it asn't been done yet ?
    1 project | /r/unrealengine | 20 Sep 2022
    The Jai language is the main competitor to C++ I feel. The compile times are insanely short, which is what slows you down the most when actually developing a game in C++ Unreal.
  • Suggest an interesting language for me to try out, that I can use for 2D Games. Something that I might not have considered, or is not particularly well known.
    7 projects | /r/ProgrammingLanguages | 11 Aug 2022
    There has been a lot of hype about the Jai programming language (for game development), but another language that has been heavily influenced by it and has a lot of similar syntax and concepts is Odin. Here is a blow by blow comparison, Jai vs Odin.
  • Making Reasonable Use of Computer Resources
    1 project | news.ycombinator.com | 7 Aug 2021
    This reminded me of Jai, the language by Jon Blow. In the Primer here: https://github.com/BSVino/JaiPrimer/blob/master/JaiPrimer.md, the section on Data-oriented design is relevant. Note that the bottom of the OP article mentions explicitly the games industry as caring about this; relevant given Blow's background.
  • The compiler will optimize that away
    8 projects | news.ycombinator.com | 2 May 2021
    Look for "Data oriented design" or "Structs of arrays".

    Here's a talk on the former by Mike Acton: https://www.youtube.com/watch?v=rX0ItVEVjHc

    On the latter, there's Jai, a new programming language for games (WIP, unpublished) by Jonathan Blow, who has been very public in documenting the process creating it, and which is centered around such concepts. There is some unofficial documentation of the ideas on SoA vs AoS and how the language can help switching between the two, e.g. here: https://pixeldroid.com/jailang/overview/Features/SOA/#/overv... and here: https://github.com/BSVino/JaiPrimer/blob/master/JaiPrimer.md...

    1 project | /r/programming | 14 Apr 2021
    Isn't that still the very thing that is done in various game engine entity component systems? Interestingly Jai language has out of box syntactic support for handling structs of arrays vs arrays of structs https://github.com/BSVino/JaiPrimer/blob/master/JaiPrimer.md#data-oriented-structures
  • Jai programming language Jonathan Blow
    1 project | news.ycombinator.com | 20 Jan 2021

StructArrays.jl

Posts with mentions or reviews of StructArrays.jl. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-05-07.
  • Some CUDA programming fun with Julia
    2 projects | news.ycombinator.com | 7 May 2022
    I can't recommend any particular project that implements something in cuda, but I'd check out the StructArrays.jl[0] project.

    One of julia's strengths is it's macro and type system. StructArrays.jl uses them to create a SoA struct out of a AoS. This is a killer feature that generally requires some form of code generation in C/C++.

    Even if you're just doing something on the cpu, it should set you up to be both simd & gpu friendly. They have a guide on how to swap out the underlying array storage from cpu to gpu memory

    fwiw, cuda is a "Tier 1" supported architecture[1], where "Tier 1" is defined as

    > Tier 1: Julia is guaranteed to build from source and pass all tests on these platforms when built with the default options. Official binaries are always available and CI is run on every commit to ensure support is actively maintained.

    [0] https://github.com/JuliaArrays/StructArrays.jl

    [1] https://julialang.org/downloads/#supported_platforms

  • The compiler will optimize that away
    8 projects | news.ycombinator.com | 2 May 2021
    Julia has a package that provides incredibility easy to use SoA. https://github.com/JuliaArrays/StructArrays.jl Julia's metaprogramming and multiple dispatch mean that it can use user structs fully transparently. Everything just works.
  • Is there a way to have a dataframe whose type will contain the types of its columns?
    1 project | /r/Julia | 4 Mar 2021
    You can use https://github.com/JuliaArrays/StructArrays.jl It's a decent choice when you need ease of manipulation and type stability.

What are some alternatives?

When comparing JaiPrimer and StructArrays.jl you can also consider the following projects:

conway

struct_array - Wrapper object for "structure of arrays" coding style

deno_lint - Blazing fast linter for JavaScript and TypeScript written in Rust

datarray - Struct-of-arrays style data structure that emulates array-of-structs access

cljfx - Declarative, functional and extensible wrapper of JavaFX inspired by better parts of react and re-frame

Beef - Beef Programming Language

cljs-tui-template - A leiningen template to generate ClojureScript Terminal-User-Interface applications built on web technologies you already know.

The_Way_to_Jai - A gradual guide to discover and learn the Jai programming language

functiontrace

Jai-Community-Library - Tutorials and Cheatsheet for Jai, written by its community