Canvas in Tkinter app for Conway's Game of Life updates so slowly
A few things to make your code better/faster :



You can use tuple unpacking to rewrite :

def init_field(height=10, width=10, alives=()):
    fld = [[False] * width for _ in range(height)]
    for alive in alives:
        fld[alive[0]][alive[1]] = True
    return fld


like this :

def init_field(height=10, width=10, alives=()):
    fld = [[False] * width for _ in range(height)]
    for x, y in alives:
        fld[x][y] = True
    return fld




You could compute alive_neighbours less often by storing the result :

        nb_neighbours = len(alive_neighbours(fld, i, j))
        if fld[i][j] and nb_neighbours not in (2, 3):
            result[i][j] = False
        elif nb_neighbours == 3:
            result[i][j] = True




I must confess that I find alive_neighbours really complicated.