I must have tried to write the same "perfect" IRC client from scratch in C a dozen times growing up...