> You can't do rigorous calculus (i.e. real analysis) on rationals alone. Yep, but that wasn't my point.

My point was that it is possible that all values in our universe are rational, and it wouldn't be possible for us to tell the difference between this and a universe that has irrational numbers. This fact feels pretty cursed, so I wanted to point it out.

You can make this statement for any dense subset of the reals, but we don’t because that would be silly.

I think the conceit is supposed to be that analysis—and therefore the reals—is the “language of nature” more so than that we can actually find the reals using scientific instruments.

To illustrate the point, using the rationals is just one way of constructing the reals. Try arguing that numbers with a finite decimal representation are the divine language of nature, for example.

Plus, maybe a hot take, but really I think there’s nothing natural about the rationals. Try using them for anything practical. If we used more base-60 instead of base-10 we could probably forget about them entirely.

I think it makes much more sense to make this statement for the rational numbers: It's the smallest field inside the real numbers that contains the naturals.

So every subset that allows you to do your daily calculations contains the rationals.

They’re a field by construction, and yes, the initial field of characteristic zero, but otherwise don’t arise in any natural way. They’ll be there if you’re studying fields, but exact division by arbitrary integers doesn’t seem to be a very natural property outside the reals. Again, imagine doing any practical computations with rationals and see how far you get before resorting to decimal approximation.

I think teachers lie to children and say that decimals are just another way of representing rationals, rather than the approximation of real numbers that they are (and introduce somewhat silly things like repeating decimals to do it), which makes rationals feel central and natural. That’s certainly how it was for me until I started wondering why no programming languages come with rational number packages.

Here’s my plug for p-adic numbers! So cool