Hacker News new | ask | show | jobs
by skissane 1011 days ago
> Software (which is a mathematical function)

Software isn't a mathematical function. Software may be an embodiment of a mathematical function, but isn't a mathematical function itself.

Mathematical functions are much more abstract than software–although exactly how much more abstract depends on which position you take in the philosophy of mathematics. For a mathematical Platonist, a mathematical function is an eternal object which would still exist even if this planet never did. It never comes into existence, it never ceases to exist, it has no physical location. By contrast, software is something which has a physical location (on this hard disk), it was created at a certain point, and will likely one day cease to exist (when the last copy is destroyed).

If you adopt a non-Platonist philosophy of mathematics, the picture will be a bit different, but still I think software will be more concrete than mathematical functions are. For example, if one takes a conceptualist viewpoint (mathematical objects only exist in the mind, as ideas or concepts)–you can think of a mathematical function in your mind, and never write it down anywhere (nor verbally communicate it to anyone), it only exists in your mind, but it really is a mathematical function. Whereas, software which only exists in your mind and has never been written down anywhere isn't actually software, it is only an idea for software.

2 comments

> By contrast, software is something which has a physical location (on this hard disk), it was created at a certain point, and will likely one day cease to exist (when the last copy is destroyed).

"Software" is a broad term, but it could certainly be taken to mean something more abstract than that. Sometimes a program written for a different CPU architecture, or not written for any CPU at all, is still recognisably "the same" program. Euclid's algorithm might well be considered "software", but it's very much the same kind of thing as a mathematical function.

I studied Maths/CS but not Philosophy, so I am biased towards the "takes a domain has a range" and done some Haskell so "all programs are functions". It is interesting to see this point of view.

I see your point. sin(x) is more of a "natural function" born of the universe than f: f(x) = nn.layer(6, g: g(x) = nn.transformer(x, 512, ...

I think it is a pity that X education is very often lacking philosophy of X education.

My ideal would be every maths degree includes a mandatory unit on the philosophy of mathematics, every science degree includes a mandatory unit on the philosophy of science, a degree in AI or psychology includes a mandatory unit on the philosophy of mind, every psychiatry training program includes a mandatory unit on the philosophy of psychiatry, etc. Not everyone needs to be a philosopher, but I think a well-rounded practitioner of any discipline would ideally have a basic understanding of the philosophical debates about it.

But so many don't – which results in the phenomenon I keep on seeing, where so many people (even experts) treat debatable assumptions which they don't even know they are making as if they were obviously true.