Parts like `No boilerplate, no imports, no build system. Just Ruby being Ruby.` and `The insight behind Shoes wasn't technical—it was emotional` seem to fit a pattern I frequently see in AI Generated output.
Even the structure of the blog post follows a pattern I see in AI generated text with the section of `Why This Matters`.
The more I use AI, the more I think about the book Fooled By Randomness.
AI can take you down a rabbit hole that makes you feel like you are being productive but the generated code can be a dead end because of how you framed the problem to the AI.
Engineers need enough discipline to understand the problems they are trying to solve before delegating a solution to a stochastic text generator.
I don’t always like using AI but have found it helpful in specific use cases such as speeding up CI test pipelines and writing spec; however, someone smarter than me/more familiar with the problem space may have better strategies that I cannot of think of, and I have been fooled by randomness.
AI can also make you invest useful time in things that are not useful or not needed. It also deincentivizes collaboration. If everyone builds thier own version of say Beebook with 5 features, thats worthless compared to BeeBook opensource or even corporate Beebook with thousands of features and complex workflows. And everyone who worked on thier own version of BeeBook wasted thier time.
With AI you have to be careful to know what is important, you dont want to waste your time doing random stuff that may not even get a single user. If its for fun, thats fine but if you want to build a business or improve your output, I would advise people to choose well.
I have been programming with Ruby for 11 years with most of the time in a professional context. It's my favorite language :).
I don't care much for types, but it can be useful with denser libraries where IDE's can assist with writing code. It has been helpful in my professional life with regards to typed Python and Typescript.
One potential example that would be interesting is utilizing types for reflection for AI tool calling, the python library for Ollama already supports this[0].
It would make it easier to use such tools in a Ruby context and potentially enhance libraries like ruby-llm [1] and ollama-ruby [2].
If it is at all possible, it would be nice to have a little bit better support for metaprogramming namely around `define_method` and supplying a typed lambda or block for the dynamic method. I can see why this would be a pain to implement, so I don't expect it :).
Otherwise, I think in terms of typed Ruby, this is an incredible undertaking with very well written documentation. Thank you for making this library, I think there's a lot that the Ruby community can benefit from with it. Cheers!
A lot of these things are covered in computer science lectures if you pick the right ones. But you can also pick them up yourself by being curious how things work and reading papers or looking at existing game/engine source code. There are also many online resources as the sibling posters point out. Having at least some basic linear algebra or programming education makes things easier to understand.
School, then work, is the most traditional route. If you’re past that point and want to learn, the best use of that list is to use it as a self-learning syllabus and set of search terms, so you can start to practice.
Parts like `No boilerplate, no imports, no build system. Just Ruby being Ruby.` and `The insight behind Shoes wasn't technical—it was emotional` seem to fit a pattern I frequently see in AI Generated output.
Even the structure of the blog post follows a pattern I see in AI generated text with the section of `Why This Matters`.