We use it to play music in the car on Spotify sometimes. While it is really bad ad this we found out it mishears quite reliably so there are now some crazy things that I would have never played myself that my family has heard in the car. This has brought a lot of joy to some mundane drives.
But when I am alone on a run I really wished it would just work because without someone else to laugh about it, it really sucks
That's funny you mention that—very similar experience here. My partner and I often get a laugh out of the strange occasional errors. Things like responding with "…huh?", and then completing the task.
I'd rather see a robot fail rather than eat the world and fill it with trash. But the running use case does sound very annoying!
Although I prefer Elixir currently I agree that ruby at least goes all the way in on OO and not having to remember which feature is implemented as a language syntax and what is just a method invocation is a strength not a weakness. It is different in other languages for historical performance reasons really.
There are legitimate uses of method_missing (though often you'd want to call define_method dynamically instead for performance), but they tend to be when you use an object as a proxy for something (say a remote API) where you genuinely can't know the set of messages the object might need to be able to receive.
I am not even sure that is true. Only if your main criteria is available resumes where the programming language is listed at all.
JS has probably upper 90% there
Having built a mediumish soft realtime queue processing solution on rails I gotta say it was not great. If we didn’t kinda grow into it I would not have chosen ruby
Thanks for sharing. Yeah, I think that's a problem with bolted on functionality. Did you end up building a new version with a different language? What kind of problems did you encounter that made the solution "not great"?
We eventually managed to build something in sidekiq that did the job but if your jobs are not unrelated and you want to make sure not to starve any specific resource the options in ruby are just way worse than eg Elixir
Are you able to provide more context and details? It’s always interesting to learn about system design and architecture decisions from real world examples.
The issue was processing messages for live pro esports tournaments. Each game had to be processed and the biggest issue was that messages from the queue were not guaranteed to ordered and because of processing issues upstream you could get a large amount of messages for a specific match in sequence. Thus we decided to run just a light weight worker on the original external queue copying to our datastore which is very fast and can be run massively parallel.
Then run a unique job per running match that does the ordering and processing. This worked well enough but you need to now make sure that each worker gets called again after it finished and originally we had a recursion going on but the best place to do it was eventually deprecated in a new sidekick or unique jobs version update.
We eventually settled on a supervisor that would monitor and restart workers. Which is just a bad version of elixir in the end
OTOH JS is too big for my taste. Everything has 10 implementations with no consensus about doing things. So everyone chooses their own horrible menu. Like an American super market. Or you go full chain restaurant with whatever Vercel pushes currently
I think LLM have really closed that gap. Quick throwaway stuff can be generated in a couple of minutes. But phoenix gives me back all the control in cases I care.
Yep I'm a moderate-to-strong LLM hater and this is one of like two things I use them for. Definitely a ground-leveler re: rails too it really had by far the best generators I had come across.
But when I am alone on a run I really wished it would just work because without someone else to laugh about it, it really sucks
reply