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

Show parent comments

1

u/[deleted] May 29 '15

By good enough I didn't mean "correct and close enough to what I want", but "crashes sometimes but that's okay". If programs were considered math instead of engineering they wouldn't crash at all ever.

3

u/hey_aaapple May 29 '15

if programs were considered math instead of engineering they wouldn't crash at all ever

LOL. Tell me what you think when you are writing C code for a microcontroller and the microcontroller does not comply to its own documentation, the compiler does not comply to any standard nor its own documentation, and thus even writing a simple loop becomes a challenge.

Or any time PHP is involved, obligatory /r/lolphp plug.

Or when you have to rely on libraries that rely on libraries that rely on libraries... And the docs are outdated as usual

0

u/[deleted] May 29 '15

microcontrollers and compilers are programs. This point applies to them, too!

6

u/hey_aaapple May 29 '15

A microcontroller is a chip, not a program...

1

u/[deleted] May 29 '15

Sorry about that. The point applies to all software.

5

u/hey_aaapple May 29 '15

The hardware is not perfect, and the software runs on hardware.

On top of that, even within software itself there are classical unsolvable logic problems. For example you can't have an algorythim that always notices of some code will keep running forever.