Some notes on starting to use Django
Summary
Julia Evans shares her experience starting to learn Django after years of building websites with Go binaries and static sites. She compares it favorably to Rails, appreciating Django's explicitness which makes it easier to return to projects after months away. She highlights several features she's enjoying: the built-in admin interface, the ORM's elegant JOIN syntax using double underscores, automatic migrations, and the batteries-included approach to email, CSRF, and other web features. She's running Django with SQLite in production and finding the documentation excellent, though she remains slightly uneasy about the settings file's lack of typo protection.
Key Insight
Mature, 'boring' frameworks like Django reward beginners with explicitness and batteries-included features that let you get things done without fighting the tooling.
Spicy Quotes (click to share)
- 5
One of my favourite things is starting to learn an Old Boring Technology that I've never tried before but that has been around for 20+ years.
- 5
It feels really good when every problem I'm ever going to have has been solved already 1000 times and I can just get stuff done easily.
- 4
Being able to abandon a project for months or years and then come back to it is really important to me (that's how all my projects work!), and Django feels easier to me because things are more explicit.
- 5
In the past my attitude has been "ORMs? Who needs them? I can just write my own SQL queries!". I've been enjoying Django's ORM so far though.
- 5
I have zero concern about the performance of my ORM-generated queries so I'm pretty excited about ORMs for now, though I'm sure I'll find things to be frustrated with eventually.
- 2
I'm realizing that being able to do migrations easily is important for me right now because I'm changing my data model fairly often as I figure out how I want it to work.
- 4
I'm still a bit intimidated by the settings.py file... what if I make a typo in the name of one of those variables? How will I know?
Tone
enthusiastic, exploratory, candid
