When Python 3.4 was released, I was so happy with the Asyncio integration that I wrote a chat server here.
Time passed and new versions of Python were released. So I decided to migrate the server to Python 3.6.
One of the big changes that occurred in Python 3.5 was support for async and await to replace @asyncio.coroutine and yield from respectively. This small change alone makes the code much easier to read, which has become lighter. But one of the main changes in Python 3.6 are f-strings that make it easy to form messages.