Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.python > #5091
| From | Achim Domma <domma@procoders.net> |
|---|---|
| Newsgroups | de.comp.lang.python |
| Subject | Re: [Python-de] select.epoll() vs async framework (PostgreSQL) |
| Date | 2018-01-18 21:31 +0100 |
| Message-ID | <mailman.124.1516307497.2620.python-de@python.org> (permalink) |
| References | (5 earlier) <d1a40b67-1a37-7164-f980-85d473a0838e@behnel.de> <9ce770aa-b6dd-f709-1a95-f1e02f82f7f6@mail.de> <bc8618a5-2ffc-46eb-72a4-afa12ddc030d@behnel.de> <374d8f30-d5ec-a097-6bd0-ce15fc0d824e@mail.de> <e908fbb0-e390-5726-1714-f620f0aaac20@procoders.net> |
On Thursday, 18 January, 2018 08:02 PM, Sven R. Kunze wrote: > Den asyncio-Quellcode, den ich bisher immer zu Gesicht bekommen habe, > involvierte ab einer bestimmten Komplexitätsgrenze stets Threads. > Wo ich mich dann naturgemäßg wieder frage, ob ich da im falschen Film > bin, wo doch gerne so über Threads geschimpft wird. > > Das Ineinander-Stöpseln, was ich da erlebt habe, war dann mit so einer > riesigen Menge Boilerplate verbunden, dass ich diese Implementierung > nicht wirklich ernstnehmen konnte. Würde ich nur solchen Code zu sehen bekommen, ginge es mir wohl wie dir. Von daher kann ich jetzt zumindest deine "Begeisterung" für asyncio verstehen. ;-) > Natürlich ist es schön, nicht an unterster Ebenen festzuhängen, aber > async und await sind jetzt nicht wirklich high-level und select nimmt > einem mega viel Arbeit, die ich nicht programmieren möchte, ab. Nein, async und await sind nicht unbedingt high-level, aber eine höhere Abstraktion als select(). Ich für meinen Teil bin kein Experte in Sockets, select, poll, ... Aus meiner Sicht sind async und await exakt die richtige Abstraktion. Daß das Problem nicht vollständig versteckt wird, liegt - zumindest meinem Verständnis nach - daran, daß es ganz einfach nicht geht. Ich hab' Ansätze in Ruby (On Rails) gesehen, da würdest du mit Freuden asnyc/await nehmen. ;-) > Anderenfalls würde ich gerne hören, wie sich die asyncio-Gemeinde die > Lösung des Zwei-Welten-Problems vorstellt. Zum Beispiel anhand von WSGI. Meinst du mit Zwei-Welten-Problem das Problem, den Übergang von asnyc Code zu sync bzw. umgekehrt? Exakt das löst async/await in meinen Augen exakt so gut, wie es in Python auf Grund der Natur der Sprache eben geht. Die zwei Welten sind nunmal unterschiedlich. Klar kannst du eine Sprache wie Go (bezogen auf deine andere Nachricht) explizit für das Szenario designen. Haskellcompiler können auch sehr coole Sachen machen. Die Sprachen funktionieren aber auch anders. Der Hauptkritikpunkt, den ich gelten lassen würde, ist, daß in den meisten Beispielen eben exakt der Übergang ausgespart wird. Ich hab' mir beim ersten mal auch den Wolf gesucht, bis ich die richtigen Funktionen zur Hand hatte. Und um sie zu benutzen, muß man schon ein solides Bild davon haben, was da passiert. Nochmal mein Fazit: Ich halte async/await für die beste Abstraktion, die in Python geht. Was dich nicht davon abhalten soll, irgendwas eigenes zu bauen. In den meisten Fällen unterstelle ich aber, daß die Leute, die sich damit auf die Nase legen, ihre Hausaufgaben nicht gemacht haben. Grüße, Achim
Back to de.comp.lang.python | Previous | Next | Find similar
Re: [Python-de] select.epoll() vs async framework (PostgreSQL) Achim Domma <domma@procoders.net> - 2018-01-18 21:31 +0100
csiph-web