big OOP

Sure ^^ and god, yeah, me too…at least if you have that you know you can break away from the engine.

Yeah, sometimes I question a little the whole wisdom of frameworks-as-such on that basis…not that I think they’re fundamentally bad or anything, just in a kind of psychological sense, like the mindset they tend to put people in like you’re saying…like, how the whole idea of “framework” can easily come across as like “a series of containers to put all your code in” instead of “another layer.” When the framework is a set of classes you inherit from, and the language has single inheritance, I think it tends to exaggerate this psychological effect, which is maybe kinda sad since that’s how most frameworks I’ve used work (in both web and game development). I remember years ago watching a video of Sandi Metz doing a kind of Q&A at Hashrocket where she said offhand like, “Try to avoid frameworks that obligate you to inherit from their classes,” and someone was like, “What about Rails?” and she just kind of smiled mischeviously :rofl: I think of that as a “big issue” in the Rails world—people talking about POROs and “going beyond Skinny Controller, Fat Model” etc. I haven’t done Rails full-time for years now but glancing around online some it seems like people still talk about that, which makes sense to me—it’s like somthing people would have to continuously pass down to newcomers. It’s nice to think that a framework which provided a set of mixins instead would lead to something better, but I’m not sure if it would in practice—it might just lead to chaos in a lot of codebases :sweat_smile: I kind of feel like this might be a sociocultural issue, ultimately, that can’t really be solved through API design alone…maybe it’s because people aren’t really taught to code at first in a way that encourages independent critical thinking a lot of the time, so they have to kind of learn that as they go.

It’s too bad you don’t have tooling to help more with that, it sounds really frustrating! That is one thing I think of as an advantage that statically-typed, compiled languages have (especially popular ones :stuck_out_tongue:)—like how it’s easier for people to develop tooling to like, jump from the occurrence of a symbol to its definition in your editor, move your cursor over a symbol in the editor and have the documentation for it appear in another pane, generate documentation that includes interactive UML diagrams showing the class relationships, etc. etc. When I started working with C++, I was really amazed by how strong the tooling can be in those kinds of regards compared to a language like Ruby; with Ruby it feels so much more like it’s just “you, your editor, and the shell” (well, except for its awesome REPLs—the interactive debugging experience in Ruby is pretty luxurious I feel like :stuck_out_tongue:).

That does sound extremely annoying…sounds like the kind of situation where you would really want to keep the framework at arm’s length, yeah. Can I ask which it is? :sweat_smile: Now I’m curious. :stuck_out_tongue: