It's surprising to me that a programming language would have started out following engineering conventions rather than mathematical conventions, even if there's a strong overlap between EE and CS. That said (and speaking as a mathematician) I think it's foolish to use j over i, especially since in some cases (e.g. quaternions) it will be very confusing.