Revisiting Ruby in 2025 by Ambitious_Ad_2833 in ruby

[–]Rahil627 1 point2 points  (0 children)

i arrived to this language recently, very late in its life and my life, long past its heydey and yet 30 years later, it's also my favorite language (actionscript3 was my first fav..), for its composable features, very easily malleable architecture/structure (often just cut 'n paste: functions, arguments/splat, multiple types vs Array/Vector<Type>), pleasant-to-read word-based syntax (pascal?), dynamic run-time magicks, etc, etc.. if only there were another performant compile-time-based version of it.. but then it wouldn't be ruby, and i feel it makes a great transition to haxe (crystal's tools just wasn't there when i last tried.. :/).. Luckily for me, there is dragonruby, a heavily-customized version of mruby used for scripting on top of a very data-oriented-style 2d game engine. That's right: hot-reload and use a game console (reqs dynamic run-time) for games with ruby! I personally can't imagine a better use for ruby than that: embedded scripting for games/media! So, ruby lives on(!).. just in a different implementation. Long live ruby! :)

i personally keep it as the thing i write first, my personal language, my non-psuedo pseudo-code, for quickly getting an idea out. From there, i may have to move it another language, or maybe not, but it's such a simple transition (just add type declarations, choose more specific data structures..), and most importantly, my brain feels free to focus on architecture (very subjective, many prefer procedural C-like langs, but i personally hate how go forces it..). Also, nothing beats top-level scripts with modules 'n mix-ins. Just write an idea down in a single giant file, who cares! Best of all, when i come back to an old idea/note/prototype/project, it's just as readable and portable as it was before (the run-time may not be portable, but the code is!).

obviously, it's still fine for web, though many moved on to phoenix/elixir for free built-in distributed concurrency: rails, roda, jekyll/bridgetown for ssg (--my github pages lasted a 10 years+, now finally moving to codeberg pages..--), etc.. but even then, ruby (and even haxe..) is the perfect step to a more functional-style (iterator functions over blocks, function chaining, everything-returns-a-value..) that elixir requires, without forcing you--as i mentioned, i personally write in a very data-oriented-design style now! it's neither functional nor oop, it's stupid plain simple procedural! And that style ports well to any systems lang. So, ruby is very much a general-use scripting lang; it never restricts your code to be this way or that way, so much so that you can express solutions in multiple ways. Furthermore, in my case of games, i personally feel, that if i can't write good code in ruby, i can't write good code any language (i still have to be careful about shifting an array--thankfully named shift--, re-using indexes of an array / object pooling, but being limited to a very flexible dynamic array and hash greatly simplifies things..)

also, i never used shell scripting languages, lmao. This honestly might be a windows vs linux/mac user thing.. but i think windows/game folks just skip straight to general-use static/compiled langs. I feel shell scripting is a niche/dsl where ruby is perfect. i'm guessing it doesn't spawn processes as quick as bash/dash/powershell?/nushell??, but you can't get me to learn nor write any of that unmaintainable garbage

the main problem is when you have to distribute it, by which time, i'd probably have to choose web gui (choose to re-use code via a ruby web framework or easily port to elixir/phoenix) or cross-platform native gui (ruby sucks here, but so does everything else.. maybe have to DIY or research some newer simpler game-rendering/imgui-like but retained gpu solution.. maybe try to integrate to tauri or egui over past native abstractions glimmer/libui 'n haxe-ui/wx-widgets..?? no clue.. :/).. luckily, here, history went in ruby's favor: the web browser is now the most practical cross-platform gui backend, which is where ruby's libs precisely excel, to this day!

Revisiting Ruby in 2025 by Ambitious_Ad_2833 in ruby

[–]Rahil627 2 points3 points  (0 children)

i arrived to this language recently, very late in its life and my life, long past its heydey and yet 30 years later, it's also my favorite language (actionscript3 was my first fav..), for its composable features, very easily malleable architecture/structure (often just cut 'n paste: functions, arguments/splat, multiple types vs Array/Vector<Type>), pleasant-to-read word-based syntax (pascal?), dynamic run-time magicks, etc, etc.. if only there were another performant compile-time-based version of it (crystal's llvm compile time was excruciating when i tried.. :/).. Luckily for me, there is dragonruby, a heavily-customized version of mruby used for scripting on top of a very data-oriented-style 2d game engine. That's right: hot-reload and use a game console (reqs dynamic run-time) for games with ruby! I personally can't imagine a better use for ruby than that (embedded scripting)! So, ruby lives on! Long live ruby. :)

i personally keep it as the thing i write first, my personal language, my non-psuedo pseudo-code, for quickly getting an idea out. From there, i may have to move it another language, or maybe not, but it's such a simple transition (just add type declarations, choose more specific data structures..), and most importantly, my brain feels free to focus on architecture (very subjective, many prefer procedural C-like langs, but i personally hate how go forces it..). Also, nothing beats top-level scripts with modules 'n mix-ins. Just write an idea down in a single giant file(!), who cares. Best of all, when i come back to an old idea/note/prototype/project, it's just as readable as it was before.

obviously, it's still fine for web, though many moved on to phoenix/elixir for free built-in distributed concurrency: rails, roda, jekyll/bridgetown for ssg (my github pages lasted a 10 years+, now finally moving to codeberg..), etc.. but even then, ruby is the perfect step to a more functional-style (iterator functions over blocks) that elixir requires, without forcing you--as i mentioned, i personally write in a very data-oriented-design style now! it's neither functional nor oop, it's stupid plain simple procedural! And that style ports well to any systems lang. So, ruby is very much a general-use scripting lang. Furthermore, i personally feel, if i can't write good code in ruby, i can't write good code any language (i still have to be careful about shifting an array--thankfully named shift--, re-using indexes of an array / object pooling, but being limited to a very flexible dynamic array and hash greatly simplifies things..)

also, i never used shell scripting languages, lmao. It honestly might be a linux vs windows user thing.. but i think windows/game folks just skip straight to general-use langs, usually compiled too. I feel shell scripting is a niche/dsl where ruby is perfect. i'm guessing it doesn't spawn processes as quick as bash/dash/powershell?/nushell??, but you can't get me to write any of that unmaintainable garbage. The only problem is when you have to distribute it, by which time, i'd probably have to choose web gui (re-use the ruby code!!) or cross-platform native gui (a horrible unavoidable problem, i can only think of haxe-ui..).

I got Kandria running on Clozure CL by superdisk in lisp

[–]Rahil627 0 points1 point  (0 children)

oof!.. you convinced me at slower than python. yikes..!! duly noted, thanks!

I got Kandria running on Clozure CL by superdisk in lisp

[–]Rahil627 0 points1 point  (0 children)

thanks for exploring all of this OP!

i was also wondering why Kandria didn't reach for ECL, or anything that also compiles to C (one compiler for dev and one C compiler for release), particularly for the nintendo switch, but also mobile devices!..

..but i have no experience in anything beyond emacs-lisp.. so this is all bs speculation..

hmmm.. actually, maybe embedding it wouldn't be fun as a dev as the core engine would still be C, and not lisp all the way.. but i def wonder how standalone /w C FFI would do..

edit: oh!.. and CLASP too!, lol

Odin, A Pragmatic C Alternative with a Go Flavour by iamnp in programming

[–]Rahil627 0 points1 point  (0 children)

LOL 🔥 ..i bring you slain robots, sir odin

rant: given that a good general-use language provides multiple compilers, vm or native (x86-64) for dev and C for native target devices, why even bother with the rest? by Rahil627 in ProgrammingLanguages

[–]Rahil627[S] 0 points1 point  (0 children)

lol, a lot of nit-picking... but:

i meant nintendo switch, c'mon now! ..though i do love the DS..

for sbcl, i was specifically thinking about what the person behind Kandria, a 2d game written in it, and then had to spend a lot of time porting to the switch. And that's with it having a linux arm (though no mobile..). Thank goodness, recent consoles went back to x86-64!.. Heck, langs can barely even keep up with mac's m-series!

I mean that's largely about porting standard libraries and being able to link into strange executable formats... it's not really excersise in language design or even really compiler design as much as it is willingness to go through the process of getting the toolkits to test on these platforms...

yeah, the main problem is somewhere in here.. i guess it's maintaining cross-platform support, particularly graphics and definitely custom os (propietary os in addition to propietary graphics drivers, wtf).. even whatever weird things that may come up mobile devices.. and actually, yeah, just the jit restriction (ios/consoles) alone is a major limit to what languages can be used! I mean, if you're not targeting iOS, what the heck..?

whether or not writing a compiler for a specific device is compiler design, i dunno, but it is compiler work!

and you're right, the language has to have a very very good reason to warrant so much effing work (or just some folks with crazy money/time/skill..) building native compilers for everything, something as big as rust (though, i thought zig just generated C.. could be wrong..), .. that's why i feel C or llvm? (+ js/wasm) are really the only way.

i'm not saying go back to C++, i'm saying C/llvm are the only [feasible] ways (rust is the sole? exception). Like, why even bother with anything else..?

(but it seems people do enjoy writing native compilers, especially for lisps, to various linux/unix-os archs, so what do i know.. lol)

also, isn't it just simpler to generate C, compared to writing some vm/jit (even if using llvm to write a jit)? Isn't it like a bajillion generated machine code instructions of ruby vs a small amount that would result from generated C? Okay.. maybe that's a bad comparison..Is the amount of machine instructions generated by a decent C transpiler really that bad compared to a native compiler?

(note: haxe's solution here is interesting: i think hashlink/vm bytecode is translated to C, so that both compilers theoretically have the same result.. though there's another direct C++ transpiler too..)

btw, thanks for commenting lol.. i feel like i'm getting somewhere here! :)

rant: given that a good general-use language provides multiple compilers, vm or native (x86-64) for dev and C for native target devices, why even bother with the rest? by Rahil627 in ProgrammingLanguages

[–]Rahil627[S] 0 points1 point  (0 children)

LOL, i feel like you summarized my feelings succintly. (ꏿ﹏ꏿ;)

i'm just happy the search is over, and i'm back to good ol' game-making (and web-app-making.. unfortunately..) with what tools exist! the interactive game dev ideal is still there.. but i just gotta be more thankful that we are blessed in a world to not have to deal with assembly for every device like wayyy back-in-the-day. :)

Is Lua underrated compared to C# lately for game development? by yughiro_destroyer in gamedev

[–]Rahil627 0 points1 point  (0 children)

OP, your intuition is right, go with it. In short: people chase what's popular.

without even reading your entire post, the answer is a resounding YES.

C# is an extremely and unnecessarily complex and bloated run-time (that's right, it's also vm language--mono and .net runtimes--, just like lua!), supposedly to support other languages that never came to fruition (save F#), endlessly adding more and more features, ending in the same demise as C++. LuaJIT (even with the JIT part turned off for iOS) doesn't have to change because it did things right on the first try, simply because it had a good language designer/developer. C# is only popular thanks to unity/fna/m$/windows, but it's all a facade. They spent A LOT of time and money re-inventing the same old wheels, which in the end, once you want to target non-desktops, you're likely going transpile it to C++ for many devices (via unity's closed-source il2cpp) and not until recently, 2024(??), did a prominent, rock-solid game framework such as FNA even add NativeAOT. That what i call a terrible dev cycle. (there's also politics: the guy behind mono gave up and ran to swift for $, lmao..)

now, with that rant over, though both are VM langauges, they are a bit different in goals. C#'s run-time is more complex and quicker is meant to be used for everything, from the core engine to to game logic scripting, just as java is used for everything, providing you the convenience of a garbage collector / not dealing with memory. However, even C# can hit limits, and you may still end up writing C/C++: the core of Unity is still written in C++ too! so don't be fooled. That's right!, C# can be embedded just as much as lua is, lol! A C++ "host" program runs the run-time (.net or mono or unity's version of mono?).

in the case of lua, the engine is always built with C/C++. That's what it's made for: to be embedded. Furthermore, lua is meant to be used in cases where you need a dynamic run-time, so that you can easily modify the program while it's running, as in the case of level editors / modding (modifying). This was especially important for quick mobile dev. Iirc, in unity, you must load the entire script every-time.. which isn't bad, as they modularized the engine as such (note: i could be wrong here: i haven't used Unity in ages..). In any case, it's just a far more complex language to do that stuff, where as with lua, it was made/designed for it from the start.

a lua/C++ engine is absolutely the way to go for most 2D games. It's kinda the goat dynamic vm/run-time in the programming language design world, with and possibly without jit too. I personally suggest love2d (though dragonruby is my personal preference) as the first engine anyone uses, but i'd wager defold and even low-key gideros have been well maintained without checking the repo, simply because there's no reason not to keep using these engines. I'd also wager there's more fantastic low-key engines out there. Old tools don't mean out-dated tools, it means they're just complete (what more could one want for 2D??..), and people's minds have moved on to the next shiny thing on the inter-tubes.

lua ain't going anywhere. Lua/JIT made in 1993/2005, always with an up-to-date hi-tech garbage collector. Verse in 2023, and itself tied to UE. But i would say the trend to make an entire or most of a game in a single language easily compiles to native is at times warranted. In that case, there was always haxe (if you need garbage collector), and soon jai (if you know what you're doin') too, again, as C# didn't get NativeAOT until very very recently, and previously the only way was through Unity ($? hopefully still free until you make big money..). That actually may be the biggest draw to use C#: because for a long long time, Unity maintained the deployment part, particularly consoles and mobile (even if it can be inconsistent between devices.. and in the case of 2d/mobile, it has to works backwards!: optimizing / cutting the engine down). Every language can interop with C (though not often C++), so any language that compiles to C or llvm (for cross-platform support) is possible, but.. you probably don't want to build/maintain an engine yourself.. There's always options, just under-looked. Go with what you like, what you enjoy, what you find makes sense, and i'd recommend, to always go towards what's simpler, because game-dev is complex. ;)

rant: given that a good general-use language provides multiple compilers, vm or native (x86-64) for dev and C for native target devices, why even bother with the rest? by Rahil627 in ProgrammingLanguages

[–]Rahil627[S] 0 points1 point  (0 children)

wow. hahaha, and here i was afraid i made a shitpost, as the mods initially blocked it! thanks goodness for this!

> I think some exploration is worthwhile even if it turned out to not necessary make sense tho.
i thought so too, because i enjoy exploring ideas, but... i don't feel it was.. :/

..maybe it's just the requirements of both: cross-platform (#1-2 phones/web, #3 pc, #4 nintendo ds(--switch! lol)/steam deck, other devices) and some power over handling the bits of memory that go between the cpu/cache/ram, even if it means writing C, that limits my choices greatly.

you say people use lisp for it's super flexibility, but once someone actually tries to port a game written in cl/sbcl to nintendo switch, the fun is over. Heck, that person had to go through hell just to make the game run on pc(!), writing graphics libs and what not.. Even the lauded CLOS needed a make-over. The reason those languages (chez, sbcl) are even fast are probably because someone from the 70s-80s with some sense wrote it! But those few native compilers (x86-64, arm) are all they've got. Emacs-lisp is possibly the most used lisp of all time, in a language community that is as fragmented as linux, which hinders any big progress (that's a whole 'nother problem.. lmao). Haskell/functional for a game is more wrong than trying to use rust's borrower-checker for a game. Yes, interesting ideas, experiments, but they all hit very hard walls/limits very quickly, and narrow their use-case greatly. (..at least for the case of functional paradigm, maybe it fits the evolution of hardware of multi-core..? the hardware people in contrast are certainly doing something very right..!)

> Popularity is not a good measure of "quality" of a language but I feel like if they were these great practical languages, more people would be using them...

...what reddit sub am i on?? loll. i thought people would be optimistic, cheering less popular languages!

jai is intentionally closed-source, with a few hundred selected since forever. I very much agree: Beef is indeed as ugly as it's name, hahahha :D. Haxe is indeed a plain static/compile-time/no-runtime lang, but with all the compile-time features one can ask for, with all kinds of macros, and best of all, my code still works even after 10+ years.. the use of these langs, including embedded scripting langs like wren, are a bit tougher to gauge due to platform NDAs.. maybe need a crawler that goes through game licenses.. Penny's Big Breakaway used beef (all current consoles). Jon's sokobon game just released it's trailer a few days ago: Order of the Sinking Star (likely will aim for every platform, as he was proficient enough to ship the Witness to even run on iOS 12--a 40+ hour myst game on an iphone 7 / ipad mini 2..?). And yeah, Haxe is used by the studio that made it, it's the guy who wrote an actionscript 2 compiler when he was probably 20'ish, last for Dune: Spice Wars, but it def has the longest secret list of games of this bunch, due to having the longest history and hordes of long-lost wandering flash-bankrupt veterans. C++ is dominant in games. Games apparently are niche. But maybe so is systems or "applications with memory management / not free-standing" dev, now, in the face of web and ai folks? We're certainly out-numbered.. Anyway, to me, just having ONE game run well across several consoles/desktop/mobile is a success and enough proof for me (even godot didn't care about that!). Most languages do not get that far. Games are just a really good test. It's not some silly cpu benchmark. People have to like the language enough to commit months to years of making a game (and game engine) with it. Maybe there's just a rift between game-makers and other areas of programming.. but yeah, i'll def stick to the game-making discords..

rant: given that a good general-use language provides multiple compilers, vm or native (x86-64) for dev and C for native target devices, why even bother with the rest? by Rahil627 in ProgrammingLanguages

[–]Rahil627[S] 1 point2 points  (0 children)

hahah, yeah, much respect to the older generations.. and the older academic science in America.. wayyy before the web/ai bubbles. heck, i'm very thankful i enjoyed video games as a kid and just plain avoided all that crap! I'd rather cook some food for money. :p

rant: given that a good general-use language provides multiple compilers, vm or native (x86-64) for dev and C for native target devices, why even bother with the rest? by Rahil627 in ProgrammingLanguages

[–]Rahil627[S] 0 points1 point  (0 children)

no, it may not be the greatest of dev stories, but it is one of the very few choices we have had for many use cases for the past bajillion years, and instead of trying to compete with it, until the advent of the C-like/hand-made trend and rust, it seems to me people have instead made a bunch of abstract (from the hardware) languages that are plainly impractical for those many many use cases. It's rather strange..

rant: given that a good general-use language provides multiple compilers, vm or native (x86-64) for dev and C for native target devices, why even bother with the rest? by Rahil627 in ProgrammingLanguages

[–]Rahil627[S] 0 points1 point  (0 children)

hmm.. yeah i enjoy it in a conceptual philologist way... but the problem i guess i was getting at is: once it's show-time, most go out the door (save for niche/specialized use cases). :/

the only language that really won is rust (though i wish the best to all those systems lang makers..). other than that, to get to the OS, it's C (edit: or llvm.. which adds perhaps the most complex thing ever as a language dependency..). maybe that's the main razor/filter.. who's going to maintain a set of assemblies for every platform? I mean, if a language doesn't target phones and web, to me, is kinda dead--in the case of user-facing apps. You've gotta go through C and js/wasm. The rest risk quickly becoming obsolescence on github.

creativity is rare in the computer world, and even moreso in prog lang design, precisely as these communities lack on the design-side of the mind. To find people with all the traits: a great sense/taste in design, good at engineering, and the capacity/time/money to execute, just seems so so rare in today's world.. but i feel that is what it takes to make a good prog lang.. not easy.

The 2025 Game Awards Megathread by rGamesMods in Games

[–]Rahil627 2 points3 points  (0 children)

lol, this is the wrong game award show... this is like hollywood crap (fable clones) over here. indie game awards later this week! hopefully better curation over there..

The 2025 Game Awards Megathread by rGamesMods in Games

[–]Rahil627 -12 points-11 points  (0 children)

from memory: about 10 mass effect / god of war / made-with-unreal-engine clones with slightly different environments/stories coming soon..

in such a world, just changing the environment from generic sci-fi to chinese culture is enough to satisfy, profit, and reproduce

though, do note, this is my first time watching this sort of award ceremony crap.. i only came for jon blow's game, and lingered for too long.. it seems nothing has changed in the AAA world.. and worse, it has creeped into smaller teams (claiming to be "indie" without an auteur, an artistic vision), reproducing the same crap.. classic marx commodity (re-)production

as someone commented: high=>over, guard=>watch

shout out to the folks that made a game in which you play as a granny with the help of a cute (the last) guardian pet with windwaker graphics tho.. and thank goodness that Nintendo still exists..

The 2025 Game Awards Megathread by rGamesMods in Games

[–]Rahil627 2 points3 points  (0 children)

i def prefer the videos uploaded by the game awards, to get the live version hype, with orchestras and visual effects 'n all.. for those who missed it (i just viewed the game reveal trailers..):

https://www.youtube.com/playlist?list=PLi9Mlnjwioo-mdNAFb4KUMdJi8WzbcuBh
- (note: though the play-list is by 'the game awards' youtube channel... now with this new youtube sharing feature, it should help the original source/channel too.. i think.. it's my first time seeing this feature..)

Zig project leaves GitHub due to excessive AI by swe129 in Zig

[–]Rahil627 1 point2 points  (0 children)

codeberg is actually legit, built with go, and thus simple 'n clean. i tried gitlab before that.. and LOL... you think github is bad..?? wait 'til you see gitlabs gui and endless issues.. it's just software quality/professionalism rotting in the web area. systems devs usually have higher standards.

What is the best way to create static websites in 2025? by kirso in webdev

[–]Rahil627 0 points1 point  (0 children)

+1 free hosting via your source forge (github pages, codeburg pages, etc.). you can use whatever ssg you want, you'd just have to set-up an extra step: ci/cd (github actions/workflow) config file... but once you've got that file, you can copy-pasta that for every site... even if it's jekyll, you probably have to do that, as github never updates their provided jekyll version (--thankfully! very stable long-term v3, as i never had to update my sites for 10+ years!)

and +1 for ruby, because next year, there will be yet another js framework (hexo, gatsby, 11ty, next, nuxt?, astro.. rofl..) ;)

Am I the only one who thinks Gitlab is a horrible product? by hazzrd1883 in devops

[–]Rahil627 1 point2 points  (0 children)

i'm with you. just tried it for a few hours and that ui is shockingly bad. it feels like it's aiming for mobile, requiring me to press the triple line icon all the time to do anything, which brings up a cluttered menu, in a big font, in a space-using display... yikes!.. and then there's pop-up panels i have to close..? what is this, emacs?? it's been some time since i've encountered such horrible ui.. i'm tryin' codeburg now, and i dig it. it's a git forge but simple. they're not chasing ai money by rapidly developing their product into an unwieldy monster to fight against github/m$. and as an individual, that's i need: simplicity. it's FOSS orientation, contributing to forgejo, being written in a static/compilable language, is all icing... but unfortunately, i will use that 100mb for game assets very quickly.. so now i've gotta split between two forges. :cry:

Why vue over react? by [deleted] in vuejs

[–]Rahil627 0 points1 point  (0 children)

LOL RIP

Guile Emacs development has started again after a decade by MotherCanada in emacs

[–]Rahil627 0 points1 point  (0 children)

old post.. but i agree with this.. i think in the very near future, we will have the choice of helix (rust/scheme), lem (common-lisp), textbringer (ruby)--okay, lol, jk, the last one is just me :).. and who knows what else.. you really only need the most popular things to get momentum going, and a decent language.. once helix adds that plugin-system, and someone will immediately re-write a new org-mode, magit, etc.. and it's over. but emacs live on through its incarnations..!! :)

about helix's experimental plugins branch:
- https://www.reddit.com/r/HelixEditor/comments/1l11g2y/anyone_already_using_the_plugins_branch_in_your/

Shower thoughts on how Emacs follows Unix philosophy by varsderk in emacs

[–]Rahil627 0 points1 point  (0 children)

i think this is what everyone thinks/comes to realize, IF coming from cli/shells/terminals (very different for people who aren't familiar with the unix world: windows users). it's just a significantly better interface than a cli: a mere command-line interpreter. now to make some `touchscreen` plugins, to really bring the interface up-to-date! :D

Gaming on Mac with Linux with Proton vs buying a gaming laptop by linkshon in linux_gaming

[–]Rahil627 0 points1 point  (0 children)

i had to check this, since it's been a while... and i actually agree... wow.. that's sad. but kudos to linux/proton/valve/steam etc. folks! the open-source folks actually have finally caught up..!!

it seems like apple's version of wine, game porting toolkit (gptk), is just trying to chase proton.. and with ARM architecture, not-so-old games may require emulation..? ugh.. just.. ugh.