A billion requests per month is 400 requests per second. My toaster can do better than that :)
Not to say that your product isn’t capable for many use cases, but the fact that the 1krps range is something impressive in Python world is indicative of the issue: Python is not built for speed, it’s built for convenience, and increasingly it’s competing against more modern languages that offer both.
[0] https://star-history.com/#tiangolo/fastapi&django/django&pal...
I don't see it that way. I see a rapidly growing library still in pre-1.0 and a BDFL trying to wade through a mountain of "contributions", a lot of them garbage, trying to keep code quality high in one of the most pristine and readable source code repos I've ever seen.
Also they have crowdsourced 17 languages for documentation translation. And it's up to date. That's bonkers. You're lucky if english documentation is accurate and up to date in many open source codebases.
Give me a fucking break. Let’s not even talk about the fact that it has well over a thousand open “questions”.
class Dependant:
def __init__(
self,
*,
path_params: Optional[List[ModelField]] = None,
query_params: Optional[List[ModelField]] = None,
header_params: Optional[List[ModelField]] = None,
What are path_params? They're params parsed from the URL path. What are query params? The same, from URL query component. Header params? Params pulled from the request headers. Shocking. If you actually sit down and read through FastAPI it's remarkably easy to get your bearings and start hacking around, despite the "no actual documentation" (I think type annotations count as documentation).Compare that to code bases like Django, Celery, Matplotlib, where it's kwargs, kwargs, everywhere and nary a type hint to speak of.
The number of open issues is due to the massive popularity of the library (46K stars) compared to the number of actual maintainers. Some actual questions on the Issues tab right now:
- How to add admin page? - Is safe to remove value from list in asyncio - Best practice to run FastAPI on Cloud Run with server port as $PORT
These are all n00b questions that could readily be answered with general-purpose resources, but this is the blight that super popular FOSS libs and their maintainers have to deal with.
https://github.com/tiangolo/fastapi/blob/master/fastapi/rout...
But yeah, code is documentation!!! We don’t need any actual API docs!!! All hail tiangolo!
Honestly I prefer it over reading documentation and then having to mentally map to the codebase. I wish I could write this code well.
You sure you've actually read any of it, or did you just skim, see no docstrings, and decide it's crap?
Could you please elaborate?
It’s really only good for apps or things I (or other Python people) are going to run.
Part of it is that I don’t do analytics work. Now that PERL is niche, my use cases are no longer the target.
These days Python is targeted towards general scripting, data processing, scientific computation, etc. It’s really good as a glue language or for anything involving numpy. I use Python every day but I would not use it to build applications.