3 ms·
I think people should be cautious in taking this advice for anything but toy projects, on a few counts. I spent two years developing on a framework I built myse
by wyattpeak 6y ago
I think people should be cautious in taking this advice for anything but toy projects, on a few counts. I spent two years developing on a framework I built myself, until I finally gave in and spent an inconvenient amount of time porting to Django.
1) Unless you have a lot of experience, you don't know why various patterns have been implemented, or various compromises have been made, in existing frameworks. Frameworks aren't on the whole built by idiots, and if you think a framework has made an obviously poor choice, count the days until you realise why they did it. If you're lucky your choice will still make sense for your application. If you're not, I hope it doesn't take you too long to redo it all.
2) As the author says, frameworks are by nature declarative. This is great if you have really good documentation, but if not you're going to scream trying to work out the control flow of your application. "Why does changing variable X result in behaviour Y? What is even checking variable X? grep's returning nothing, the stacktrace is twenty levels deep and I don't recognise any of these functions. FUCCCCCCKK!"
You're going to forget how your framework works. If you don't forget there was no point building it at all, because the point of a framework is to abstract you from having to think about things.
3) Your project's not that special. The framework your considering will probably work just fine. It's worked for several million other projects, it'll work for yours. Yes, you might spend a bit of time trying to shoehorn something in. It'll be an order of magnitude less time than building an entirely new system.
4) It's much less useful for future work. A high-level understanding of building frameworks will get you a job at the Django Foundation. An high-level understanding of Django will get you a job everywhere else. And also at the foundation, come to that.
It was a fairly informative process. It taught me things I didn't know I didn't know. I value it in much the same way I value building interpreters. But much like building interpreters, except in a few niche areas it's probably not a good use of your time.