20
votes
Why Pyramid?
This is mostly a question for @Deimos, just out of curiosity: is there are particular reason for the choice of Pyramid as the framework for TIldes? Is it familiarity, or clear advantages over sth. like Django or Flask?
(Edit: actually I'd welcome comparisons favouring one or another from anyone too, related or not to Tildes itself.)
Other people have mostly covered it, but overall I chose Pyramid because it has a lot of useful aspects for a larger/more-complex site, but is also very flexible and allows me to choose my own libraries and easily modify how it behaves if I need to.
Django is great, as long as you're doing something that fits into "the Django model", where all the pieces it includes work well. If you need to get outside of that, it can start getting ugly really fast, and you might have to start wrestling with the framework to try to convince it to let you do things that you need.
Flask is almost the opposite—it includes almost nothing. This is part of what's great about it, and it's always what I use when I'm building a small, straightforward site where I don't need much in terms of complicated functionality. I'd never use it for a larger site though, it's just not very easy to organize larger projects with it, and you can end up having to manage (or write) a lot of dependencies for even pretty basic functions.
Pyramid is more complex to get set up, but it's really well-designed overall and has a lot of great features when you need the flexibility. I've run into quite a few cases with it where I was expecting something to be difficult, and then it turned out that Pyramid already had a way to easily hook into it or override to get the behavior far more easily than I was expecting.
I remember asking Deimos about this ages and ages ago but can't specifically remember his response. However I do remember an article I found around that time comparing the frameworks (since I bookmarked it for myself) written a few years ago by Ryan Brown, a Senior Software Engineer at Red Hat:
https://www.airpair.com/python/posts/django-flask-pyramid
p.s. And even though it doesn't specifically address your question, the technical goals section of the Tildes docs is probably worth reading if you haven't already since it delves in to Deimos' overall philosophy regarding the technical side of the site.
Thanks a lot, that was very informative!