They're considered the same nowadays mostly because they've been doing overlapping jobs. Even worse, 'entrepreneur' is something that tells me absolutely nothing concrete about what the guy does.
But to come to your point, in my mind - an engineer is the one who designs the software, a programmer is the one who actually writes good code to make that design a reality, and a developer is a blanket term for someone who does both (or more) jobs.