In (Sniedovich 2006) "Dijkstra's algorithm revisited: the dynamic programming connexion", Sniedovich provides us another interpretation of Dijkstra's algorithm as a dynamic programming implementation. By curiosity, I found the historical book of Bellman 1954: "Dynamic Programming", in which Bellman bases Dynamic Programming on the following Principle of optimality (page 84):
An optimal policy has the property that whatever the initial state and initial decision are, the remaining decisions much constitute an optimal policy with regard to the state resulting from the first decision.
This is the core of dynamic programming while my feeling is that it's exactly the same as the "Principle of Greed".
So the question is, are DP and Greedy algorithms just two different views of exactly the same thing? Or let's say that they share the same philosophy? If the answer is no, what are the main differences between them?