Frankly, noob questions are useful. It helps the devs step back to answer them. I am sure unity devs are discussing this very topic as they’re simplifying DOTS API so that, in 10 years, the noob question will be “can you old geezers tell me another funny story about OOP?”.
That’s my own bias, I think the choice is personal so I’ll tell you what I’ve tried and maybe something will resonate with you.
When I started programming it was in Pascal, there was no objects back then and it was so easy. I paired up with a buddy to make an iterated fractal systems explorer for uni. The task division was simple: he does the math, I do the UI. Two big code files and that’s it. We share data via two global static arrays, my buttons call his functions, as calculation progresses he increments a global iteration counter and I display a progress bar. Dead simple. Total 2000 lines. Not a bug. Not a crash. Fast as hell and the gui was instant.
A decade later I went back to programming. Everybody said Java and OOP is the way so, like a dullard, I followed the herd, hired a tutor to learn Java. I couldn’t do shit in it because brain wasn’t able to twist simple things into inheritance and the odd idea that objects contain data and also do things, plus java needs 20 different libraries so you turn into a librarian, really. I got nothing done.
Game making itch got too strong, bought a Unity license and just did things. Bugs everywhere (mine, not the engine) spaghetti code galore, aweful but it runs.
After a few protos and one shipped game where I learned saner programming from someone, keeping OOP at bay with max one level inheritance, very flat, easy.
But as things got complicated between agents, the mess of unreadable code was replaced by the question of actor, verb and object where the verb sometimes is active “player orders agent to move” and other times passive “inventory received a death event so drop everything”. Doesn’t flow. Headaches.
So I started decomposing things and turned everything into agents adding requests into a queue and systems processing the queue and doing things to agents. One direction. All active verbs. It slowly blurred into what’s called ECS. Brain at peace.
If you like that way of thinking, it can be done without DOTS.
I say that because DOTS changes a lot, also the API is very complicated and verbose, for example DefaultGameObjectInjectionWorld
mean active.
Plus there is near zero debugger, you don’t really know what transforms your data and that leads to bugs.
All that compounded makes prototyping very very hard.