Can someone compare this to Django/ Flask? Would building a project with Falcon be similar to building a project with Flask?
This looks interesting, but I'm not well versed at evaluating a new web framework. I've built a few projects in Django, and I have a basic understanding of how I'd go about building a project in Flask. I've never worked on a high-traffic project.
Django is much larger with its ORM, template system, admin site, and so on.
Feature-wise it seems close to Flask. I suspect that Flask is more opinionated than Falcon: it requires the Jinja2 template library and your project may end up with a tight coupling with Flask if you use its blueprint system or don't think through how you use Flask's context variables flask.request and flask.g (Flask tries to be too clever here IMO).
Falcon looks more like a library than a framework to me and its design seems less likely to affect how you structure projects compared to Django in particular but also Flask.
Their GitHub README includes some examples [0]. It is sort of a hybrid between Django+TastyPie (Object-Oriented API wiring) combined with Flask or Bottle.
It's not like Django + TastyPie just because it uses OO. If you are building a service with two or three endpoints, that combo is overkill. “You wanted a banana but what you got was a gorilla holding the banana and the entire jungle.” comes to mind. It's closer to Flask feature-wise.
As others has already pointed out, the goal of Falcon is to ease the creation of REST APIs and run with the best possible performance.
Usually, when you are coding a full API in Django or Flask you find yourself putting additional dependencies in, and this will impact performance and maintainability. Those dependencies won't help you get rid of the "opinion" or "initial purpose" of the frameworks: to build websites, and this will also impact maintainability and performance.
Django is a "web framework", for creating web sites. Falcon is a "REST API" framework, for creating APIs following the REST pattern. Flask is less clear (or "opinionated") as to what it should be used for, and would probably fall somewhere in between the other two.
If you are at any point returning HTML from your Falcon project or thinking of serving static content, you should probably not be using Falcon at all. :)
iirc, the goal was to minimize memory compaction within the framework in order to boost the number of concurrent requests and speed at which one can address them. This might have reflected in some slightly un-pythonic design choices in order to avoid string literals in the framework code, etc.
Django/Flask are written for the programmer. I think Falcon is, to a degree, written for the machine (although if you're a systems programmer you may snark at this).
This looks interesting, but I'm not well versed at evaluating a new web framework. I've built a few projects in Django, and I have a basic understanding of how I'd go about building a project in Flask. I've never worked on a high-traffic project.