logoalt Hacker News

solaticlast Tuesday at 6:07 PM2 repliesview on HN

Bookmarked, I think this is a really good idea and could lead to some really small, elegant TUI code.

But as a first release, I'm wondering if it maybe misses what Ruby really enables. The Hello World example has both init and initialize methods? message.to_s == "q"? @style.render?

I remember reading Eloquent Ruby and having my mind completely blown with the clarity and expressiveness that Ruby's metaprogramming enabled. It remains, in my opinion, one of the best programming books of all time for just how mind expanding it was and how it really made the case for Ruby and why there is no other language like Ruby.

I highly recommend that the authors go pick up a copy and then think about how it would influence their API design, I think there's a much more... eloquent approach feasible here, and it would be a pretty incredible way to build small/simple TUI apps.


Replies

marcorothlast Tuesday at 6:34 PM

Thanks for the feedback!

And yeah, I agree. I'm not super happy with some of the APIs as they aren't really idiomatic Ruby. It's also something I mentioned in the blog post that I want to improve: https://marcoroth.dev/posts/glamorous-christmas

For now, I just wanted to get them out so we as a community can build them out together. Most of the APIs are just 1:1 "ports" of their Go counterparts and might feel off or a bit too low level because of that.

weaksaucelast Tuesday at 6:29 PM

the author of these libraries is a very experienced ruby coder... I'm sure there's a reason for that code:

to_s normalizes code down to a string that can be compared when the object could be arbitrary and might not implement ==

init is one of the three core framework methods for the elm pattern.