DEV Community

Discussion on: What’s an unpopular software opinion you have?

Collapse
 
michaeltd profile image
michaeltd

Programming is not an art.
Programming is an exact science!

change my mind

Collapse
 
gtanyware profile image
Graham Trott

Software is the use of language.
Language is an art.

Collapse
 
michaeltd profile image
michaeltd

Software is the product of a programming language applied to specific requirements.

Programming languages can be applied artistically (as any means of expression can be perceived in an artistic context), should they though?

What is your primary goal of writing software, self expression? or building the next killer app?

If it's the later I'd stick with what I know works consistently and dependably and leave the artistic pondering for my css framework of choice and the marketing dpt.

Now that I think of it even natural languages are not art, what they really are is the sum of their rule set (spelling, grammar, syntax). It's subsequent use case scenario isn't necessarily part of their nature (French is the exception that justifies the rule, according to a quote from the Matrix "Cursing in french is like wiping your ass with silk").

For a final point I'll just say this: If programming language is the means of artistic expression, explain Perl.

Peace!

Collapse
 
michaeltd profile image
michaeltd

Also, while i'm at it...

Emacs is to editors the next best thing since sliced bread!

Collapse
 
rhymes profile image
rhymes • Edited

Definitely not an exact science imho :D

Maybe applied with formal methods like TLA+ it could become one (I don't know enough about that) but the very fact that I can write a program with a few lines of code, run it twice, and have different unreproducible results invalidates the definition of "exact science".

Doesn't it?

Collapse
 
michaeltd profile image
michaeltd • Edited

First and foremost:

EDIT: I'm deleting this but varnish thinks otherwise...

Collapse
 
michaeltd profile image
michaeltd

Well,
Back at my UNI, studying CS, I was under the "exact sciences and technology" department.

Make of it what you want.

The fact that software development is so often referred to as "art" applies mostly (as it should) to UI (in my humble opinion for marketing purposes). UI consists up to 1%-10% of your typical projects codebase.

Generalizing such references leads to phenomena such as "terminology inflation", "tech booble" and other characterizations most relevant to marketing and/or financial context rather than software development, which I'm pretty sure most of us want nothing to do with.

Now If you can truly get different and/or unpredictable outcomes from the same application/script then please my good sir do go public so the world can witness your awesomeness.

Thread Thread
 
rhymes profile image
rhymes

Hi Michael,

Back at my UNI, studying CS, I was under the "exact sciences and technology" department.

I don't think computer science (which is indeed an exact science) and programming are the same thing, that's why I disagreed. If you had written "CS is an exact science" I wouldn't have replied. Hope you can understand my point.

Now If you can truly get different and/or unpredictable outcomes from the same application/script then please my good sir do go public so the world can witness your awesomeness.

I was referring to non deterministic concurrency, it's not hard to write a program that has different outcomes.

Thread Thread
 
michaeltd profile image
michaeltd • Edited

You can hardly classify a bug as the rule, or draw conclusions from exceptions for that matter.

I can't see how someone can program without practicing cs (knowingly or otherwise, good or bad is another issue).

I can't see how error intolerant systems (eg: medical equipment) can be built upon anything other than an exact science.

Meme reads: "Change my mind" not "Change YOUR mind" :P