Hey Andrew, thank you for the very exciting proposal and the ongoing work on Django channels! There is a lot to consider here and some very interesting problems to work through - I’d love to help out wherever I can.
Do we think async is worth going after? I think this is very much worth doing. Async interfaces to the ORM and templates would be a huge, huge improvement if we can get it right. I think Tom Christie summed it up really well however I would add that I think teams excluding Django as a contender may happen sooner rather than later if it’s not happening already. Are the proposed modifications to how Django runs sensible? I had a few random thoughts while reading your proposal: I think getting rid of the related field references could be a big issue here and cause a lot of headaches for existing applications. Could we do this in a backwards compatible way at all? I wonder if PEP 567 <https://www.python.org/dev/peps/pep-0567/> could help here, could we define some kind of ‘Django async context’ and do different things depending on if this is true or false? Regarding exposing an async interface alongside a synchronous one: are you envisaging something like appending _async to methods or having some kind of wrapper class that could be optionally included to go from async->sync? I guess it would have to be appending _async, as a wrapper class could be used in different contexts. Async templates seem particularly powerful if we work out the details. We could eventually render different parts of the template concurrently, i.e example each iteration of a for loop could be it’s own future resolved independently, but this is likely a pipe dream. On 4 June 2018 at 14:18:19, Andrew Godwin (and...@aeracode.org) wrote: Hello everyone, For a while now I have been working on potential plans for making Django async-capable, and I finally have a plan I am reasonably happy with and which I think we can actually do. This proposed roadmap, in its great length, is here: https://www.aeracode.org/2018/06/04/django-async-roadmap/ I'd like to invite discussion on this potential plan - including: - Do we think async is worth going after? Note that this is just async HTTP capability, not WebSockets (that would remain in Channels) - Can we do this in a reasonable timeframe? If not, is there a way around that? - Are the proposed modifications to how Django runs sensible? - How should we fund this? There's many more potential questions, and I really would love feedback on this. I'm personally pretty convinced that we can and should do this, but this is a decision we cannot take lightly, and I would love to hear what you have to say. Andrew -- You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-developers+unsubscr...@googlegroups.com. To post to this group, send email to django-developers@googlegroups.com. Visit this group at https://groups.google.com/group/django-developers. To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/CAFwN1up4%2BP%2B4bCSSiG6t845idoM8dvktnuTs4dH2R5aAuCz3iA%40mail.gmail.com <https://groups.google.com/d/msgid/django-developers/CAFwN1up4%2BP%2B4bCSSiG6t845idoM8dvktnuTs4dH2R5aAuCz3iA%40mail.gmail.com?utm_medium=email&utm_source=footer> . For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-developers+unsubscr...@googlegroups.com. To post to this group, send email to django-developers@googlegroups.com. Visit this group at https://groups.google.com/group/django-developers. To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/CAFNZOJMTTXPK5vjE7uKm8nKcZJOJTSyWA3xGVtxaGEtrQuUkfA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.