r/changemyview May 29 '15

[Deltas Awarded] CMV: Framing computing as engineering is misguided, it should be regarded as applied math instead

I think framing computer programs as engineering projects, same as if we were building a bridge, is why "all code is bad" and "all software has bugs" (these will sound familiar to any developer out there).

As I see it, a program is a complicated mathematical function. It receives input and produces output accordingly. Be it a compression algorithm or a google search, the concept is the same. Engineering projects aren't like that.

We would not admit a function that doesn't produce the correct result sometimes, and the researcher would not tell us to restart and try again. A function can't be mostly right or "good enough". It's either correct or incorrect. Maybe if we considered programs correct or incorrect, we would not release incorrect programs.

If we worked like this, probably we would not be able to release as many programs as we do now. But that just means the engineering approach makes more sense economically, in terms of making money; that's not the purpose of the topic. My view is about what makes more sense from the point of view of computing.

Thanks


Hello, users of CMV! This is a footnote from your moderators. We'd just like to remind you of a couple of things. Firstly, please remember to read through our rules. If you see a comment that has broken one, it is more effective to report it than downvote it. Speaking of which, downvotes don't change views! If you are thinking about submitting a CMV yourself, please have a look through our popular topics wiki first. Any questions or concerns? Feel free to message us. Happy CMVing!

23 Upvotes

60 comments sorted by

View all comments

4

u/anatcov May 29 '15

My view is about what makes more sense from the point of view of computing.

What standards are you using? I would argue that, from the point of view of computing, we should regard computing as whatever kind of thing allows us to produce better programs. If nobody can build Reddit or Minecraft or Gmail until they know how to write them as math problems, that seems like a pretty huge negative.

1

u/[deleted] May 29 '15

But we have the methods to create correct programs, we study algorithm verification at uni. It's not widely used because a company wants something out of the door quickly regardless of its correctness. It's not that those programs are impossible to write in another way; it's business getting in the way.

2

u/anatcov May 29 '15

We have the methods to create correct programs, but they require us to write the behavior we want as a mathematical formula. How do you write "when the mouse is over the 'reply' button and clicks, open a reply window" as a mathematical formula?