Django History¶
Considerations
- Web development needs to be stupidly fast
- automate repetitive tasks
- best practices
- Obsessed with web standards and best practices
- You have to enhance, extend, and maintain
Choices¶
- open source
- BSD license
- python
- pragmatism over methodology
- Didn’t care about GoF, MVC, TDD?
- Why break the standards?
- A lot of it is snake oil
- “There is no silver bullet” - Fred Brooks
- There is the right way and getting things done.
- Ramifications on questioning anything new
- “What’s the need?”
- No architecture astronauts
- You risk reinventing the wheel
- You can take things to far (Ruby for Rails)
- Messy internals
- Web development ought to be fun
- Rails asks why software development can’t be fun
- APIs should match behavior, not show how they work
- Good APIs almost documents itself
- Documentation driven development “DDD”
- Why does Django ship full stack?
- Lack of choices at the time of inception
- Might make separate choices again
- There is a reason why glue code is called glue code
- Full control over code means you get to define the API nicely
- Don’t repeat Zope’s mistake
- Don’t have people learn Django and not Python
- Innovation happens elsewhere
- Always someone smarter outside your own group
- Small pieces advance quicker
- Don’t make opinionated software
- Ego is dangerous
- It is not about you
- You can’t possibly predict what everyone wants
- There is no “one obvious way”
- Lots of choices is bad for new users
- There are always more beginners than experts for your projects
- Make complicated things easy
- Choices in the future
- Long tail or huge scale
- Learning curves
- Django in the Enterprise
- Does Django want to fight STRUTS
- Avoiding inevitable backlash
- Inviting criticism and take it well
- Make conscious decisions