Depending on who you ask it either becomes yet another common lisp or just "a lot of parentheses" :-)
Janet is cool though. And it is a lisp. And hades is a roguelike.
Depending on who you ask it either becomes yet another common lisp or just "a lot of parentheses" :-)
Janet is cool though. And it is a lisp. And hades is a roguelike.
Lisp-1 and Lisp-2 are the only interesting distinctions. Everything else boils down to "does it use S-expressions?" The "OMG! it doesn't have ~cons~!" is a silly argument, but that's because it's an opinion (just like this).
The key difference is that roguelikes lack the meta progression that roguelites have. Rogue and friends didn’t have meta progression.
So hades is a roguelite, not a roguelike.
It’s a well known distinction.
The key difference according to the famous Berlin interpretation is that roguelikes are supposed to have certain traits [1] making them into a variation of classic games: ADOM, (B)Rogue, Nethack, etc.
Metaprogression can or cannot be in the game. Doesn't even matter.
In this worldview roguelites, generally speaking, only borrow certain aspects of the definition, with permadeath being the main one.
Either way, there are many (very) influential devs who do not agree even with this strict definition [2].
[1] https://www.roguebasin.com/index.php/Berlin_Interpretation
Talk to any average roguelike/lite enjoyer and they’ll identify that as the difference.
“Roguelikes” do tend to have that same top down grid style, though.
Can’t think of any permadeath games without metaprogression which encourage replaying the whole game on death and which don’t use that format.
Just like with lisps. Some devs may split hairs over what is and is not a lisp, but for most people, if the language is dynamic, garbage collected, has a regular parens-heavy syntax, and has powerful macro features, it’s a lisp.
And then there's also genre/language evolution at play. Most people would say that Clojure is a lisp but semantically it is a very different language when compared to, say, common lisp.
In relevant communities. I have seen A LOT of arguments in niche communities over what a Lisp should be like. It all started around the introduction of Scheme compilers. Some say a Lisp should have macros, others focus on lists/vectors/hashes, then there's dynamic execution vs compilation, let's not forget about dynamic vs lexical binding; and the big one - Lisp-1 or Lisp-2.
I work in a mid-tier tech company with 800 devs. Been here for years, know everyone. There are maybe 3 devs/admins who know what Racket is!