There's a class of software that is required for the infrastructure of the internet. If you buy into the argument of "Internet is a Utility", then a software engineer working on things like the network stack, firmware, maybe even clouds... would be considered an engineer, because you are assumably adhering to the kind of rigor necessary to make sure that the Internet Is Not Broken (tm). If, however, you're someone who uses that existing resource to support your own efforts, then I'd classify you as a developer. This isn't devaluing either - our world needs both civil engineers and realestate developers, for instance - it just happens to be a description of what the inputs and outputs of the trade are. As for programming- that's a skill, not a job classification.
Note: This also applies for engineers working on software for large technological control systems, such as train routing, power control systems, industrial machinery, and more. The internet just happens to be the most illustrative example.