When programming, you usually have three options:
- Use a framework that someone else did. You will have to spend time learning the abstractions of the framework.
- Spend time building your own framework, creating your own abstractions.
- Create a massive amount of spaghetti that, at some point, no one -including you- will want to maintain.