| ▲ | dismalaf an hour ago | |
> The entire concept of Odin seems to be taken from Jai. They're both aiming to be C/C++ replacements "for the joy of programming" (another thing that was in the early Jai videos that Bill ripped off). In addition to the syntax (which is eerily similar across the entire language), there is the "using" keyword, the "defer" keyword, the context system, custom allocators, native AoS, polymorphic procedures, etc. Both Odin and Zig were inspired by Jai. Both creators were in the "Handmade" community and inspired. That being said, a ton of these concepts existed in many languages that pre-date the developement of Jai by a very large margin. > using Literally in C++. Common Lisp has ":use" for packages/namespaces and "with-slots" for structs. Pascal has "with". A bunch of others too. > defer This came from Go. > the context system Jonathan Blow talked about where he got this, basically using obscure SML compilers in the 90's. Jon probably got this from MLKit. This is also how some Lisps did arenas in like the 70's... Ada also has a similar feature. > The entire concept of Odin seems to be taken from Jai. They're both aiming to be C/C++ replacements "for the joy of programming" Except D, Nim and Haxe are probably the actual precursors. According to Jon the biggest feature of Jai is it's macros which are basically taken from Common Lisp although languages like Haxe, D, Rust, Nim and probably others also allow execution of any arbitrary code at compile time. At a recent LambdaConf he also talked about what he called a "plugin" system for the Jai compiler which kind of sounds like how OCaml or Haskell do macros/templates. But Odin famously eschews macros. There's a few built-in features that do things at compile time but you can't just execute any code at compile time. > began developing Odin AFTER he saw Jai Jon (and Casey's) videos inspired the whole "Handmade" community, for better or worse. Both Bill (Odin) and Andrew Kelley (Zig) started their respective projects because of it. Both "took" ideas from Jai. Except none of those ideas are unique. There's literally nothing in Jai another language doesn't have. Even the syntax "name :: type" seems to come from Haskell type declarations, although :: is also used for types in Fortran and it's used in Backus-Naur form. Anyhow in the end Jon's the one who just took a bunch of pre-existing functional language features, added it to a C-like language and acted like he reinvented the wheel. He didn't. And finally, the "joy of programming" comes from Ruby's creator Matz. | ||