Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.python > #5089

Re: [Python-de] select.epoll() vs async framework (PostgreSQL)

Path csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail
From "Sven R. Kunze" <srkunze@mail.de>
Newsgroups de.comp.lang.python
Subject Re: [Python-de] select.epoll() vs async framework (PostgreSQL)
Date Thu, 18 Jan 2018 20:02:06 +0100
Lines 54
Message-ID <mailman.122.1516302136.2620.python-de@python.org> (permalink)
References <29ce1adc-0fea-e23c-e321-858e0d52dc1c@thomas-guettler.de> <a1669a00-b66c-6cce-8546-570a857e77aa@behnel.de> <71ab86cc-0e21-da2f-9577-8b6ccbe707ba@thomas-guettler.de> <2915505E-9237-40C4-A2BF-A4A22D00A216@web.de> <04ab7b73-e182-081c-74c7-976e3eac9b84@mail.de> <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>
Mime-Version 1.0
Content-Type text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding 8bit
X-Trace news.uni-berlin.de mfG0R3+ygjjWyfCeBXp/lgBgkdfByPFM9N6h2tzzmW6Q==
Return-Path <srkunze@mail.de>
X-Original-To python-de@python.org
Delivered-To python-de@mail.python.org
DKIM-Signature v=1; a=rsa-sha256; c=relaxed/simple; d=mail.de; s=mailde201610; t=1516302127; bh=V3lwSblTTXmBPO6bWgQYHPsDHqVflDfWTibpShxg+58=; h=Subject:To:References:From:Date:In-Reply-To:From; b=RJUqHNQc6ujd8MosxhmL0zWdaCVALBL/39D1URuXDc+FsikNM9qq9hI94TwyVa5/X LYLjT3IsDO/7z0vp6lMDxwvVVOdfKgUZfQMJ1pTEbTijWtmRUHvEL1DkQFQdU0hkH9 aGWd4xYk2ny2a5Ga6hFbPZhkeWCVEZHdKfc5mn+Y=
In-Reply-To <bc8618a5-2ffc-46eb-72a4-afa12ddc030d@behnel.de>
Content-Language de-DE
X-purgate clean
X-purgate This mail is considered clean (visit http://www.eleven.de for further information)
X-purgate-type clean
X-purgate-Ad Categorized by eleven eXpurgate (R) http://www.eleven.de
X-purgate This mail is considered clean (visit http://www.eleven.de for further information)
X-purgate clean
X-purgate-size 2706
X-purgate-ID 154282::1516302127-0000088C-CE88C575/0/0
X-BeenThere python-de@python.org
X-Mailman-Version 2.1.25
Precedence list
List-Id Die Deutsche Python Mailingliste <python-de.python.org>
List-Unsubscribe <https://mail.python.org/mailman/options/python-de>, <mailto:python-de-request@python.org?subject=unsubscribe>
List-Archive <http://mail.python.org/pipermail/python-de/>
List-Post <mailto:python-de@python.org>
List-Help <mailto:python-de-request@python.org?subject=help>
List-Subscribe <https://mail.python.org/mailman/listinfo/python-de>, <mailto:python-de-request@python.org?subject=subscribe>
X-Mailman-Original-Message-ID <374d8f30-d5ec-a097-6bd0-ce15fc0d824e@mail.de>
X-Mailman-Original-References <29ce1adc-0fea-e23c-e321-858e0d52dc1c@thomas-guettler.de> <a1669a00-b66c-6cce-8546-570a857e77aa@behnel.de> <71ab86cc-0e21-da2f-9577-8b6ccbe707ba@thomas-guettler.de> <2915505E-9237-40C4-A2BF-A4A22D00A216@web.de> <04ab7b73-e182-081c-74c7-976e3eac9b84@mail.de> <d1a40b67-1a37-7164-f980-85d473a0838e@behnel.de> <9ce770aa-b6dd-f709-1a95-f1e02f82f7f6@mail.de> <bc8618a5-2ffc-46eb-72a4-afa12ddc030d@behnel.de>
Xref csiph.com de.comp.lang.python:5089

Show key headers only | View raw


On 17.01.2018 22:49, Stefan Behnel wrote:
> Und anstatt meinen Code speziell für asyncio zu schreiben, ist es dann
> besser, ihn speziell für select() zu schreiben? Der "Vorteil" erschließt
> sich mir absolut nicht. Bei asyncio brauche ich den meisten Code *gar
> nicht* zu schreiben, weil es für fast alles schon fertige Tools und
> Bibliotheken gibt, die ich dank der allgemeinen Schnittstelle einfach
> ineinander stöpseln kann.

Sprichst du aus eigener Erfahrung? Jemand anderes im Thread hatte nach 
genau solcher Erfahrung gefragt. Für mich liest sich das, was du da 
schreibst, leider immer noch nach einer Wiederholung des Marketings. 
Quellcode wäre gut.

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. Für mich war es eher nur Show-Case 
anstelle einer Implementierung mit Mehrwert. Da wäre ich jetzt wirklich 
interessiert an realem Beispielen.

> Bei einem blanken select() (oder epoll() usw.) fange ich dagegen komplett
> bei Null an, weil ich damit faktisch auf der Socket-Ebene festhänge, also
> ganz, ganz unten. Dann brauche ich erst einmal Tools, die inkrementell auf
> Sockets lesen und schreiben können, und die muss ich dann auch noch mühsam
> orchestrieren. Also muss ich genau die (fehleranfällige) Arbeit selbst
> machen, die mir ein I/O-Loop fertig (und fertig debuggt) abnimmt. Für
> nichts anderes ist doch ein I/O-Loop da.

Ich bin durchaus in den allgemeinen Prinzipien der Software-Entwicklung 
bewandert.

Dennoch, die Problempunkte, die ich und viele andere immer wieder 
anbringen, werden auch hier nicht wirklich entkräftet und du gehst nicht 
ansatzweise darauf.

Natürlich ist es schön, Code wiederzuverwenden, das gilt aber sowohl für 
den tollen neuen asyncio-Code als auch für den bereits geschriebenen 
alten langweiligen sync-Code.
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.

Solange wir nur auf dem Niveau "meins ist besser" argumentieren, können 
wir hier auch aufhören.
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.


Sven

Back to de.comp.lang.python | Previous | Next | Find similar


Thread

Re: [Python-de] select.epoll() vs async framework (PostgreSQL) "Sven R. Kunze" <srkunze@mail.de> - 2018-01-18 20:02 +0100

csiph-web