
Is Software Art or Engineering? (1999) - zachrose
http://www.spectacle.org/1199/software.html
======
demian
Imagine if you could build a skyscraper by running the blueprints through a
machine that automatically builds it with essentially zero costs, and then you
can just tear it down and rebuild it again deppending on how it responds. The
engineering methods applied would be completely different. And furthermore, it
would incentivize a close iteration and "sketch"-like process that would
approach to something that people can considered "artistic", becasue you
replace the "let's be 100% sure our specs are perfect and follow strict
mathematical models before building" with "let's just build it and figure it
out".

This is what happens in software. The code is the blueprint, the exact spec,
and "building it" means running it through the compilation/deployment
pipeline.

Software is a machine, but the main difference with other machines is not that
you can't analyze it with math or can't approach it as classical engineering,
is that _it 's not economically feasible to do so_. The translation from the
blueprint (the unambiguous, absolute and exact spec, the CODE) to the final
product (the deployed working system) is "automatic" and basically free from
material costs.

PS: And add to this the fact that most software is NOT "critical" (as in "if
it fails in production people die").

~~~
lyschoening
Is an architect an engineer? They draft and re-draft their blueprints until
they are happy with them, and then oversee the construction process making
changes to the plan as necessary. This is analogous to writing software and
deploying it. There's more at stake perhaps, but the process is not all that
different.

~~~
Sharlin
Yes, architecture is probably the closest analog to software development in
how it straddles the division between art and engineering.

------
ZielenMiejska
The author doesn't know the subject matter or, to be blunt, is full of
excrement. From TFA: " If you ask Michelangelo to paint the ceiling of your
chapel, you are asking him to function as an artist; if you dictate to him the
nature, coloration, size and relationship of the objects he will portray
there, you are asking him to function as an engineer."

Actuall contracts Michelangelo worked on do specify nature, size, coloration
and relationship of objects:
[http://websites.rcc.edu/herrera/files/2011/04/Renaissance-
Co...](http://websites.rcc.edu/herrera/files/2011/04/Renaissance-Contracts-
Pieta-Michelangelo.pdf)

------
henok
Porque no las dos? (Why not both?) Art and Engineering go together in many
cases and have been for thousands of years. All historical landmarks and
statues required good artistic skills. At the same time, there is an
engineering aspect to them. You cannot just build whatever comes to your mind.
There are mathematical calculations that have to be done first. Same applies
to Software. Software development has gotten so big and complex that it's hard
to give it one dimensional definition. That being said, let's take a social
web app as an example. All the algorithms and architecture in the backend are
the engineering aspect. The graphic design aspects (UI) with all the
animations and slides are art. So is the UX. One won't work well in the market
without the other.

------
emjimenez
Art and Egineering are not opposed. As Donald Knuth said, if we go back to
Latin roots, we find ars, artis meaning "skill." and the corresponding Greek
word was τεχνη, the root of both "technology" and "technique."
([http://www.paulgraham.com/knuth.html](http://www.paulgraham.com/knuth.html))

~~~
adwn
> _[...] if we go back to Latin roots, we find ars, artis meaning "skill." and
> the corresponding Greek word was τεχνη, the root of both "technology" and
> "technique."_

That's a fun fact to know, but ancient word origins do not give _any_
indication about the modern meaning of derived terms.

It might be the case that "art and engineering are not opposed", but this
doesn't follow from their vaguely similar etymologies.

~~~
JoeAltmaier
Sure, but it opens the discussion: what _else_ is art about? Long ago they
knew it was all 'craftsmanship'. Now we pretend its more than that. Why?

------
jacquesm
Software _sometimes_ elevates itself to art, just like a very nicely made
cabinet is both useful and a work of art.

But most of the time it is better compared with architecting malls and
hospitals, bricklaying or roadworks.

------
mfolaron
I little bit ago I wrote an article on that topic, here are my two words
(would love to reignite the discussion) [...]

The definition of Engineering as Wikipedia defines it:

Engineering is the application of scientific, economic, social, and practical
knowledge in order to invent, design, build, maintain, research, and improve
structures, machines, devices, systems, materials, and processes.

So based on these words the case is quite clear. Software development is
engineering. We apply practical knowledge to invent, build, maintain,
research, improve structures, machines, devices systems and processes. Our
software applications.

The definition of Art as Wikipedia defines it:

Art is a diverse range of human activities and the products of those
activities, usually involving imaginative or technical skill. In their most
general form, these activities include the production of works of art, the
criticism of art, the study of the history of art, and the aesthetic
dissemination of art. [..] Architecture is often included as one of the visual
arts; however, like the decorative arts, it involves the creation of objects
where the practical considerations of use are essential

So again, we could say Software development is a product of an activity
involving imaginative AND technical skills where the practical considerations
of use are essential. Is software development part of the decorative/visual
arts?

In terms of art and by drawing the parallel to Architecture we could assume
that a software developer has enough freedom to choose from a variety of
foundations, building blocks. Developers influence the "Gestalt" of the final
product and no two systems will look the same. Software development can be
considered a unique form of art with intricate nuances that follow simple
concepts we find in engineering. [...]

The full article is at: [http://www.artofsoftwaredevelopment.com/art-or-
engineering/i...](http://www.artofsoftwaredevelopment.com/art-or-
engineering/is-it-art-or-engineering) (I'm not sure if posting the link is
appropriate, please let me know and I'll take it out.)

------
Aqueous
It's a craft.

------
amelius
If it has to work, it is engineering.

If it doesn't have to work, it is art.

~~~
wellpast
Have you ever tried to write, say, a short story?

I'd argue that it is far, far, far, far, far easier and takes far, far, far
less skill to make a 1,000-line piece of code work than it does to make a
1,000-line short story 'work'.

~~~
mannykannot
True, but only for a definition of 'work' that misses the point of the post
you are replying to.

~~~
wellpast
Are you able to succinctly definite that 'work' that you are referring to?

~~~
mannykannot
If you are trying to say that your use of 'work' is the same as Amelius', then
the burden of proof is on you; if not, then your comment is beside the point.

------
lukaslalinsky
The act of creating software is a craft. Designing the architecture for
software is what I'd call engineering, but there is still a lot of craft
involved in most software architecture.

I don't think there is any art in it, unless the software you are building it
supposed to be an artistic project. But that is not unique to software,
painting itself is a craft, painting in a novel thought-provoking way is art.

------
baseballmerpeak
Well-engineered software can possess some of the qualities that are esteemed
in art: simplicity, balance, creativity.

Software is usually too purposeful to be art. I think a functional intent or
purpose belies its designation as art. Creation of software is, however, a
mixture of both art and engineering.

------
antimagic
Is engineering art or engineering...

------
JustSomeNobody
Yes, No, Maybe.

Clearly some software is more art than engineering. And clearly some software
is more engineering than art.

Everything else is in that muddy gray area people like to argue about instead
of getting stuff done.

~~~
henok
Agree. Software industry has become so huge the last 20 years that it's not
enough to just say "Software." But I agree with you. If it's simple mobile app
with eye-catching animations and cool buttons, that software leans more
towards art. But if it requires complicated algorithms and AI like those in
Stock Exchanges, then it leans more towards Engineering. But there is both Art
and Engineering in almost all software.

------
jondubois
Software is intended for both people and machines. When you solve a technical
problem using software, that's engineering. When you solve a human problem,
that's art.

------
bitwize
If software is art, then systemd is _The Physical Impossibility of Death in
the Mind of Someone Living_.

------
TeeWEE
Is ask you, define "art".

------
sarciszewski
The correct answer is: true.

(Logical operators.)

~~~
henok
I think the OR should be replaces with AND. Obviously some software are more
art or engineering than another, but almost all software are combination of
both.

~~~
sarciszewski
XOR was probably the intention of the author.

------
buckbova
It's pattern matching. Apply solution A to problem B.

------
mojuba
It's a skill. An artful engineering skill.

------
markvdb
Craftsmanship.

------
k8tte
It can be both xD

------
joubert
Gardening

------
0xAE0
Yes.

------
a3voices
It's engineering, but the act of creating it is like an art.

