Really looking forward to this, writing my own personal editor in Ruby and not having a library for parsing terminal input is leading me to write my own kitty keyboard protocol parser (which ghostty implements) and having to hand-code lookup tables is driving me batty. I really don't like the idea of using an existing TUI framework as none of them actually implement the kitty protocol.
Have you released the project? I am somewhat curious!
Also I just went from a somewhat (niche?) languages rabbit hole and I refound crystal / crystal is in my mind currently..
So what are your thoughts on using something like crystal instead of ruby because they are similar in what I know and crystal can create a static binary while being (faster?) than ruby
I like crystal but without pure OO and the fact that the community is so far behind Go or even Scala it's hard for me to see a good use for it.
You can create static binaries with ruby, just use mruby. I had a bunch of small scripts in crystal that I replaced with mruby and never noticed the difference. You don't get runtime reflection or ruby's enormous library base, but it could fill the need. I may end up transcribing my editor, or perhaps just the parser, to mruby once it's ready.
If mruby can make static ruby then that is actually kinda great, I didn't knew that.
I was thinking more of in terms of performance for some similar developer experience
Pardon me but isn't crystal OOP? i feel like it was because I was introduced to crystal lang via some youtuber some long time ago and the comments said that they didn't use because it was OOP
Also if mruby is so great (which it sounds here), then surely most ruby contributers can migrate over to mruby if that has these gains. I think mruby compiles to C as the intermediate right? So there are definitely some limitations as compared to being a interpreted langauge but that can be somewhat mitigated, no?
I am not a ruby expert or a crystal expert. Because If I was, I would be telling you your future (a slight pun ofc of being a future teller but yes I don't know much about it except the puts syntax or that 100 seconds video from fireship which gives me 10 year experience in ruby :p )
Crystal is object-oriented, but isn't a pure object system. In a pure object system, literally everything is, or can be turned into an object. Smalltalk is the only other example of a language family that offers a pure object system.
With a pure object system everything is accessible by the system at runtime. It's ruby's biggest strength, but also the superpowers it grants aren't always used for good, which is why a lot of coders hate working in it. I only code for myself, my coding career is behind me, so I don't have to worry about other people's code.
Mruby's big downside is precisely that it's compiled, so the library base available is very small, and there's not much point in building on it, though a few projects have, such as DragonRuby. It also doesn't have a pure object system. Ruby has thousands of gems, mruby dozens, and you can see them all on this page: https://mruby.org/libraries/
* https://sw.kovidgoyal.net/kitty/keyboard-protocol/#