When you count upwards you start from 1, and go up. However, when you count down you usually end on 0. Surely this means 0 satisfies the definition.
The natural numbers are derived, according to Brouwer, from our intuition of time of time by the way. From this notion, 0 is no strange idea since it marks the moment our intuition first begins _
I don't personally know many programming languages that provide natural number type in their prelude or standard library.
In fact, I can only think of proof assistants, like Lean, Coq, and Agda. Obviously the designer of these languages know a reasonable amount of mathematics to make the correct choice.
On the contrary - to be countabley infinite is generally assumed to mean there exists a 1-1 correspondence with N. Though, I freely admit that another set could be used if you assumed it more primitive.
I'm arguing from the standpoint that we establish the idea of counting using the naturals - it's countable if it maps to the naturals, thus the link. Apologies for the lack of clarity.